python3 unittest框架失败重跑加截图支持python2,python3
Posted 入门到放弃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()
以上是关于python3 unittest框架失败重跑加截图支持python2,python3的主要内容,如果未能解决你的问题,请参考以下文章
selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)
selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)转载