美文网首页
python数据驱动ddt 动态的用例名称(文档字符串)

python数据驱动ddt 动态的用例名称(文档字符串)

作者: 空心小黑菜_02c0 | 来源:发表于2020-11-21 17:35 被阅读0次

    做数据驱动的自动化测试时,用例名称描述在BeautifulReport等报告模板中始终是一样,无法一目了然的在测试报告中看到测试内容。因此需要修改ddt的用例描述,最好和excel中测试数据的描述保持一致,有两个方法解决这个问题:

    方法一:修改ddt
    如下图所示,注释掉原先的test_data_docstring = _get_test_data_docstring(func, v) ,改成自己的测试数据格式就行

    image.png

    方法二:分解测试数据直接出入用例名称
    相对方法一中的修改原始模块,个人更推荐以下方法

    import  unittest,ddt
    datalist = [{'caseNum': 'case001', 'caseName': '企业报告 —— 基本信息'},{'caseNum': 'case002', 'caseName': '企业报告 —— 专利'}]
    
    @ddt.ddt
    class Datalaw(unittest.TestCase):
        '''接口数据测试'''
        @classmethod
        def setUpClass(cls):
            pass
        @classmethod
        def tearDownClass(cls):
            pass
    
        @ddt.data(*datalist)
        def test_search2(self, data):
            '''测试用例:{0}'''
            print("测试数据:%s"%data)     
            
    

    如下图所示,会在报告的用例描述中显示测试数据。


    image.png

    但这样也存在一个问题,如果测试数据过长,最终的测试报告会存在排版问题,这不是想要的最终结果,如果只显示测试数据中的用例描述(caseName)则完美,不废话直接上代码:

        @ddt.data(*datalist)
        @ddt.unpack   #分解测试数据
        def test_search2(self, caseNum,caseName):
            '''测试用例:{caseName}'''
            print("测试数据:%s"%caseNum)
            print("测试数据:%s"%caseName)  
            
    

    效果图,这样测试报告则会清晰很多:


    image.png

    相关文章

      网友评论

          本文标题:python数据驱动ddt 动态的用例名称(文档字符串)

          本文链接:https://www.haomeiwen.com/subject/ofdeiktx.html