UiAutomator UI2 在项目中的应用

ZFW · 2024年07月14日 · 最后由 ZFW 回复于 2024年07月15日 · 3468 次阅读

背景

领导对自动化测试能力,比较看重,所以决定在测试团队中,推广自动化测试能力,包括接口自动化、web ui 自动化、pc client ui 自动化,目前还缺少移动端自动化和 sdk 自动化,包含 pad、ios、android 三个不同终端。

技术选型

  1. 接口、webui、pc 端,目前采用 pytest,统一抽象封装在自己一套框架中,测试用例,不同端,可以互相调用,做到 web 端与 pc 端或者接口端互相交互。
  2. 安卓选型,在 appium 和 ui2 中,我们选择了 ui2,调研中发现,appuium 底层部分,也是二次封装的 ui2,所以过滤掉 appium,直接使用 ui2,性能会有较大提升,并且 appium 的官方 git 文档,描述相当少,对于开发者来说,使用也不友好,ui2 的官方文档,描述清晰,api 也全,例子丰富,对于第三方开发团队,相当友好
  3. ios 选型,这里一开始选择的 appium,后面实现过程中发现,appium 的速度真的很慢,而且需要安装的环境依赖也相当多,比如 node,然后各种 npm 的库,部分控件,会出现识别不到的问题,所以后续这边,弃用 appium,选择了 facebook-wda 的框架,后者只需要直接通过 python 安装就可以了,降低了环境依赖问题,并且采用了 tidevice 的工具,实现了在 windows 下自动化 ios 的功能,解决了一个很大的痛点问题。

落地效果

框架实现后,目前已经逐步开始推广测试人员编写自动化用例了,我司的要求是,功能测试人员,都需要一定的自动化能力,后续准备尝试开展,低代码平台的自动化能力,以及通过 AI 大数据训练自动生成自动化脚本能力。

致谢

这里感谢@codeskyblue对 ui2 和 tidevice 的开源,帮助了广大测试同行解决了在移动端自动化中的痛点,最近作者新出了 uiautodev,目前也是相当好用,性能很快,还同时支持 android 和 ios 的元素检测。

共收到 6 条回复 时间 点赞

请问你们 pc 端自动化用什么实现的?

跟楼上关注一样的问题,基于 pywinauto 或者 Windows UIAutomation?还是其他的方式啊?

ZFW #3 · 2024年07月15日 Author
晴天 回复

pywinauto

qooweds 回复

pc 端 pywinauto 更加适合,更加简单明了

接口自动化用的啥

ZFW #6 · 2024年07月15日 Author
RunningOvO 回复

基于 fasthttp,自己封装的请求

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