如何爲你的Airtest報告自定義名稱

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

呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章