UI自動化實戰進階後續
阿新 • • 發佈:2021-02-07
##前言
最近幾天因為回老家的緣故,暫時沒空學習和記錄,好不容易抽空那就趕緊開始後面的實戰。
前面我們已經基本完成了測試的框架,並且也有了PO設計模式,後面我們還缺少什麼呢?做為自動化測試最主要的測試報告我們是不是還沒有,所以今天主要是要整合測試報告。
##安裝
Unittest測試報告雖然沒有自帶的測試報告,但是已經有了第三方的測試報告HTMLTestRunner。不過它只支援python2,對於python3可能需要下載後修改檔案部分地方進行適配。不過好在已經有人
也解決了這個問題,更新了HTMLTestRunner-python3版本
下載地址:https://pypi.org/project/HTMLTestRunner-Python3/#files
下載後解壓出一個HTMLTestRunner.py的包然後放在專案的lib目錄下
![](https://img2020.cnblogs.com/blog/1510016/202102/1510016-20210207095011928-1728736984.png)
![](https://img2020.cnblogs.com/blog/1510016/202102/1510016-20210207095311997-1337745807.png)
##編碼
```
#run_test_report.py
import unittest
from lib.HTMLTestRunner import HTMLTestRunner
import os
import time
if __name__ == '__main__':
path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'test_blog_case')
suite = unittest.defaultTestLoader.discover(path, pattern='test*.py')
project_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
report_dir = os.path.join(project_root, 'report')
current_time = time.strftime("%Y-%m-%d_%H-%M-%S")
report_abspath = os.path.join(report_dir, "HTMLReport_{}.html".format(current_time))
with open(report_abspath, 'wb') as f:
runner = HTMLTestRunner(stream=f,
title='自動化測試報告',
description='用例執行情況',
verbosity=2
)
runner.run(suite)
```
##執行
執行後自動生成一個測試報告的目錄,並且測試報告一併生成。這樣我們的測試框架就整合生成測試報告的能力了。
![](https://img2020.cnblogs.com/blog/1510016/202102/1510016-20210207095449556-1293604459.png)
![](https://img2020.cnblogs.com/blog/1510016/202102/1510016-20210207100011028-563474633.png)
##擴充套件
測試報告已經生成了,如果有追求完美的朋友那麼我們可以替換一個更漂亮的測試報告模板,或者進行漢化。
如果能力強的請自行進行二次開發,那麼後面的教程可以忽略。
下載地址: https://github.com/TesterlifeRaymond/BeautifulReport
下載後解壓到lib目錄下,然後調整上面的程式碼
```
#run_test_report.py
import unittest
# from lib.HTMLTestRunner import HTMLTestRunner
from lib.BeautifulReport.BeautifulReport import BeautifulReport
import os
import time
if __name__ == '__main__':
path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'test_blog_case')
suite = unittest.defaultTestLoader.discover(path, pattern='test*.py', top_level_dir=None)
project_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
report_dir = os.path.join(project_root, 'report')
current_time = time.strftime("%Y-%m-%d_%H-%M-%S")
# report_abspath = os.path.join(report_dir, "HTMLReport_{}.html".format(current_time))
# with open(report_abspath, 'wb') as f:
# runner = HTMLTestRunner(stream=f,
# title='自動化測試報告',
# description='用例執行情況',
# verbosity=2
# )
result = BeautifulReport(suite)
result.report(filename=current_time +'自動化測試報告',
description='用例執行情況',
log_path=report_dir
)
# runner.run(suite)
```
一份漂亮的中文測試報告就生成了。
![](https://img2020.cnblogs.com/blog/1510016/202102/1510016-20210207104609985-1190577548.png)
WEBUI自動化測試框架主要的功能已經全部實現,後續的失敗重跑、失敗截圖、多執行緒執行等一系列的如虎添翼的功能暫時就不再學習了,需要的請自行查閱資料並