Appium+python HTML測試報告(1)
測試任務執行完成後,我們需要一份通俗易懂的測試報告來展示自動化測試的結果。
HTMLTestRunner是Python的單元測試框架unittest的一個擴充套件,它生成易於使用的HTML測試報告。與TextTestRunner一樣提供run()方法來執行測試套件或測試用例,返回特定的值表示執行結果。
一、HTMLTestRunner配置
1、HTMLTestRunner.py的下載
下載地址:
python2:http://tungwaiyip.info/software/HTMLTestRunner.html
右鍵另存為下載HTMLTestRunner.py,將檔案放到...\python\Lib目錄下
python3:https://pan.baidu.com/s/1k4m6JFelcWH_QiHGlvjsUQ
HTMLTestRunner是基於Python2開發的,要支援python3,需要修改HTMLTestRunner.py檔案中的部分內容。上面下載連結為已修改檔案,將檔案放到...\python\Lib目錄下。
在python互動模式下匯入HTMLTestRunner模組,系統沒有報錯則說明新增成功。
>>> import HTMLTestRunner >>>
2、生成HTML測試報告
# coding:utf-8
import unittest, time
from appium import webdriver
from HTMLTestRunner import HTMLTestRunner
if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(TestCalculator('test_add')) # 執行測試,使用HTMLTestRunner生成測試報告 fp = open('./result.html', 'wb') runner = HTMLTestRunner(stream=fp, title='計算器測試報告', description='測試用例執行情況') runner.run(suite) fp.close()
- open(),自動建立並開啟以二進位制模式開啟指定目錄下的result.html檔案
- 初始化一個HTMLTestRunner物件runner,stream制定測試報告檔案,title定義測試報告的標題,description定義測試報告的副標題
- HTMLTestRunner的run()方法執行測試套件
- fp.close()關閉測試報告檔案
測試執行完成後,開啟目錄中生成的result.html檔案檢視測試報告
二、優化測試報告
1、測試報告檔案命名優化
上面將測試報告檔案命名為result.html,每次生成報告時會將之前的報告覆蓋掉。我們在測試執行前將原來的測試報告修改名字以儲存,但是這樣將花費時間且可能會忘記。我們將測試報告檔名加上當前時間,使生成的報告更不會重疊,更清晰。
Python中的time模組提供了豐富的關於時間的操作
>>> import time >>> time.time() 1543739732.9201088 >>> time.ctime() 'Sun Dec 2 16:35:39 2018' >>> time.localtime() time.struct_time(tm_year=2018, tm_mon=12, tm_mday=2, tm_hour=16, tm_min=35, tm_sec=48, tm_wday=6, tm_yday=336, tm_isdst=0) >>> time.strftime("%Y-%m-%d %H:%M:%S") '2018-12-02 16:36:57' >>>
程式碼修改如下:
if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(TestCalculator('test_add')) suite.addTest(TestCalculator('test_sub')) # 執行測試,使用HTMLTestRunner生成測試報告 now_time = time.strftime("%Y%m%d_%H-%M-%S") file_path = open('./'+now_time+'_TestResult.html', 'wb') runner = HTMLTestRunner( stream=file_path, # 檔案 title='計算器測試報告', # 標題 description='測試用例執行情況', # 副標題 ) runner.run(suite) file_path.close()
執行後生成的報告檔案為:
2、測試報告優化
python的註釋有兩種,一種是comment,一種是doc string。comment是普通的註釋,doc string用於函式、類和方法的描述。
在類和方法下方新增""" """或''' '''來新增doc string型別的註釋。HTMLTestRunner可以讀取doc string型別的註釋
class TestCalculator(unittest.TestCase): """計算器應用case""" def test_add(self): ''' 加運算 '''
運算後報告如下: