Python DDT(data driven tests)模块心得
关于ddt模块的一些心得,主要是看官网的例子,加上一点自己的理解,官网地址:http://ddt.readthedocs.io/en/latest/example.html
ddt(data driven tests)可以让你给一个测试用例传入不同的参数,每个运行一遍,就像是运行了多个测试用例一样。
ddt模块包含了一个类的装饰器ddt和两个方法的装饰器:
data:包含多个你想要传给测试用例的参数;
file_data:会从json或yaml中加载数据;
通常data中包含的每一个值都会作为一个单独的参数传给测试方法,如果这些值是用元组或者列表传进来的,可以用unpack方法将其自动分解成多个参数。
ddt模块常用的就是这些方法,下面给一些例子和解释。例子里面是和unittest模块一起使用的,后续也会写一些unittest模块的介绍。
下面例子里所有的方法都是包含在class FooTestCase里的。
import unittest
from ddt import ddt, data,file_data,unpack @ddt
class FooTestCase(unittest.TestCase): @data(1, 2)
def test_show_value(self, value):
print('value is %s' % value)
print('case is over.\n')
运行结果:
value is 1
case is over. value is 2
case is over. ###@data(1,2)里面的参数被单独的传给test_show_value()方法,使其运行两次。
使用unpack方法将列表/元组分解的例子:
@data((1, 2), (3, 4))
@unpack
def test_show_value(self, value1,value2):
print('value is %s and %s' % (value1,value2))
print('case is over.\n')
运行结果:
value is 1 and 2
case is over. value is 3 and 4
case is over.
###@data((1, 2), (3, 4))中传入的元组(1,2)和(3,4)被unpack方法分解,可以在函数中直接按照两个变量传入。列表也是一样的。
使用unpack将字典分解的例子:
@unpack
@data({'first':1,'second':2},
{'first':3,'second':4})
def test_show_value(self, second, first):
print ('value is %s and %s'%(first,second))
print('case is over.\n')
运行结果:
value is 1 and 2
case is over. value is 3 and 4
case is over.
###@data({'first':1,'second':2},{'first':3,'second':4})传入的字典被unpack分解成了多个独立的key-value参数;test_show_value()方法里面使用的
###参数名字必须和字典的key值一致,否则会报unexpected keyword argument异常。
ddt模块常用的就是这几个方法,更多的API细节可以到链接的网页查看。
Python DDT(data driven tests)模块心得的更多相关文章
- [Jest] Write data driven tests in Jest with test.each
Often, we end up creating multiple unit tests for the same unit of code to make sure it behaves as e ...
- python DDT读取excel测试数据
转自:http://www.cnblogs.com/nuonuozhou/p/8645129.html ddt 结合单元测试一起用 ddt(data.driven.test):数据驱动测试 由外部 ...
- What is Data Driven Testing? Learn to create Framework
What is Data Driven Testing? Data-driven is a test automation framework which stores test data in a ...
- 【python+ddt】DDT模块的使用
ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: unpanck:通常data中包含的每一 ...
- Python for Data Analysis 学习心得(四) - 数据清洗、接合
一.文字处理 之前在练习爬虫时,常常爬了一堆乱七八糟的字符下来,当时就有找网络上一些清洗数据的方式,这边pandas也有提供一些,可以参考使用看看.下面为两个比较常见的指令,往往会搭配使用. spli ...
- Python for Data Analysis 学习心得(一) - numpy介绍
一.简介 Python for Data Analysis这本书的特点是将numpy和pandas这两个工具介绍的很详细,这两个工具是使用Python做数据分析非常重要的一环,numpy主要是做矩阵的 ...
- python ddt 实现数据驱动一
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...
- python+ddt+unittest+excel+request实现接口自动化
接口自动化测试流程:需求分析-用例设计--脚本开发--测试执行--结果分析1.获取接口文档,根据文档获取请求方式,传输协议,请求参数,响应参数,判断测试是否通过设计用例2.脚本开发:使用request ...
- python ddt 实现数据驱动
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...
随机推荐
- VUE输入框显示时自动聚焦
directives: { focus: { inserted: function (el, {value}) { if (value) { el.focus() } } } } 注意点:1.用v-i ...
- 【C#小知识】C#中一些易混淆概念总结(八)---------解析接口 分类: C# 2014-02-18 00:09 2336人阅读 评论(4) 收藏
这一篇主要来解析关于面向对象中最总要的一个概念--接口. 对于接口来说,C#是有规定使用Interface关键字来声明接口.它的声明是和类一致的.可以说接口就是一个特殊的抽象类.如下代码: cl ...
- Postman—测试脚本
前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...
- Postman—参数化
一.单个数据参数化 场景:购物车接口,需要用到登录接口返回的token 1.登录接口,在Tests里面设置usertoken环境变量,用来保存token值. 2.获取购物车接口使用usertoken变 ...
- go语言的unsafe包(转)
The unsafe Package in Golang Golang的unsafe包是一个很特殊的包. 为什么这样说呢? 本文将详细解释. 来自go语言官方文档的警告 unsafe包的文档是这么说的 ...
- spring-data-redis配制
1:单redis模式下 properties文件 配制 #JedisPoolConfig的参数 #最大连接数 redis.pool.maxTotal= #最大空闲时间 redis.pool.maxId ...
- WINCRIS的使用
附件下载:http://pan.baidu.com/s/1sj7EsOH 1.首先大家先到官网上下载自己的BIOS , 准备一个U盘格式化成FAT/FAT32格式. (网上说U盘的大小不要超过2G,这 ...
- 既之前的基础,先写个简单的PHP 与数据库 的数据交流
程序分三个板块, 现在先不用 css 和 javascript 先用纯 html php 写吧. 所以那些 嵌入式 <font size=.... 什么的看看就算了,不推荐如此使 ...
- 我是怎么从安卓到php再成为前端开发工程师的
记得我下定决心学Android(安卓)是17年的暑假,暑假前,学校组织了一次集训,美其名曰帮我们巩固知识,实际上就是学校和长沙的培训学校某牛达成了合作,教我们一些基础知识,然后集训完建议那些在学校没学 ...
- BATJ面试必会之并发篇
一.线程状态转换 新建(New) 可运行(Runnable) 阻塞(Blocking) 无限期等待(Waiting) 限期等待(Timed Waiting) 死亡(Terminated) 二.使用线程 ...