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

前言

上篇文章【(appium+python)UI自動化_08_unittest編寫測試用例】講到如何使用unittets編寫測試用例,並執行測試文件。接下來說解下unittest如何批量執行測試文件並生成測試報告。html

簡單實例

實例講解

1、 項目路徑獲取python

project_name:項目名稱,需更換爲本身項目的名稱app

project_path:項目路徑,獲取思路測試

  • os.path.abspath(__file__):獲取當前文件路徑
  • split(project_name)[0]:經過項目名切割出項目上級目錄
  • os.path.join():拼接,傳入項目上級目錄、項目名拼接出項目路徑

2、discover加載測試用例spa

1, 需從unittest引入defaultTestLoader3d

2, discover(self,start_dir,pattern=‘test*.py’,top_level_dir=None)包含三個有效參數code

  • start_dir:執行用例目錄
  • pattern:用例名匹配顧澤,默認test*.py(匹配test開頭的全部腳本)
  • top_level_dir:頂層目錄名稱,通常默認None(可不傳值)

實例中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個有效參數:

  • stream:輸出的測試報告路徑,默認sys.stdout,(輸出在控制檯)
  • verbosity:報告輸出類型,默認2-詳細輸出測試報告,1-不顯示報告
  • title:測試報告標題
  • description:測試報告描述

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()
相關文章
相關標籤/搜索