ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字

做接口测试,使用unittest+ddt+excel ,使用HtmlTetstRunner来生成测试用例。

查看报告的时候 用例名称都是 test_api_1   、test_api_2  、test_api_3  的显示 ,看的不爽,也不明确,如果是test_api_登陆成功  、 test_api_密码错误  

 

这样是不是就很好去看这个报告了。不懂代码的也知道哪条通过,哪条不通过,可以对应去处理 ,而不是去excel数行数

 

======================================分割线==================================

 

查看了ddt源码,代表用例名称的函数叫:mk_test_name 

源码啥样的就不讲了,简单粗暴直接复制粘贴

 

       ddt源码如下(红色粗体部分标识):

复制代码
 1 def mk_test_name(name, value, index=0):2     """3     Generate a new name for a test case.4  5     It will take the original test name and append an ordinal index and a6     string representation of the value, and convert the result into a valid7     python identifier by replacing extraneous characters with ``_``.8  9     We avoid doing str(value) if dealing with non-trivial values.
10     The problem is possible different names with different runs, e.g.
11     different order of dictionary keys (see PYTHONHASHSEED) or dealing
12     with mock objects.
13     Trivial scalar values are passed as is.
14  
15     A "trivial" value is a plain scalar, or a tuple or list consisting
16     only of trivial values.
17     """
18     
19     # Add zeros before index to keep order
20     index = "{0:0{1}}".format(index + 1, index_len)
21     if not is_trivial(value):
22         return "{0}_{1}".format(name, index)
23     try:
24         value = str(value)
25     except UnicodeEncodeError:
26         # fallback for python2
27         value = value.encode('ascii', 'backslashreplace')
28     test_name = "{0}_{1}_{2}".format(name, index, value)
29     return re.sub(r'\W|^(?=\d)', '_', test_name)
复制代码

 

        

 

s上面是我的用例模板 ,想显示哪个就填哪个,看下用例应该懂了吧,不懂的加群问

       2、修改ddt源码,显示测试用例名字  ,如果传入数据为元组或字典。把下列代码替换源码红色区

 

复制代码
if not is_trivial(value) and type(value) is not dict:
return "{0}_{1}_{2}".format(name, index,value.title)
if type(value) is dict:
try:
value = value["title"]
except:
return "{0}_{1}".format(name.index)
复制代码

 

 修改完成之后,再次运行接口测试,就可以在测试报告当中看到对应的用例名字啦。。

 

 

转载于:https://www.cnblogs.com/beile/p/10756827.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fiddler抓取https设置及其原理

Fiddler抓取https设置及其原理 2018-02-02 目录 1 HTTPS握手过程 2 Fiddler抓取HTTPS过程 3 Fiddler抓取HTTPS设置参考 数字签名是什么? 1 HTTPS握手过程 HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL (安全套接字层)和…

RUNOOB python练习题10

