最好用的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

不过目前的模块识别,还不支持以文件夹来分

posted on 2021-03-09 22:38  愚哥  阅读(655)  评论(0)    收藏  举报

导航