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
Airtest官網:https://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有云服務:https://airlab.163.com/b2b
官方答疑 Q 羣:654700783
呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~