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

2020-11-21  本文已影响0人  空心小黑菜_02c0

做数据驱动的自动化测试时,用例名称描述在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
上一篇 下一篇

猜你喜欢

热点阅读