用来练手的python 练习题,原链接 : python练习实例9 题干 : 暂停两秒输出,并格式化当前时间。 import time,datetimeTIME datetime.datetime.now() print(TIME.strftime("%Y.%m.%d %H-%M-%S")) time.sleep(2) TIME datetime.datetime.now(…

HTTPS连接过程以及中间人攻击劫持

HTTPS连接过程以及中间人攻击劫持 目前很多应用都用webview加载H5页面,如果服务端采用的是可信CA颁发的证书,在 webView.setWebViewClient(webviewClient) 时重载 WebViewClient的onReceivedSslError() ,如果出现证书错误,直接调…

RUNOOB python练习题12 找素数问题

用来练手的python 练习题,原链接 : python练习实例12 题干 : 判断101-200之间有多少个素数,并输出所有素数 源代码如下: import numpy as np bound np.arange(101,201,1) result np.array([]) for k in bound:for i in range(k):# 如果k存在不是1或…

Linux: centOS6.5 RabbitMQ

在大多数大公司,像应用服务器软件的安装、部署都是运维的事情,其实自己去尝试部署一下,也是有收获的。 有机会正好尝试了Linux下的rabbitMq安装过程,做了记录,希望有用到的人可以做下参考。 安装环境: Li…

RUNOOB python练习题13 水仙花数

用来练手的python 练习题其十三,原链接 : python练习实例13 题干 : 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",…

OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. OsharpNS.Swagger使用实例(登录和授权) 1.4. Angular6的前端项目启动Osharp代码生成器的使用 2.1 生成器的使用 2.2 生…

RUNOOB python练习题 14

用来练手的python 练习题其十四,原链接 : python练习实例14 题干 : 将一个正整数分解质因数。例如:输入90,打印出90233*5。 拿到题目,我们就可以看出,首先我们需要一个函数来判断某一正整数是否为质数,然后还需要一个…

RUNOOB python练习题17

用来练手的python 练习题其十三,原链接 : python练习实例17 题干 : 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 这个例题让我回忆起了远古的记忆,python str类的 isalpha,isspace,isdigit方法。这些方法通过比较ASC…

Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台

Centos7下使用ELK(Elasticsearch Logstash Kibana)搭建日志集中分析平台 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器&#xf…

叠数的加法与字符串 RUNOOB python练习题 18

用来练手的python 练习题其十八,原链接 : python练习实例18 题干: 求saaaaaaaaaaaa…a的值,其中a是一个数字。例如222222222222222(此时共有5个数相加),几个数相加由键盘控制 这种类型的叠数相加,让我不禁联想到了python中&…

RUNOOB python练习题19 找出1000以内的所有完数

用来练手的python 练习题,原链接 : python练习实例19 题干: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如61+2+3.编程找出1000以内的所有完数。 首先我们要理解,什么是完数。根据百度词条&am…

RUNOOB python练习题 23 使用*号输出菱形

用来练手的python练习题,原题链接:python练习实例23 题干: 这个题目还是利用python字符串的乘法等性质,通过循环打印出我们想要的图形。 源代码如下: for i in range(4):character " " * (3-i) "*" * ((i1)*2-1)print(charact…

RUNOOB python练习题24 斐波那契数列的衍生问题

用来练手的python练习题,原题链接 : python练习实例24 题干: 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。 拿到题目观察数列,我们不难发现,…

企业邮箱服务器如何设置?

企业邮箱是邮箱服务商面向企业客户开发的邮箱系统,采取管理员机制,企业使用自己的官网域名作为邮箱地址的后缀,由管理员为员工创建邮箱空间,并分配权限。在员工办公的场景中,为了收发邮件方便,一般的都会使…

elasticsearch6.2.4 与logstash与kibana版本6.2.4搭建同步使用

解压 tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz 创建快捷方式 ln -s kibana-6.2.4-linux-x86_64 kibana /app/elasticsearch/kibana/bin #端口 server.port: 5601 #主机 server.host: "10.118.182.85" #es的地址 elasticsearch.url: http://10.118.182…

RUNOOB python练习题25 递归实现阶乘

用来练手的python练习题,原题链接: python练习实例25 题干 : 求12!3!…20!的和。 题干要求我们实现一个阶乘的求和,显而易见的,我们可以使用递归来实现阶乘,再使用循环语句对这些阶乘就行求和。源代码如下: # 求阶乘 def facto…

浅析JavaScript解析赋值、浅拷贝和深拷贝的区别

文章首发于sau交流学习社区 一、赋值(Copy) 赋值是将某一数值或对象赋给某个变量的过程,分为: 1、基本数据类型:赋值,赋值之后两个变量互不影响 2、引用数据类型:赋**址**,两个变量具…

RUNOOB python练习题27 递归逆向输出字符串

用来练手的python练习题,原题链接: python练习实例27 题干: 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 实际要实现这个功能很简单,我们只需要反向遍历字符串即可。源代码如下: def p_inverse_boucle(my_st…

ELK 6.2.4搭建

开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。 官方网站:https://www.elastic.co/products Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式&#xff…