python使用ddt过程中遇到的问题及解决方案【推荐】


Posted in Python onOctober 29, 2018

前言:

在使用DDT数据驱动+HTMLTestRunner输出测试报告时遇到过2个问题:

1、生成的测试报告中,用例名称后有dict() -> new empty dictionary

2、使用ddt生成的用例名称无法更改

python使用ddt过程中遇到的问题及解决方案【推荐】

1、用例名称后有dict() -> new empty dictionary

报告中用例名称后有dict() -> new empty dictionary,如图所示:

python使用ddt过程中遇到的问题及解决方案【推荐】

解决方案:这是ddt高版本1.2.0的bug

1、cmd先通过pip uninstall ddt 卸载ddt,

2、然后再安装一个低版本的ddt,命令pip install ddt==1.1.3

python使用ddt过程中遇到的问题及解决方案【推荐】

安装后再运行程序,结果如下

python使用ddt过程中遇到的问题及解决方案【推荐】

2、使用ddt生成的用例名称无法更改

如上图所示测试用例名称都是test_api_index,运行结果无法看出用例执行的是哪条数据,翻阅网上的资料找到一个比较好的方法,讲解比较详细,这段内容来自链接https://www.cnblogs.com/Simple-Small/p/9230382.html

ddt源码中有个函数用来生成用例名称, mk_test_name

它接收两个参数:name 和 value.

name:为测试用例的名字。即test_api.

value:为测试数据,ddt是处理一组测试数据。而这个value就是这一组数据中的每一个测试数据。

对value的值是有限制的:要么就是单值变量,要么就是元组或者列表并且要求元组和列表中的数据都是单值变量。如("name","port") 、["name","port"]

如果传进来的测试数据,不符合value的要求,那么测试用例名字为:name_index。

如果传进来的测试数据,符合value的要求,那么测试用例名字为:name_index_value。如果value为列表或者元组,那么将列表/元组的每个数据依次追加在末尾。

比如传进来的name值为test_login,value值为["name","port"]。那最终的测试用例名字是:test_login_01_name_port。

如果传进来的name值为test_login,value值为{"userName":"18500384561", "password":"123456"},那最终的测试用例名字为:test_login_1。 因为它不支持对字典类型的数据处理 。

而我的接口自动化框架中,ddt处理的数据是一列表:列表当中每个数据都为字典。ddt一遍历整个列表,那传给value的值刚好是字典。。

所以我得到的测试用例名称就是:test_login_1,test_login_2,test_login_3

python使用ddt过程中遇到的问题及解决方案【推荐】

为了让我的测试报告,呈现的更好。那就改改ddt源码,让它能够适应我的框架。

考虑两个问题:

1、不同接口的测试用例名字如何来??

2、如何让ddt支持对字典的处理??

解决方案:

第一个问题:每一个测试用例主动提供一个用例名字,说明你是什么接口的什么场景用例。比如:接口名_场景名。login_success、login_noPasswd、login_wrongPasswd等。

在我的框架当中,每一个测试用例是一个字典。那么我就在字典中添加一个键值对,case_name=用例名称

第二个问题:在ddt中添加对字典的处理,如果字典中有case_name字段,则将字典中键名为case_name的值作为测试用例名称中的value值。

修改后的ddt源码为(红色粗体部分为修改的内容):

python使用ddt过程中遇到的问题及解决方案【推荐】

更改代码后再执行,结果如下:

python使用ddt过程中遇到的问题及解决方案【推荐】

总结

以上所述是小编给大家介绍的python使用ddt过程中遇到的问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python获取电脑硬件信息及状态的实现方法
Aug 29 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
详解Python编程中包的概念与管理
Oct 16 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
Python列表list操作相关知识小结
Jan 29 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
在python3.9下如何安装scrapy的方法
Feb 03 Python
python开发的自动化运维工具ansible详解
Aug 07 Python
一行Python命令实现批量加水印
Apr 07 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 #Python
PyCharm设置护眼背景色的方法
Oct 29 #Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 #Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 #Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 #Python
pycharm 配置远程解释器的方法
Oct 28 #Python
解决每次打开pycharm直接进入项目的问题
Oct 28 #Python
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
2017/04/03 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
非常好的js代码
2006/06/27 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
python实现对输入的密文加密
2019/03/20 Python
python的re模块使用方法详解
2019/07/26 Python
python3多线程知识点总结
2019/09/26 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
python 实现多维数组(array)排序
2020/02/28 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
美国时尚在线:Showpo
2017/09/08 全球购物
Collection和Collections的区别
2016/05/02 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书