測試報告生成
使用HTMLTestRunner 生成測試報告
本文使用的 HTMLTestRunner 來源於github:
https://github.com/githublitao/HTMLTestRunner_Chart
參考鏈接:
http://tungwaiyip.info/software/HTMLTestRunner.html
https://github.com/GoverSky/HTMLTestRunner_cn
- 把下載下來的HTMLTestRunner_Chart.py存放在utils目錄裏,並更名爲HTMLTestRunnerChart.py
- 在run_case目錄下創建run_login_case_report.py,測試登錄用例集並生成報告
├── run_case
│ ├── __init__.py
│ ├── module_path.py
│ ├── run_login_case.py
│ └── run_login_case_report.py
└── utils
├── __init__.py
├── HTMLTestRunnerChart.py
├── constants.py
└── se_utils.py
修改HTMLTestRunnerChart.py
'
'
'
def generateReport(self, test, result):
report_attrs = self.getReportAttributes(result)
generator = 'HTMLTestRunner %s' % __version__
stylesheet = self._generate_stylesheet()
heading = self._generate_heading(report_attrs)
report = self._generate_report(result)
self.path = os.path.splitext(self.stream.name)[0] + ".json"
# 在這個方法下,添加下面一行代碼,用於存儲最近10次測試結果的Json
self.path = self.path.rsplit('/', 1)[0] + '/WebUiTestRet.json'
'
'
'
run_login_case_report.py
import unittest
from module_path import *
from test_case.test_login import TestLoginCase
from utils.se_utils import Driver
from utils.HTMLTestRunnerChart import HTMLTestRunner
if __name__ == '__main__':
cases = unittest.TestLoader().loadTestsFromTestCase(TestLoginCase)
runner = HTMLTestRunner(
title="測試報告名稱",
description="詳細描述,例如測試的瀏覽器和環境",
stream=open(report_path, "wb"),
verbosity=2,
retry=0, # retry,指定重試次數,如果save_last_try 爲True ,一個用例僅顯示最後一次測試的結果。
save_last_try=True)
runner.run(cases)
# 所有用例運行完後關閉瀏覽器
Driver.quit_driver()
Driver.Driver = None
根據HTMLTestRunner_Chart要求爲test_login.py 增加fixture,以獲取用例失敗後的截圖
class TestLoginCase(unittest.TestCase):
@classmethod
def setUp(cls) -> None:
cls.driver = Driver.get_driver()
`
`
`
小結
- 根據Web自動化測試項目的流程,當你做到這裏的時候,已經基本可以滿足一般公司的Web自動化的需求