DDT模块
转自: https://www.cnblogs.com/frost-hit/p/8277637.html
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细节可以到链接的网页查看。
DDT模块的更多相关文章
- python ddt模块
ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: 通常data中包含的每一个值都会作为一个 ...
- 【python+ddt】DDT模块的使用
ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: unpanck:通常data中包含的每一 ...
- python之ddt模块使用
一.DDT(数据驱动)简介 Data-Driven Tests(DDT)即数据驱动测试,可以实现不同数据运行同一个测试用例(通过数据的不同来驱动测试结果的不同). ddt本质其实就是装饰器,一组数据一 ...
- python3.6 request模块和ddt模块的安装
1.1用cmd命令进到python的安装目录的Scripts文件夹 1.2.然后输入 pip install requests,出现以下提示,说明安装成功 2.安装ddt步骤一样,只是把pip ins ...
- python之yaml模块和ddt模块
aml文件是专门用来写配置文件的语言,非常简洁和强大,远比json格式方便. 在PC中新建一个yml/yaml为为缩略名的文件,输入信息见下图 新建一个py文件处理yml文件,直接处理成字典格式 缩进 ...
- python使用ddt模块对用例执行操作
import time import unittest import ddt from selenium import webdriver TEST_URL = "http://www.ba ...
- python接口自动化测试 - 数据驱动DDT模块的简单使用
DDT简单介绍 名称:Data-Driven Tests,数据驱动测试 作用:由外部数据集合来驱动测试用例的执行 核心的思想:数据和测试代码分离 应用场景:一组外部数据来执行相同的操作 优点:当测试数 ...
- selenium参数化-ddt模块
DDT介绍: DDT(数据驱动测试)允许您通过使用不同的测试数据运行一个测试用例来使其倍增,并使它显示为多个测试用例.要使用DDT需要安装,安装命令:pip install ddt 使用方法: dd. ...
- Python DDT(data driven tests)模块心得
关于ddt模块的一些心得,主要是看官网的例子,加上一点自己的理解,官网地址:http://ddt.readthedocs.io/en/latest/example.html ddt(data driv ...
随机推荐
- Mac下安装Eclipse和Tomcat等
Mac下做Java开发还是很方便的,不用像.NET开发一样在Parallel Desktop里面安装Windows虚拟机,Mac下面默认已经安装了JDK. 当然,你如果要安装JDK7,请先阅读:htt ...
- PHP多进程系列笔记(二)
上一篇文章讲解了pcntl_fork和pcntl_wait两个函数的使用,本篇继续讲解PHP多进程相关新知识. 僵尸(zombie)进程 这里说下僵尸进程: 僵尸进程是指的父进程已经退出,而该进程de ...
- mysql常用优化参数
修改全站搜索 修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后 重启Mysql,再登录网站后台(模块管理->全站搜索)重建全文索 ...
- 装饰器(Decorator)模式
1 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能.通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应 ...
- Docker基础-镜像操作
1.搜寻镜像 docker search [TERM] 可以搜索远程仓库中共享的镜像,默认搜索官方仓库的镜像. docker search参数: --automated=true|false :仅显示 ...
- MVC应用程序播放FLV视频,部分视图可多地方重复引用
网页上播放Falsh之外,还有一种格式就是FLV的视频,也是最常见的.Insus.NET再想在MVC应用程序实现这功能. 实现这个功能,需要从网上下载一个叫vcastr22.swf.如果在网上找不到, ...
- EasyUI 添加一行的时候 行号出现负数的解决方案
原因是:在jquery_easyui.js 看方法 insertRow : function(_736, _737, row) 以下小代码算行号,if (opts.pagination) { _73c ...
- java环境配置及原理详解
java环境配置及原理详解 1.java跨平台的本质 我们谈到java,总是提到跨平台这个词.那么java语言是怎么实现跨平台的呢? 我们编写的java代码不是直接让windows系统读取解析,而是在 ...
- Android-Messenger跨进程通信
http://blog.csdn.net/lmj623565791/article/details/47017485 一.概述 我们可以在客户端发送一个Message给服务端,在服务端的handler ...
- LeetCode DB: Duplicate Emails
Write a SQL query to find all duplicate emails in a table named Person. +----+---------+ | Id | Emai ...