zoukankan      html  css  js  c++  java
  • web自动化 -- HTMLreport(一)测试报告自定义测试用例名,重写ddt

    一、需求痛点

      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

  • 相关阅读:
    [USACO09Open] Tower of Hay 干草塔
    [HNOI2004]打鼹鼠
    BZOJ1222[HNOI 2001]产品加工
    BZOJ1270[BJWC2008]雷涛的小猫
    NOIP2018出征策
    解析·NOIP·冷门 CLZ最小环
    CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
    [脚本无敌1]图片批量处理(matlab)
    用Matlab解《2013年数据建模比赛》图像碎片拼接题
    火灾检测-fire,fire
  • 原文地址:https://www.cnblogs.com/mua9102/p/12561262.html
Copyright © 2011-2022 走看看