命令行运行

通过 Airtest IDE 打包后的 apk 安装到雷电模拟器后,不能双击直接启动,需要在外部命令行操作,如下:

adb 方式

比如雷电模拟器,可找到安装目录,

cd /d/leidian/LDPlayer4

然后执行如下命令:

./adb.exe shell am instrument -w com.netease.open.airbase/android.support.test.runner.AndroidJUnitRunner

Airtest Project

Airtest Project自定义启动器支持批量运行脚本,并兼容在AirtestIDE中使用

Python v3.7.0 / Airtest: 1.1.1 / PocoUI: 1.0.78

其他笔记:

  • Airtest Project 自定义启动器批量运行脚本
  • 解决运行Airtest脚本时opencv-contrib-python报错的问题
  • Airtest Project + Jenkins 微信小程序UI自动化测试 持续集成实践

自定义的启动器主要实现了以下功能:

  • 将一些公共参数和方法添加到全局变量中,在各业务脚本中无需声明,可直接使用,如语句超时时间 TIMEOUT,就在此进行统一设置;
  • 设置Airtest全局属性值,对所有脚本生效,如下所示:
ST.THRESHOLD = 0.80 # 图像识别精确度阈值 [0,1]
ST.THRESHOLD_STRICT = 0.85 # assert语句里图像识别时使用的高要求阈值 [0,1]
ST.OPDELAY = 1 # 每一步操作后等待多长时间再进行下一步操作
ST.FIND_TIMEOUT = 10 # 图像查找超时时间,默认为20s
ST.CVSTRATEGY = ["tpl", "sift", "brisk"] # 修改图像识别算法顺序,只要成功匹配任意一个符合设定阙值的结果,程序就会认为识别成功
  • 在正式脚本运行前后,添加子脚本的运行,使得运行各个业务脚本时,初始页面都将为小程序首页,不需要再添加额外的环境判断代码;

    • setup.air:在每个脚本运行前,都会首先运行此脚本。此脚本会判断当前页面是否位于小程序首页,若不是,则会重启微信,进入小程序首页;
    • teardown.air:在每个脚本运行结束后,都会运行此脚本。此脚本会点击页面顶部的HOME图标,返回到小程序首页。若成功返回到小程序首页,则会尝试关闭首页遮罩广告(注意:遮罩广告样式不能改变),若未能成功返回首页,则会重启微信,再进入小程序首页。
  • 通过配置config.csv中的内容,实现批量运行脚本;

    • 在运行脚本时,会先迭代查找suite/目录下所有以.air结尾的目录,自动忽略setup.air和teardown.air,然后读取config.csv中所配置的 Label 为 “Y"的脚本名称,二者做交集运算,其结果作为本次实际要运行的脚本集合。
  • 批量运行脚本结束后,支持生成聚合报告,与Jenkins进行持续集成时,此报告会作为附件进行发送。点击聚合报告中模块名称,会跳转到Airtest Project自带的测试报告页面。