github源碼地址下載:https://github.com/GoverSky/HTMLTestRunner_cn.git
解壓文件后取出/HTMLTestRunner_cn.py文件丟進C:\Python37\Lib\site-packages目錄下
如何使用報告截圖重跑機制:how to use it ?
代碼編寫注意事項:該模板暫時不支持setup初始化驅動driver,而且初始化驅動必須取名driver,關於 HTMLTestRunner
新增參數 retry=1表示失敗后重跑的次數,save_last_try=True表示最終報告展示只要最后一次失敗重跑的結果,False則每次結果都要
from selenium import webdriver
import unittest
class case_01(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def add_img(self):
"""書寫一個添加截圖b64的方法"""
self.imgs.append(self.driver.get_screenshot_as_base64())
return True
def setUp(self):
"""
在是python3.x 中,如果使用setup模式初始化driver ,因為3.x版本 unittest 運行機制不同,
會導致用力失敗時截圖失敗目前不支持setup失敗截圖,關於addCleanup內置函數是
如果setUp()方法執行失敗,那么不會執行tearDown()方法,但是會執行addCleanup()里添加的函數。
"""
self.imgs = []
self.addCleanup(self.cleanup)
def cleanup(self):
pass
def test_case1(self):
""" 正面通過用例Test"""
print("測試"*10)
self.driver.get("https://www.baidu.com")
self.driver.find_element_by_id('kw').send_keys(u'百度一下')
def test_case2(self):
"""失敗重跑Test"""
self.driver.get("https://mail.163.com/")
raise TypeError
調用報告模板代碼
from HTMLTestRunner_cn import HTMLTestRunner
import unittest
import os
def suites(testPath):
discover = unittest.defaultTestLoader.discover(testPath, pattern='test*.py', top_level_dir=None)
return discover
def run(suite, htmlPath):
with open(htmlPath, 'wb') as f:
runner = HTMLTestRunner(stream=f, title="ddt report",
description="測試報告:",
verbosity=3,retry=1,save_last_try=True)
runner.run(suite)
def main():
testPath=os.getcwd()
htmlPath=r'C:\Users\Administrator\PycharmProjects\Supro\lib\report\failTest.html'
run(suites(testPath),htmlPath)
if __name__ == '__main__':
main()