1. 程式人生 > >Appium+python HTML測試報告(1)

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):
        ''' 加運算 '''

運算後報告如下: