背景
随着中通业务的不断壮大,诞生了庞大的移动端和Web应用,这些兼容性和回归测试不仅耗费大量的测试成本,同时手机在不同项目组借调的过程中,常常出现使用冲突。为此,中通的测试创新团队研发了一款统一自动化测试平台。
统一自动化测试平台
统一自动化测试平台不仅提供了UI,接口的功能,还打造了脚手架,方便自定义堆积功能,同时还包含了真机管理,随用随还,方便快捷。该平台由Taro框架、真机平台和运行平台三部分构成。Taro 负责自动化,不仅提供UI自动化功能还提供接口自动化功能;真机平台主要是管理设备及调试本地化脚本;运行平台负责管理和运行。拓扑图如下:
统一自动化测试平台——Taro
Taro 是由大老(たいろう)的罗马读音(tairou)演化而来,正好也是泰罗奥特曼的英文名。Taro 是基于 Python 技术栈,充分利用pytest 的生态,封装了Airtest、UIAumator2和PlayWright,统一了移动端、web端的UI 自动化和接口自动化。架构图如下:
Taro封装Airtest是为了利用其跨平台性,使得移动端UI自动化同时支持Andriod和IOS;Taro封装UIAumator2是为了兼容现有大量UIAumator2脚本,降低迁移成本。为了适配多个框架,重点封装了设备接入以及报告的生成。
Taro框架同时提供了脚手架工具 taro-cli。使用该命令行工具,不仅可以快速通过内建模板创建一个集成Taro的工程,还可以自定义化堆积功能。目前已经内建的项目模板有 Android、iOS、Web和 Java 4类型的工程。
下图是一个基于Taro的demo工程,可以按照常见的PO 模式来编写自动化脚本,也可以按照pytest的方式来编写纯函数的脚本。
Taro还提供自动化截图功能,目前可支持Web端的所有交互操作的自动化截图,移动端的click操作的自动化截图。并且每个步骤会自动截取当前执行的代码作为步骤名称,同时高亮显示。如下图:
移动端截图
Web端截图
由于篇幅有限,本次只做介绍,后续再详细介绍自动化截图功能的详细实现。
统一自动化测试平台——真机平台
真机平台是基于ATXServer2做的二次开发,使用 Scrcpy 重构了 Android 端,支持了高版本的 Android 系统,如图:
真机平台将设备管理线上化,测试人员根据需要在线选择自己要测试的设备,随用随还,同时大家可以清楚的查看当前的使用者。即使在疫情期间,大家都居家办公的时候,兼容性测试照样可以正常进行。
平台还集成weditor,无须搭建本地开发环境,线上编写自动化脚本,方便设备调试。如图:
统一自动化测试平台——统一运行平台
统一运行平台集成了Jenkins,不仅可以支持Taro项目,还支持Java脚本,同时可批量运行,通过多任务体现的。具体如下:
- 新建任务
目前可以支持4种类型的脚本,在配置好 IM 相关的信息可以在任务执行完毕后发送通知到群里,同时可以配置周期执行。推荐使用 Taro 框架的脚手架命令来生产初始化脚本,在这里配置脚本路径即可。
- 任务列表
可以清楚看到最新的执行结果,手动进行编辑、运行和删除操作。
以下是某个项目的测试报告,清楚定位失败用例的情况。
平台总结
平台目前已经上线8个月了,做到了UI和接口的统一,框架、报告、运行的统一,设备和调试线上化,降低了脚本的开发和维护成本,给平台扩展性增加了更多可能性,旧脚本迁移0成本。
展望
中通测试创新的脚步不会停止,以下是我们接下来探索的方向:
- 公司DevOps平台对接,对每次构建进行自动化测试
- 拓展 Taro 框架的通用能力
- 支持 JMeter 等自动化脚本
- 探索蓝牙外设以及摄像头相关的 mock 方案
敬请期待,我们后续更多的创新。
如若转载,请注明出处:https://www.jiangsasa.com/9592.html