前言
上篇文章【(appium+python)UI自動化_08_unittest編寫測試用例】講到如何使用unittets編寫測試用例,並執行測試文件。接下來講解下unittest如何批量執行測試文件並生成測試報告。
簡單實例
實例講解
一、 項目路徑獲取
project_name:項目名稱,需更換為自己項目的名稱
project_path:項目路徑,獲取思路
- os.path.abspath(__file__):獲取當前文件路徑
- split(project_name)[0]:通過項目名切割出項目上級目錄
- os.path.join():拼接,傳入項目上級目錄、項目名拼接出項目路徑
二、discover加載測試用例
1, 需從unittest引入defaultTestLoader
2, discover(self,start_dir,pattern=‘test*.py’,top_level_dir=None)包含三個有效參數
- start_dir:執行用例目錄
- pattern:用例名匹配顧澤,默認test*.py(匹配test開頭的所有腳本)
- top_level_dir:頂層目錄名稱,一般默認None(可不傳值)
實例中start_dir傳入的是case_path(路徑拼接獲取,大家可以根據自己的用例位置進行拼接)
三、生成測試報告
1,需先導入報告文件HTMLTestRunner.py,該文件無需安裝,直接下載即可,
下載地址:https://pan.baidu.com/s/1pcuV4RE4rNycWmkJNA3paQ
2,HTMLTestRunner()查看源碼發現參數為
(self, stream=sys.stdout, verbosity=2, title=None, description=None)包含4個有效參數:
- stream:輸出的測試報告路徑,默認sys.stdout,(輸出在控制台)
- verbosity:報告輸出類型,默認2-詳細輸出測試報告,1-不顯示報告
- title:測試報告標題
- description:測試報告描述
四、批量運行測試用例
使用runner.run(discover),批量運行測試用例並生成測試報告
五、查看測試報告
report文件下查看測試報告
六、詳細代碼
unittest批量執行測試用例&並生成測試報告詳細代碼如下:
# unittest批量執行測試用例&生成測試報告 import unittest import os from unittest import defaultTestLoader from pubilc import HTMLTestRunner import time import shutil import sys project_name = "auto_appium" # 項目名稱 project_path = os.path.join(os.path.abspath(__file__).split(project_name)[0], project_name) # 項目路徑 print(project_path) def run(): case_path = os.path.join(project_path, 'case') # 測試用例路徑 discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py") # 加載測試用例 report = os.path.join(project_path, 'report') # 測試報告文件夾路徑 if not os.path.isdir(report): # 判定測試報告文件夾是否存在 os.makedirs(report) # 創建測試報告文件夾 now = time.time() now_time = time.strftime("%Y%m%d_%H%M%S", time.localtime(now)) # 當前時間 report_name = "result_"+now_time+".html" # 測試報告名稱 report_path = os.path.join(project_path, 'report', report_name) # 測試報告路徑 fp = open(report_path, "wb") runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title="接口測試報告", description="測試結果") # 生成測試報告 runner.run(discover) fp.close() if __name__ == '__main__': run()