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

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

说下大致情况,搭了一套平台,已运行三年,这套平台能满足 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 #31 · 2025年02月05日 Author

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

smeil #29 · 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 #15 · 2025年02月07日 Author
干饭狂人 回复

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

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

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

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

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

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

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

smeil 回复

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

Eiby Shen 回复

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

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

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

大佬 平台能访问学习下吗

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

难以怀瑾 回复

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

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 回复

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

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