自动化工具 自动化遇到瓶颈,不知如何应对

smeil · 2025年02月05日 · 最后由 Eiby Shen 回复于 2025年02月13日 · 10792 次阅读

说下大致情况,搭了一套平台,已运行三年,这套平台能满足 api、app 自动化。框架形式(appium+pytest+allure,同时公司 web 端是 cypress 运行,另一个同事负责,因为是小公司 100 人左右,研发团队,30 人左右,qa 就我一个高级测试。
api 自动化接口,通过解析 googlesheet 获取接口和各参数,然后运行,匹对响应码和录入的预期结果,满足 pass,否则 failed,目前有 600 不到的接口,每次上线前会运行。(能满足单接口,也能满足多个依赖的接口)
app 自动化,满足 android 和 ios 平台的自动化 ui 测试,每次发版前,会通过识别一些 tag,调起脚本,进行打开模拟器,重新安装包,运行自动化脚本。
目前困难,领导要 kpi,所以让我想自动化还能搞啥,我这实在想不出,公司 app 是每个版本迭代的,其实是不适合做自动化的,但是当时找我进来明确让我搞自动化,我也不可能和领导说这个,否则还要我干嘛。目前能想到的就是提升自动化效率,但是说实话能提升的部分不大,或则我技术不到位,没啥更好方案。
求各位大佬头脑风暴下,有啥好的建议给我吗,领导意思是有啥新工具,新技术,能运用进来的,其实也就是总结大会上,能彰显 qa 业绩的。@ 孙高飞

共收到 34 条回复 时间 点赞

你都特定 @ 谁了,还发啥帖呀。。。。。。。。。。。。。。。。

@ 小黑子 - 祖国人 集思广益只是诶特下大佬,兄弟你有啥建议吗

smeil #29 · 2025年02月05日 Author

感谢提出的建议,有些 cicd 已经让运维接入了,另一些会仔细调研感谢。

smeil #28 · 2025年02月05日 Author

兄弟们,还有其他建议吗,都可提。

果然对 deepseek 运用自如

smeil 回复

有事早奏,无事散朝!

看完你的回复,觉得自己就是个小白

smeil #25 · 2025年02月05日 Author

有没有好的 ai 接入自动化平台的推荐啊

满足 android 和 ios 平台的自动化 ui 测试 用的啥方案?appium?

deepSeek 了解一下,不用翻墙,国产 AI

1、结合 CICD 流水线,做冒烟卡点,筛选 P0,P1 用例,代码递交时触发自动化冒烟,并做结果推送,不通过标记为冒烟缺陷
2、自动化每日凌晨构建,有缺陷标记为日构建缺陷
3、搭建代码覆盖率统计能力,基于现有自动化用例跑出基础覆盖率,不断设定更高目标提升代码覆盖率

想请问下 android 模拟器和 iOS 模拟器用的啥啊?

YHC 回复

基础覆盖率是开发代码的覆盖率么?

认认真真看了,觉得很有道理,deepseek 果然不错。

我还以为是我发的帖子。😂 现在头皮都抓破了,在写今年计划。

api 自动化接口,能满足单接口
楼主麻烦问下 对于增删改如何满足单接口呢 在测试环境运行 还是使用标记数据 运行后删除标记数据呢

你用 R1 不卡吗 我每次问两个问题就 “服务器繁忙,请稍后再试。”

smeil #20 · 2025年02月07日 Author
干饭狂人 回复

是的,appium +pytest+allure 封装一层而已

smeil #21 · 2025年02月07日 Author
YHC 回复

这个 web 和 api 已经有了,只要重发某些服务,会对应运行响应接口,app 不稳定,并且每次是发版后通过 git 调起服务也算有了

smeil #22 · 2025年02月07日 Author
Eiby Shen 回复

我也是,大佬有啥想法没,头疼的很,自动化方面貌似没啥新技术,目前只有 ai 新热点,但是能接入测试的,好像没啥,就一个 ai 写用例,和代码,不过需要颗粒度,否则效果不太好

smeil #23 · 2025年02月07日 Author
难以怀瑾 回复

这边单接口自动化,只是单纯的 200 和响应的某些字段返回是预期结果,对于数据库没有做效验

smeil 回复

我不是大佬,不然就不会抓破头皮了。本来考虑了引入 ai 提效,但是搭建成本太高,学习成本也高,今年肯定是用不了的。就砍了这堆计划。

Eiby Shen 回复

干嘛要自己搭建呀,直接用外部的 ai 接口呀

有个问题,你这是 ai 回复的答案吗。。。。

打完这句话在看评论的,果然是 ai,我说呢

大佬 平台能访问学习下吗

大佬,平台是参考的哪个开源项目做的呢,方便分享一下代码吗

难以怀瑾 回复

为什么不搞成场景用例,多用例组合在一起,有增加有删除,这样不就闭环了(会产生一些垃圾数据)

smeil #31 · 2025年02月12日 Author
Zhou 回复

代码分享不了,appium+allure+pytest 搭的平台,你上网一搜都有的,已经成熟了这套,用 ai 估计也能生成,不过不一定适用需要改

派大星 回复

场景用例有的 都在测试环境 正式环境就是很麻烦 比如 某个告警的流程 生成一条告警就会给用户发送短信 没想到什么好的方法


好吧,我现在需要帮助用户解决他们在公司遇到的一个自动化测试难题。用户已经运行了三年的平台,现在面临一些挑战,尤其是如何提升自动化效率和 KPI,同时他们只有一个高级测试人员负责 QA 工作。

首先,我要理解用户的背景:他们是一个小公司,100 人左右,研发团队 30 人,QA 团队只有一个人,负责高级测试。他们的平台已经运行了三年,目前有 600 个左右的 API 接口需要自动化测试。用户提到每次上线前会运行一次自动化脚本,检查接口响应码和预期结果是否匹配。

当前的问题在于领导希望提高 KPI,而他们想提升自动化效率,但找不到有效的方法或工具。用户的困难是无法找到合适的自动化方案,尤其是因为公司应用迭代快,不适合自动化,但被要求来做。

接下来,我需要分析用户提供的现有情况:

  1. API 自动化:已经有脚本处理 600 个左右的接口,每次上线前运行一次。这说明他们已经在做自动化测试,但可能效率较低或不够智能。

  2. App 自动化:Android 和 iOS 平台都有自动化测试脚本,每次发布新版本时触发脚本。这部分自动化依赖于手动操作模拟器,可能需要调整包安装和重启。

  3. 现有挑战

    • 领导希望提升 KPI,但用户觉得自动化效率不大提升。
    • 公司应用迭代快,不适合做自动化。
    • 用户自己技术有限,难以找到更好的方案。
  4. 领导的需求:寻找新的工具、新技术或总结大会上的展示点来提高业绩。

基于以上分析,我需要思考可能的解决方案:

1. 智能化脚本优化

当前脚本可能是手动触发,逐个接口运行。可以考虑将脚本改为智能触发,比如在某些条件变化时自动检测并执行相关接口测试。例如,如果某个接口的响应码异常或参数变化,自动化测试会自动重新运行该接口的检查。

2. 路径自动化

对于应用端的 Android 和 iOS 自动化,用户已经使用 Appium、Allure 进行测试。可以考虑将这些测试路径记录为可重用的脚本,并且在每次发布时自动触发相关测试路径,而不是手动操作模拟器。这需要让开发团队按照固定的步骤提交代码,减少人工干预。

3. 报告优化

自动化报告的质量和分析功能可能影响测试人员的工作效率。可以利用生成详细的 HTML 报告,并结合机器学习算法,预测潜在的问题或异常情况,提前提醒相关人员。

4. 分散化测试

如果自动化脚本过于集中,可能导致维护困难。可以通过分阶段、分批次的方式运行测试,比如每次发布前仅测试部分接口和关键路径,而不是整个应用。

5. 集成工具

寻找一些集成工具或平台,将 API 测试和 App 测试更紧密地结合在一起,可能实现自动化测试的统一管理和执行,提升整体效率。

6. 智能化测试策略

基于历史数据和结果,可以建立一个模型来预测哪些接口在上线时更容易出现问题。这样,在每次发布前,优先测试这些高风险接口,从而提高整体的成功率。

7. 技术能力提升

虽然现在自动化效率有限,但可以通过学习新工具和技术,提升自己的能力。例如,学习 Cypress、Splunk 等工具,并将其与现有的脚本集成起来,以实现更高效的测试和数据分析。

8. 用户反馈机制

建立一个持续的反馈机制,让用户能够即时了解接口测试的结果变化,并根据需要调整自动化策略。这可能包括实时报告或动态调整脚本触发条件。

综上所述,用户可以从以下几个方面入手:

  • 优化现有脚本:提升自动化效率和智能性。
  • 整合工具:引入更高效的自动化工具和服务。
  • 提升报告分析:生成更有价值的报告,帮助预测和预防问题。
  • 分散化测试策略:减少自动化资源的集中依赖。

通过这些方法,用户可以在有限的资源下,尽可能提升自动化测试的效果,同时满足领导对 KPI 的要求。虽然目前效率有限,但通过持续改进和技术学习,未来仍有提升的空间。

根据上述思考,以下是分步骤的解决方案:

  1. 优化现有自动化脚本

    • 分析现有脚本,识别重复或冗余的部分,进行优化以减少运行时间。
    • 将多个依赖的接口测试集成到一个更智能的脚本中,例如使用条件触发(如果某个接口响应码异常,则重新运行该接口的检查)。
  2. 引入路径自动化工具

    • 使用 Allure 等工具记录和管理 UI 测试脚本,减少手动操作模拟器的工作量。
    • 确保开发团队遵循固定的测试流程,将测试作为代码提交的一部分。
  3. 提升报告分析能力

    • 集成机器学习模型或数据分析工具,基于历史数据预测接口的成功率,并生成详细的报告和可视化图表。
    • 提供实时的自动化测试结果反馈,帮助用户快速了解问题并进行调整。
  4. 分散化自动化执行

    • 将自动化任务分散到不同的阶段,例如在每次发布前仅测试关键路径或高风险接口,减少对单一脚本的依赖。
  5. 探索集成自动化工具

    • 寻找能够整合 API 和 App 测试的平台,例如使用 SAPMM 等服务,将自动化测试流程自动化,并生成统一报告。
  6. 持续学习和提升技术能力

    • 投资学习新工具和技术,如 Cypress、Splunk 等,以提升自动化测试的效率和分析能力。
    • 组织内部培训或学习小组,促进团队成员之间的技术交流和共享。

通过以上步骤,用户可以在现有资源限制下,尽可能提升自动化测试的效果,并满足领导对 KPI 的需求。虽然目前效率有限,但通过持续改进和技术学习,未来仍有显著提升的空间。

codeskyblue 回复

写计划的时候写着写着没忍住就去辞职了,这个问题可能不用纠结了。😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册