unittest + airtest + HTMLTestRunner 執行腳本並生成測試報告


使用場景:功能回歸測試、list清單檢查或者單元測試場景

airtest腳本

1、poco控件
2、圖片識別

區別在於:

  • 用poco控件編寫的腳本容錯率較低,兼容性更強,更適合跑兼容性測試,但需要項目接入poco-sdk
  • 用圖片識別編寫的腳本容錯率較高,兼容性較弱,沒有代碼權限無法嘗試接入poco-sdk時可以選擇此方式

結合unittest單元測試框架和HTMLTestRunner

測試報告模板使用HTMLTestRunner

difference
另外在此模板的基礎上,添加了截圖顯示,在報告中點擊縮略圖會跳轉顯示原圖

腳本內需要導入(使用poco需要另外導入相應模塊):

# airtest模塊
from airtest.core.api import *
# unittest是python的單元測試框架
import unittest
# HTMLTestRunnerCN是專門為unitest搞的html測試報告
import HTMLTestRunnerCN

setUp()方法用於測試用例執行前的初始化工作。
如測試用例中需要訪問數據庫,可以在setUp中建立數據庫連接並進行初始化。如測試用例需要登錄web,可以先實例化瀏覽器
在這里我主要是用於移動端測試,所以在setUp中建立手機連接

def setUp(self):
    auto_setup(__file__, logdir=True, devices=[
        f"android://127.0.0.1:5037/{devices}?cap_method=javacap&touch_method=adb",
    ])

生成測試報告

# 獲取當前時間,這樣便於下面的使用。
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) + '.html'
# filePath:測試報告保存的路徑
filePath = os.path.join(os.getcwd(), 'report', now)
fp = open(filePath, 'wb')
# 測試報告的title、描述
runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp,
                                           title='自動化回歸測試報告',
                                           description='',
                                           tester='屈闖'
                                           )
runner.run(suite)
# 最后記着關閉文件
fp.close()

報告展示

report_1

report_2

其他問題

使用圖片識別寫腳本,可以正常運行,但是報告中會顯示報錯

error: (-213:The function/feature is not implemented) 
This algorithm is patented and is excluded in this configuration; 
Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SURF::create'

bug_1
谷歌一下,發現是sift算法已經申請專利,開源OpenCV沒有版權,新的OpenCV去掉了這個算法

解決方法:
1.卸載已安裝的高版本
pip uninstall opencv-python
pip uninstall opencv-contrib-python
2.安裝低版本
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==3.4.2.16
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.16
完美解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM