关于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)模块心得的更多相关文章

  1. [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 ...

  2. python DDT读取excel测试数据

    转自:http://www.cnblogs.com/nuonuozhou/p/8645129.html ddt   结合单元测试一起用 ddt(data.driven.test):数据驱动测试 由外部 ...

  3. 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 ...

  4. 【python+ddt】DDT模块的使用

    ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: unpanck:通常data中包含的每一 ...

  5. Python for Data Analysis 学习心得(四) - 数据清洗、接合

    一.文字处理 之前在练习爬虫时,常常爬了一堆乱七八糟的字符下来,当时就有找网络上一些清洗数据的方式,这边pandas也有提供一些,可以参考使用看看.下面为两个比较常见的指令,往往会搭配使用. spli ...

  6. Python for Data Analysis 学习心得(一) - numpy介绍

    一.简介 Python for Data Analysis这本书的特点是将numpy和pandas这两个工具介绍的很详细,这两个工具是使用Python做数据分析非常重要的一环,numpy主要是做矩阵的 ...

  7. python ddt 实现数据驱动一

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

  8. python+ddt+unittest+excel+request实现接口自动化

    接口自动化测试流程:需求分析-用例设计--脚本开发--测试执行--结果分析1.获取接口文档,根据文档获取请求方式,传输协议,请求参数,响应参数,判断测试是否通过设计用例2.脚本开发:使用request ...

  9. python ddt 实现数据驱动

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

随机推荐

  1. Linq基础知识小记一

    1.LINQ(语言级集成查询)的作用就是提供一种统一且对称的方式,让程序员在广义的数据上获取和操作数据.广义的数据包括XML文档数据.元数据.System.Data.dll和System.Data.S ...

  2. Eclipse *版本(图文详解)

    不多说,直接上干货! 关于Eclipse的版本介绍 Eclipse Standard 该版本是eclipse最基础的版本,适合Java se个人开发者.或希望根据自己需求配置插件的开发者使用. Ecl ...

  3. java的逻辑与和短路与

    逻辑与 --& 短路与 -- && 只说一个最大的区别,平时我们用的最多的是 短路与来进行逻辑判断: 短路与(或)会从左往右逐个判断式子,只要能得出结果后面的式子不再判断.逻辑 ...

  4. 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP

    在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式. 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图. 从3张图里我们看到了几点 ...

  5. It is likely that the remote side declared peer gone on this JVM

    java.net.ConnectException: t3://host:port: Bootstrap to host/host:port failed. It is likely that the ...

  6. [转].Net实现本地化简易教程

    本文转自:https://www.cnblogs.com/csdbfans/archive/2011/10/17/2214048.html 实现多语言版本的支持,就是所谓的国际化,也说是本地化. 今天 ...

  7. rabbitmq-channel方法介绍

    先介绍rabbmitmq的几个方法: // 声明一个队列 -// queue 队列名称 // durable 为true时server重启队列不会消失 (是否持久化) // exclusive 队列是 ...

  8. 我用ASP.NET缓存之数据缓存

    [我的理解] Cache,是内置的对象集合.是全局的,类似于static Arraylist.它是线程安全的,添加或修改Cache中的项目时,不需要锁定或者解除Cache. 添加 Cache[Key] ...

  9. 撩课-Web大前端每天5道面试题-Day19

    1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制 考察点1:对于基本数据类型和引用数据 ...

  10. 哈夫曼编码(Huffman coding)的那些事,(编码技术介绍和程序实现)

    前言 哈夫曼编码(Huffman coding)是一种可变长的前缀码.哈夫曼编码使用的算法是David A. Huffman还是在MIT的学生时提出的,并且在1952年发表了名为<A Metho ...