最好用的HTMLTestRunner:支持失败重跑、饼图显示、失败自动截图
如题,是本人一直想要的,结果还真有人做了一个,地址:
示例:
HTMLTestRunner(title="带截图的测试报告",
description="小试牛刀",
stream=open("sample_test_report.html", "wb"),
verbosity=2,
retry=2,
save_last_try=False)
基本上想要的功能都有了。
以下两点要注意:
1、如果要实现显示失败后的截图,以appium+PO封装为例,必须在basePage里面实现下面的方法:
def get_screenshot_as_base64(self): """ 此方法纯粹为了给HTMLTestRunner调用,以便用例失败时生成截图 :return: """ return self.driver.get_screenshot_as_base64()
2、让用例按模块展示,报告生成后默认收起,可手工点开:
比如,有test1.py和test2.py两个文件:
import unittest class test1(unittest.TestCase): """首页""" @classmethod def setUpClass(cls) -> None: pass def setUp(self) -> None: pass def test1(self): """首页case1""" self.assertIn('1', '11') def test2(self): """首页case2""" self.assertIn('1', '12') def tearDown(self) -> None: pass def tearDownClass(cls) -> None: pass
import unittest class test2(unittest.TestCase): """发现模块""" @classmethod def setUpClass(cls) -> None: pass def setUp(self) -> None: pass def test_dis1(self): """发现case1""" self.assertIn('1', '11') def test_dis2(self): """发现case2""" self.assertIn('1', '12') def tearDown(self) -> None: pass def tearDownClass(cls) -> None: pass
通过如上的方式进行case的注释,生成报告后就会有两个大的模块,分别点开两个模块,就会看到分别有两个case
不过目前的模块识别,还不支持以文件夹来分
浙公网安备 33010602011771号