最近在使用airtest进行app自动化,但是只能单个执行,实际需要批量执行。看了网上很多文章,其实很多都没真正实践或者说实践不完全,用的不好用。所以,就自己在那些文章的基础上进行了改进与优化。
一、结构
settings.py
:放置配置信息,需要修改配置信息直接改改文件即可,不必到代码去改。
air:
该项目下所有的.air文件都存放在这。可以在新建.air文件时直接放到此目录即可。
lib:
公共方法库,看自己需求可将一些公共方法提取出来放到此文件夹下,方便重复调用。
log
:将所有.air执行过程中的log和最终的html都放到该目录下
template
:存放各种html模板的文件夹,可以放多个,需要变更时到settings.py里修改所要用的模板名称即可。
report:
存放测试报告
二、执行文件
直接上代码:
from airtest.cli.runner import AirtestCase,run_script
import airtest.report.report as report
from conf.settings import *
from argparse import *
import shutil,os,io,jinja2,datetime
class Air_Case_Handler(AirtestCase):
def setUp(self):
super(Air_Case_Handler, self).setUp()
def tearDown(self):
super(Air_Case_Handler,self).tearDown()
def run_air(self,air_dir,device):
start_time = datetime.datetime.now()
start_time_fmt = start_time.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
results = []
root_log = log_path
if os.path.isdir(root_log):
shutil.rmtree(root_log)
else:
os.makedirs(root_log)
for file in os.listdir(air_path):
if file.endswith(".air"):
airName = file
airDirName