目录
一、工具及环境准备
1、下载AirtestIDE并安装
2、下载python(切记勾选加入环境变量)(用于批量操作)
3、准备一个截图软件(用于定位坐标)
二、AirtestIDE软件使用
案例一 新建文件:视频链接:Airtest使用案例教程_哔哩哔哩_bilibili
案例二 局部找图:视频链接(待上传)
案例三 批量操作脚本:视频链接(待上传)
三、批量运行
1、用命令行运行Airtest
1、用命令行运行一个.air脚本
2、用命令行生成报告
2、用.bat文件批处理命令
(1)用.bat文件执行一个脚本
(2).用bat文件顺序执行多个Airtest脚本¶
一、工具及环境准备
1、下载AirtestIDE并安装
链接:Airtest Project (netease.com)
2、下载python(切记勾选加入环境变量)(用于批量操作)
(只要安装的时候勾选了ADD Python3.7 to PATH,环境变量就自动配置好了,就可以进行下面的检查操作了)
检查是否安装完成:
1、检查python是否安装完成:
win+R,输入cmd,在打开的窗口中输入python,若出现版本信息,则为安装完成
2、检查airtest安装:
在cmd窗口输入pip list,看列表中是否有airtest,若无,需安装,在cmd窗口输入pip install airtest,等待安装完成即可(提示,安装完成后需再次输入pip list以检查是否安装完成,并且其中的numpy必须为固定版本,否则需手动降为固定版本)
3、准备一个截图软件(用于定位坐标)
截图软件链接:
二、AirtestIDE软件使用
案例一 新建文件:视频链接:
案例二 局部找图:视频链接(待上传)
案例三 批量操作脚本:视频链接(待上传)
三、批量运行
1、用命令行运行Airtest
1、用命令行运行一个.air脚本
脚本的运行过程,与报告的生成过程是独立的两个步骤,所以我们可以先用airtest run + 脚本文件路径
指令来运行脚本,该命令的可传参数如下:
--device
,用来指定连接的被测设备--log
,用来指定log内容和截图存放的目录--recording
,运行脚本时进行录屏操作
下面分别介绍下这几个参数的使用方法:
--device
在脚本运行的时候,我们必须连接上一个被测设备。如果在我们脚本的airtest
语句之前,没有对设备进行初始化,比如没有运行一个connect_device
的语句之类的,在使用airtest run
指令来运行脚本时,就必须传入--device
参数,否则命令行会报如下错误:
传入--device
参数即可解决上述问题:
# 用airtest运行了report_test.air这个脚本
# airtest run 后面接的是脚本文件的路径
# device参数后面可跟Android、iOS和Windows设备
airtest run D:/test/report_test.air --device Android:///
--log
如果 airtest run
指令没有传入参数--log
,那使用命令行运行脚本时,将不保存log内容和截图,并且命令行会提示do not save log
:
如果传入的参数为--log log/
, 将把生成的log内容放到当前命令行执行目录下的log目录里面:
如果在--log
参数里传入了指定目录,log内容与截图将会放在指定目录里,如图:
--recording
需要在脚本运行时进行录屏操作,则在使用airtest run
命令时传入--recording
参数即可,录制的视频文件会以MP4格式保存在log内容所在的目录里面。
airtest run D:/test/report_test.air --device Android:/// --log log/ --recording
2、用命令行生成报告
在命令行中,使用airtest run
指令运行脚本以后,我们就可以使用airtest report + 脚本文件路径
指令来生成一份HTML格式的报告。
该命令也有非常多的可传参数,例如:
--log_root
,指定log内容和截图文件所在的目录--outfile
,指定生成报告的目录--lang
,指定报告语言,可以是中文/英文--export
,导出一个包含所有资源的报告文件--static_root
,指定静态资源文件的路径
需要注意的是,使用 airtest report
指令但没有传入任何参数时,程序会默认去脚本文件所在目录下寻找log/log.txt
,然后用找到的内容来生成HTML格式的报告,该报告存放于当前命令行的执行目录下。如果脚本目录里面不存在log/log.txt
,命令行则会报错:
所以不传入任何参数来使用airtest report
指令时,需要保证运行时产生的log内容的文件夹必须与脚本文件在同一文件夹内:
--log_root
一些情况下,我们运行脚本时并没有把log内容和截图文件存放在与脚本文件相同的目录下,这时可以用--log_root
参数来指定log内容和截图文件所在的目录。假如log内容保存在当前执行目录下的log文件夹里,我们就可以这样指定:
C:\Users\xiaoming>airtest report D:/test/report_test.air --log_root C:/Users/xiaoming/log
log.html
# 命令行显示的log.html表示在当前执行目录下生成了报告log.html
--outfile
当我们不想报告保存到当前执行目录下时,我们就可以用--outfile
参数来指定报告生成的目录:
airtest report D:/test/report_test.air --log_root C:/Users/xiaoming/log --outfile E:/log_test/log.html
--lang
- 指定报告语言为中文:
--lang zh
- 指定报告语言为英文:
--lang en
注意:如果不指定报告的语言,默认的报告语言为英文。
2、用.bat文件批处理命令
(1)用.bat文件执行一个脚本
.bat文件中用的是DOS命令,语法可以百度查一下。
我们来先来复习下,使用命令行运行Airtest脚本的指令: airtest run + 脚本文件路径
,另外还可以在命令后面跟上 --device
、--log
和 --recording
等参数。
举几个运行airtest脚本的例子:
# 不带任何参数运行脚本
airtest run D:\test\newsLogin.air
# 带命令行参数运行脚本
airtest run D:\test\newsLogin.air --device Android:/// --log log/ --recording
回顾了在命令行运行airtest脚本的知识点后,我们再来看下如何新建 .bat
文件。首先我们需要在电脑上新建一个 .txt
文件,并输入以下内容:
::关闭回显
@echo off
::切换到D盘
D:
::进入D盘的test目录
cd D:\test
::执行 airtest run 命令
start airtest run newsLogin.air
exit
其中 ::xxx
表示的是注释内容,可以不写入 .txt
文件中;另外示例脚本的路径为 D:\test\newsLogin.air
,所以这里还做了切换到脚本路径的操作,同学们可以根据自己脚本的实际情况来进行切换。
还需要注意的是,在上述示例中,我们已经在示例脚本的开头添加了设备和 log
的初始化内容,所以不用另外在运行命令后面加上各种运行参数:
auto_setup(__file__,logdir=True,devices=["Android://127.0.0.1:5037/emulator-5554"])
如果同学们的测试设备相对固定,也建议直接将这些参数写到脚本中,可以简化命令行运行脚本的命令。
写完以上几条命令后,我们关掉 .txt
文件,将他的后缀名 txt
改成 bat
,之后会弹出重命名的警示弹窗,点击“是”即可。最后,我们可以来检测下运行效果:
(2).用bat文件顺序执行多个Airtest脚本¶
使用 .bat
文件成功执行单个airtest脚本之后,我们来试试用 .bat
文件顺序执行多个airtest脚本:
@echo off
D:
cd D:\test
title 正在执行第一个脚本
::注意,这里官方没有使用call命令,会导致多个脚本同时运行,需使用call命令,使其按顺序执行多个脚本
call airtest run newsLogin.air
title 正在执行第二个脚本
call airtest run newsUsing.air
title 正在执行第三个脚本
call airtest run newsExit.air
exit
可以看到,在上述登录网易新闻的示例脚本之外,我们又增加了两个脚本,分别用来实现使用网易新闻和退出登录等操作。
所以在 .bat
文件中,我们分别写了三条用于运行对应脚本的命令,其中 title xxx
用来指定命令提示窗口的标题,可以让我们清晰地看出当前是在执行第几个脚本。最终的执行效果如下:
扩展功能:自动报错,当出现问题后,向目标邮箱发送消息提醒(正在建设)
参考文献:
批量执行脚本 - Airtest Project Docs (netease.com)