APP 端 UI 自动化因其特殊性(需连接测试机)一般都在本地执行,这种执行方式的局限性有以下弊端:
为解决以上问题需要搭建流水线,CI/CD 领域常用的流水线平台非 Jenkins 莫属,Jenkins 功能强大、可二次开发,但执行 APP 自动化需要 windows 执行机、模拟器/真机,这些要求无疑增加了测试成本。与之相比,Bamboo 平台是基于 Jenkins 开发的流水线平台,不仅继承了 Jenkins 的众多功能,且支持图形化配置,并对接了赛博平台等其他平台。
从下图对比中可以看出,复用现有的 Bamboo 平台成本更低,同时需要做以下改变:一、自动化框架需要改为 airtest 框架;二、需要对测试报告进行处理以符合预期。
架构图:
流程图:
执行结果:
1.bamboo 打 debug 包成,release 包不成功
解决:证书管理中上传 sign.properties 文件,该文件中去掉绝对路径信息,使用相对路径
2.赛博平台无法输入汉字
解决:用 poco().set_text() 替代 text() 方法
3.跑脚本失败提示 RuntimeError: unable to launch AndroidUiautomationPoco
解决:赛博的机器有 ATX,会影响 poco 初始化。poco 初始化前加代码:
# 停止ATX
try:
shell("am force-stop com.github.uiautomator")
shell("/data/local/tmp/atx-agent server --stop")
except Exception as e:
print("兼容非赛博机器")
流水线不仅解决了环境配置及测试机不足的问题还有以下优势:
作者:京东物流 范文君
来源:京东云开发者社区 自猿其说 Tech