上篇文章【(appium+python)UI自動化_08_unittest編寫測試用例】講到如何使用unittets編寫測試用例,並執行測試文件。接下來說解下unittest如何批量執行測試文件並生成測試報告。html
1、 項目路徑獲取python
project_name:項目名稱,需更換爲本身項目的名稱app
project_path:項目路徑,獲取思路測試
2、discover加載測試用例spa
1, 需從unittest引入defaultTestLoader3d
2, discover(self,start_dir,pattern=‘test*.py’,top_level_dir=None)包含三個有效參數code
實例中start_dir傳入的是case_path(路徑拼接獲取,你們能夠根據本身的用例位置進行拼接)htm
3、生成測試報告blog
1,需先導入報告文件http://www.javashuo.com/tag/htmltestrunner.py,該文件無需安裝,直接下載便可,接口
下載地址:https://pan.baidu.com/s/1pcuV4RE4rNycWmkJNA3paQ
2,HTMLTestRunner()查看源碼發現參數爲
(self, stream=sys.stdout, verbosity=2, title=None, description=None)包含4個有效參數:
4、批量運行測試用例
使用runner.run(discover),批量運行測試用例並生成測試報告
5、查看測試報告
report文件下查看測試報告
6、詳細代碼
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()