1. 前言
在AirtestIDE运行脚本之后,点击 查看报告
按钮,生成的报告默认都命名为 log.html
:
网络异常,图片无法展示
|
每次重新运行脚本后,再点击 查看报告
,都会把旧的Airtest报告内容覆盖掉。但有些同学需要保存历史版本的Airtest报告,并不想每次都覆盖掉,这该如何实现呢?
2. 如何自定义Airtest报告名称
为了解决上述问题,我们先来了解下如何自定义Airtest报告的名称:
1)使用 simple_report
如何自定义报告名称
simple_report
接口支持我们传入以下4个参数:
filepath
:指定脚本的路径logpath
:指定log内容的路径logfile
:指定log.txt文件的路径output
:指定HTML报告的生成路径,必须以.html
结尾
其中,output
参数就是我们可以用来自定义HTML报告名称的参数,我们可以用它来指定生成报告的完整路径(包含报告名称):
# -*- encoding=utf8 -*- __author__ = "AirtestProject" from airtest.core.api import * from airtest.report.report import simple_report auto_setup(__file__,logdir=True) touch(Template(r"tpl1634279221295.png", record_pos=(-0.403, 0.238), resolution=(900, 1600))) simple_report(__file__,logpath=True,output=r"D:\test\test01\0d86098ed0cd4a54c8c611578a3d71b7\cloud_music.html") 复制代码
网络异常,图片无法展示
|
2)使用 LogToHtml
如何自定义报告名称
如果使用 LogToHtml
类来生成报告,细心的同学可能会发现,在实例化类的时候,并没有参数可以让我们自定义生成报告的名称。
网络异常,图片无法展示
|
但是当我们实例化了1个 LogToHtml
对象之后,调用类里面的 report()
函数来生成测试报告时,可以看到该函数的 output_file
参数可以让我们自定义Airtest报告的名称:
网络异常,图片无法展示
|
# -*- encoding=utf8 -*- __author__ = "AirtestProject" from airtest.core.api import * from airtest.report.report import simple_report,LogToHtml auto_setup(__file__,logdir=True) touch(Template(r"tpl1634279221295.png", record_pos=(-0.403, 0.238), resolution=(900, 1600))) r = LogToHtml(script_root=r'D:\test\song.air',log_root=r'D:\test\song.air\log') r.report(output_file=r'D:\test\test01\0d86098ed0cd4a54c8c611578a3d71b7\cloud_music01.html') 复制代码
网络异常,图片无法展示
|
3)命令行生成报告如何自定义报告名称
我们知道生成报告的命令是 airtest report + 脚本路径
,那这个命令有哪个参数可以让我们自定义报告名称呢?我们可以在终端使用 airtest report -h
来查看该条命令的参数详情:
网络异常,图片无法展示
|
其中 outfile
参数可以帮我们实现这个需求:
airtest report D:\test\song.air --log_root D:\test\song.air\log --lang zh --outfile D:\test\test01\0d86098ed0cd4a54c8c611578a3d71b7\cloud_music02.html 复制代码
网络异常,图片无法展示
|
3. 拓展:重复运行脚本时生成报告如何不覆盖历史报告
那了解了如何自定义报告名称之后,再来看 不覆盖历史报告 这个需求,就简单一些了。
我们可以自定义html报告的名称,为一种 不重复的命名规则 即可,比如每次都用当前时间来命名html报告;又或者更简单的是,直接在html的命名规则里添加递增的数字:
# -*- encoding=utf8 -*- __author__ = "AirtestProject" from airtest.core.api import * from airtest.report.report import simple_report,LogToHtml auto_setup(__file__,logdir=True) a = 1 while a < 4: print("这里假装执行了一些脚本") # 生成报告 from airtest.report.report import simple_report simple_report(__file__,logpath=True,output="log"+str(a)+".html") a = a + 1 复制代码
网络异常,图片无法展示
|