背景
领导对自动化测试能力,比较看重,所以决定在测试团队中,推广自动化测试能力,包括接口自动化、web ui 自动化、pc client ui 自动化,目前还缺少移动端自动化和 sdk 自动化,包含 pad、ios、android 三个不同终端。
技术选型
- 接口、webui、pc 端,目前采用 pytest,统一抽象封装在自己一套框架中,测试用例,不同端,可以互相调用,做到 web 端与 pc 端或者接口端互相交互。
- 安卓选型,在 appium 和 ui2 中,我们选择了 ui2,调研中发现,appuium 底层部分,也是二次封装的 ui2,所以过滤掉 appium,直接使用 ui2,性能会有较大提升,并且 appium 的官方 git 文档,描述相当少,对于开发者来说,使用也不友好,ui2 的官方文档,描述清晰,api 也全,例子丰富,对于第三方开发团队,相当友好。
- ios 选型,这里一开始选择的 appium,后面实现过程中发现,appium 的速度真的很慢,而且需要安装的环境依赖也相当多,比如 node,然后各种 npm 的库,部分控件,会出现识别不到的问题,所以后续这边,弃用 appium,选择了 facebook-wda 的框架,后者只需要直接通过 python 安装就可以了,降低了环境依赖问题,并且采用了 tidevice 的工具,实现了在 windows 下自动化 ios 的功能,解决了一个很大的痛点问题。
落地效果
框架实现后,目前已经逐步开始推广测试人员编写自动化用例了,我司的要求是,功能测试人员,都需要一定的自动化能力,后续准备尝试开展,低代码平台的自动化能力,以及通过 AI 大数据训练自动生成自动化脚本能力。
致谢
这里感谢@codeskyblue对 ui2 和 tidevice 的开源,帮助了广大测试同行解决了在移动端自动化中的痛点,最近作者新出了 uiautodev,目前也是相当好用,性能很快,还同时支持 android 和 ios 的元素检测。
↙↙↙阅读原文可查看相关链接,并与作者交流