码迷,mamicode.com
首页 > Web开发 > 详细

web自动化 -- HTMLreport(一)测试报告自定义测试用例名,重写ddt

时间:2020-04-13 19:38:45      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:条件   字符串   strong   instance   index   key   erro   ret   blog   

一、需求痛点

  1、HTMLreport测试报告的用例名不明确

  2、希望可以自定义HTMLreport测试报告的用例名

  3、痛点截图

  技术图片

 

 

二、解决办法

  1、原因分析

    HTMLreport测试报告中的用例名是经过ddt重写的,所以我们直接重写ddt内的方法

 

  2、重写ddt内的方法:mk_test_name

    ddt  --  mk_test_name方法在第107行,我们直接把原本的方法注释掉,在其原方法下方插入以下代码

# 重写该方法,自定义用例名
def mk_test_name(name, value, index=0):
    """
    name:用例名/实例方法名
    value:用例数据字典
    """

    # Add zeros before index to keep order
    index = "{0:0{1}}".format(index + 1, index_len)

    # 注释下面两行
    # if not is_trivial(value):
    #     return "{0}_{1}".format(name, index)

    # 添加对字典数据的处理
    # 判断如果不是字典类型,条件就不满足;value不是字典类型则为假,就不会按原来拼接
    if not is_trivial(value) and not isinstance(value, dict):
        return "{0}_{1}".format(name, index)

    # 如果数据是字典,则获取字典当中的title对应的值,加到测试用例名称中
    if isinstance(value, dict):
        try:
            # 取出title值
            value = value["case_name"]  # 这个“case_name”要和测试数据的字段名一致
        except KeyError:
            return "{0}_{1}".format(name, index)

    try:
        value = str(value)      # 把title转换为字符串类型
    except UnicodeEncodeError:
        # fallback for python2
        value = value.encode(ascii, backslashreplace)   # value是title名称
    test_name = "{0}_{1}_{2}".format(name, index, value)    # 用例名称拼接
    return re.sub(r\W|^(?=\d), _, test_name)

 

  3、设计测试数据

  技术图片

 

 

三、重写后的效果

  技术图片

 

 

 

参考博客:https://www.cnblogs.com/my_captain/p/9219403.html

 

web自动化 -- HTMLreport(一)测试报告自定义测试用例名,重写ddt

标签:条件   字符串   strong   instance   index   key   erro   ret   blog   

原文地址:https://www.cnblogs.com/mua9102/p/12561262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!