Python

Python开发

Python语言

20190705-Python数据驱动之DDT

DDT

ddt 是第三方模块,需安装, pip install ddt

DDT包含的装饰器

包含一个类装饰器@ddt和两个方法装饰器@data和@file_data

通常情况下,@data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。

@data([a,b],[c,d])

那么[a,b]和[c,d]各运行一次用例

@data([a,b],[c,d])

如果没有@unpack,那么[a,b]当成一个参数传入用例运行

如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递,具体情况实例

importunittestfrom ddt importddt,data,unpack,file_data#data([a,b],[c,d])#如果没有@unpack,那么[a,b]当成一个参数传入用例运行

#如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递

@ddt#类装饰器

classMyTesting(unittest.TestCase):defsetUp(self):print('this is the setUp')

@data([1,2,3])#方法装饰器

deftest_1(self,value):print('value=',value)

@data([3,2,1],[5,3,2],[10,4,2])

@unpackdeftest_2(self,a,b,c):print('a=%s,b=%s,expected=%s'%(a,b,c))

actual= int(a) -int(b)

expected=int(c)

self.assertEqual(actual, expected)

@data([2,3],[4,5])deftest_3(self,a,b):

self.assertEqual(a,b)

@data({'a':'first','b':'second'})

@unpackdeftest_4(self,a,b):print('test_4',a,b)

@file_data("test_data_list.json")#方法装饰器

deftest_5(self,value):print('test_5_file_data,value=',value)deftearDown(self):print('this is tearDown')if __name__ == '__main__':

unittest.main(verbosity=2)

执行分析

test_1

执行次数:1次

参数值:value=[1,2,3]

执行结果:pass

test_2

执行次数:3次

参数值:第一轮a=3,b=2,c=1;第二轮a=5,b=3,c=2;第三轮a=10,b=4,c=2

执行结果:第一轮、第二轮通过,第三轮失败FAIL

失败原因:self.assertEqual(a-b = c)失败

test_3

执行次数:2次

参数值:第一轮a=[2,3];第二轮a=[4,5]

执行结果:执行错误ERROR

失败原因:缺少参数b

i.            由于没有加@unpack, 虽然还是会被理解成2组测试数据,但是[2,3]作为一个整体被传给了a, 因为b就没有值传入了,所以一执行后报了  TypeError: test_compare() missing 1 required positional argument: 'b'  这句错

test_4

执行次数:1次

参数值:a = first,b=second

执行结果:pass

test_5

执行次数:test_data_list.json文件里面的数据数

参数值:每次value = test_data_list.json里面的一条数据

执行结果:pass

@data里面的数据格式

@data里面的数据可以是字典,列表,字典(注意字典的key值一定要跟参数名对应)

Json文件创建内容参考如下(tip,将文件的后缀名改为.json):

[

"邓肯||蒂姆",

"乔丹||迈克尔",

"库里||斯蒂芬",

"杜兰特||凯文",

"詹姆斯||勒布朗"

]

内容来源于网络,如有侵权请联系客服删除

python数据驱动创建账号_20190705-Python数据驱动之DDT相关推荐

  1. 第一个程序(python)-helloworld_创建第一个python程序:‘Hello World!’

    安装好python解释器就可以创建第一个仪式程序Helloworld了 1.Python程序的3种运行方式 1.1.Python解释器直接运行 在Windows或者Linux命令行输入python,进 ...

  2. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  3. python语言中的多行注释符是_有没有一种方法可以在Python中创建多行注释? - python...

    我最近开始研究Python,但是找不到如何实现多行注释.大多数语言都有块注释符号,例如 /* */ 我在Python中尝试过此方法,但它引发了错误,因此这可能不是正确的方法. Python实际上是否具 ...

  4. python数据驱动创建账号_Django创建超级管理员账号和修改密码

    Django搭建网站,不知道账号密码,无法登陆到管理页面.如何创建超级管理员和修改用户密码? 1.创建一个超级管理员,使用如下命令: python manage.py createsuperuser ...

  5. python批量创建账号密码

    在做性能测试的时候,,我们有时候需要多个用户账号进行压测,这个时候就需要生成大批量的账号,如果一个一个注册比较麻烦,这个时候我们可以借助python进行批量生成 比如格式: zs001 123456 ...

  6. python 对象创建_从Python中的基类对象创建对象

    我有一个基类:class Animal(object): def __init__(self, name=None, food=None): self.name = name self.food = ...

  7. python创建矩阵_在Python中创建矩阵的Python程序

    python创建矩阵 There is no specific data type in Python to create a matrix, we can use list of list to c ...

  8. python etree创建xml_利用 Python ElementTree 生成 xml的实例

    Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree. 首先 import 之: from xml.etree import Eleme ...

  9. python字符串创建_在Python上创建完整的字符串

    我需要在葡萄牙语字符串上执行词干.为此,我使用nltk.word_tokenize()函数对字符串进行标记,然后单独生成每个单词.之后,我重建了字符串.它工作正常,但表现不佳.我怎样才能让它更快?字符 ...

  10. python调用nacos账号密码,Python脚本,使用私钥(如果可用)或用户名密码

    嘿,丹尼,试着跟着斯内普.注意:键值来自配置yml是RSA私钥文件的完整路径(如:/home/user/.ssh/id_RSA).在import paramiko import StringIO im ...

最新文章

  1. [C语言] 文件操作,解压华为官方固件UNDATE.APP工具(源代码);
  2. python 倒计时_Excel制作竞答倒计时器
  3. spring boot新建非web项目(无需依赖)
  4. 【CF1047D】Little C Loves 3 II【构造】【赛瓦维斯特定理】
  5. 【51Nod - 1106 】质数检测 (水题,数论)
  6. 编程题【Math类】计算类
  7. 删除logs mysql_关于删除MySQL Logs的一点记录
  8. C# 把list中的数据转成规定格式的json格式
  9. 40岁的程序员还能找到工作吗_学会了Vue就能找到前端工作吗
  10. 【排序】LeetCode 75. Sort Colors
  11. Mybatis之分表设计与分表插入
  12. 微信小程序-template使用:实现购物车商品数量加减功能
  13. 爬取网易云音乐评论2
  14. ROS——发布摄像头节点并编写opencv图像处理节点(python)
  15. 超级计算机在鄂尔多斯那个区,内蒙古超级计算机运算能力 进入中国最强行列...
  16. 宝存科技推出全球首款大量商用级别的高性能Open-Channel SSD
  17. 《黄昏清兵卫》中学到的工作态度
  18. 淘宝首页链接跳转,非taobao.com域名下的链接处理
  19. 图 2021-01-16
  20. python获取当前日期_python获取当前的日期和时间

热门文章

  1. Depth from Motion:探索突破纯视觉 3D 检测瓶颈
  2. “电脑族”保健 六项注意
  3. liferay-protal学习1-配置开发环境
  4. 转行学习软件测试有前途吗?
  5. lowB三人组代码示例
  6. lowB三人组---冒泡排序原理和实现
  7. 拜登签署芯片法案后,英特尔股票的前景如何?
  8. coq程序编写好用的IDE推荐
  9. Linux系统cp:omitting directory`XXX'问题解决
  10. 从文本生成场景图(1)——SPICE:Semantic Propositional Image Caption Evaluation