问答 ui 自动化测试如何提高其稳定性?

成成 · 2021年10月14日 · 最后由 zaodaotian 回复于 2022年05月24日 · 4796 次阅读

请问 ui 自动化测试,在定位方式上,测试工具选型上等如何提高其稳定性。 web 端的 ui 自动化,大家一般用什么自动化工具呢?

共收到 18 条回复 时间 点赞

用 OCR 识别最稳定

water 回复

OCR 本身准确率、稳定性、耗时就是比较大的不稳定因素了

在路上 回复

现在 OCR 识别率已经很高了,耗时也不高。另外堆硬件能解决的问题不是问题。

定位 万能 css_selectors
测试框架 推荐 selenide
浏览器 推荐 selenoid

感谢大家,积极分享宝贵的经验!

water 回复

你们用的什么 OCR 框架做控件定位,可以分享下么?

类似 airtest 这种图像识别的,分辨率变了或者有些图标变了很容易直接 gg 。而那种直接根据一个图生成一个控件树的,可以自由定位的,只在各家大厂 ppt 看过,实际可用框架暂时没见过,不确定具体的效果。

PS:OCR(Optical Character Recognition)我理解是特指文字字符识别的,控件等图像特征识别叫这个好像不大准确?

陈恒捷 回复

百度开源的 paddleocr 效果还可以,训练之后识别率挺高的而且耗时也挺短

陈恒捷 回复

TROCR,貌似还行

我们是做了 UI 测试左移,测试同学写逻辑,前端同学在控件上注入 testId。测试同学和前端同学编辑一份协议 json。
测试同学用到的 pageobj 自动生成 json,前端通过测试环境打包编译自动填充 testid。整份 json 通过 gitlab pipeline 进行更新来保证 json 是最新
所以我们就是通过属性 testid 来定位

风言浅笑 回复

看了下,好像主要是识别文字的,和大厂们分享的可以识别控件并生成控件树的还是有点不大一样。

11楼 已删除

UI 自动化的稳定主要是要有可靠的同步机制,不然异步加载很影响元素的操作导致失败。好好分析页面中的加载顺序和关联元素,在适当的延时和运行速度间权衡,通过率基本上就可以接受了~

能具体一点么?稳定性是什么意思?如果 UI 不稳定不停的变,你的自动化稳定不了的。

我现在习惯用 playwright

大桥 回复

俺也是

大桥 回复

分享下😏

定位方式上:
1.最佳方式是和前端开发约定加入不变的 id 等属性,专门用于 ui 自动化测试。
2.css/xpath 定位上尽量避免使用绝对路径定位 (避免 ui 变动导致无法定位)
测试工具选型上:
1.那一定是越成熟的软件越好。首先商用自动化测试工具。如我们公司的用 TestComplete。
2.或者基于开源自动化工具,有成熟且稳定的自动化测试框架作为支撑。(能快速定位问题,非预期场景的处理能力)

稳定性通常依赖三个方面,上边已经提到两点。
第三点就是测试软件的稳定性,因为是测试阶段尤其是项目前期。
稳定性差不可避免,如果测试框架或者工具出错可以快速定位问题的话,可以在测试软件较稳定的时候投入 ui 自动化测试。否则等到项目中期时候在投入 ui 自动化测试比较好。

这个可以详细说说么

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