python3 unittest框架失敗重跑加截圖支持python2,python3


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()



 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM