(appium+python)UI自動化_09_unittest批量運行測試用例&生成測試報告


前言

上篇文章【(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()

 


免責聲明!

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



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