请问 ui 自动化测试,在定位方式上,测试工具选型上等如何提高其稳定性。 web 端的 ui 自动化,大家一般用什么自动化工具呢?
用 OCR 识别最稳定
定位 万能 css_selectors
测试框架 推荐 selenide
浏览器 推荐 selenoid
感谢大家,积极分享宝贵的经验!
你们用的什么 OCR 框架做控件定位,可以分享下么?
类似 airtest 这种图像识别的,分辨率变了或者有些图标变了很容易直接 gg 。而那种直接根据一个图生成一个控件树的,可以自由定位的,只在各家大厂 ppt 看过,实际可用框架暂时没见过,不确定具体的效果。
PS:OCR(Optical Character Recognition)我理解是特指文字字符识别的,控件等图像特征识别叫这个好像不大准确?
我们是做了 UI 测试左移,测试同学写逻辑,前端同学在控件上注入 testId。测试同学和前端同学编辑一份协议 json。
测试同学用到的 pageobj 自动生成 json,前端通过测试环境打包编译自动填充 testid。整份 json 通过 gitlab pipeline 进行更新来保证 json 是最新
所以我们就是通过属性 testid 来定位
UI 自动化的稳定主要是要有可靠的同步机制,不然异步加载很影响元素的操作导致失败。好好分析页面中的加载顺序和关联元素,在适当的延时和运行速度间权衡,通过率基本上就可以接受了~
能具体一点么?稳定性是什么意思?如果 UI 不稳定不停的变,你的自动化稳定不了的。
我现在习惯用 playwright
定位方式上:
1.最佳方式是和前端开发约定加入不变的 id 等属性,专门用于 ui 自动化测试。
2.css/xpath 定位上尽量避免使用绝对路径定位 (避免 ui 变动导致无法定位)
测试工具选型上:
1.那一定是越成熟的软件越好。首先商用自动化测试工具。如我们公司的用 TestComplete。
2.或者基于开源自动化工具,有成熟且稳定的自动化测试框架作为支撑。(能快速定位问题,非预期场景的处理能力)
稳定性通常依赖三个方面,上边已经提到两点。
第三点就是测试软件的稳定性,因为是测试阶段尤其是项目前期。
稳定性差不可避免,如果测试框架或者工具出错可以快速定位问题的话,可以在测试软件较稳定的时候投入 ui 自动化测试。否则等到项目中期时候在投入 ui 自动化测试比较好。