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