DDT驱动
下载ddt并安装
Pip install ddt
或者官网下载安装
http://ddt.readthedocs.io/en/latest/
DDT的使用
DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据)
只有yaml和yml结尾的文件以yaml形式上传,其他情况下默认为json
通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据
@data(a,b)
那么a和b各运行一次用例
@data([a,d],[c,d])
如果没有unpack,那么[a,b]当成一个参数传入用例运行
如果有unpack,那么[a,b]被分解开,按照用例中的两个参数传递
@file_data(filename)
对于json的文件,每一个json元素按照一个用例运行,可以依照python分解元组,列表或者字典的方式分解传入
import unittest
from ddt import ddt,data,file_data,unpack @ddt
class demotest(unittest.TestCase):
def setup(self):
print "this is the setup" @data(2,3)
def testb(self,value):
print value
print "this is test b" @data([2,3],[4,5])
def testa(self,value):
print value
print "this is test a" @data([[1,7], 3], [4, 5])
@unpack
def testc(self, first,second):
print first
print second
print "this is test c" @file_data('d:/data_dic.json')
def test_dic(self,value):
print value
print 'this is dic' @file_data('d:/data.yml')
def test_yml(self, value):
print value
print 'this is yml' def teardown(self):
print "this is the down" if __name__ == '__main__':
unittest.main()
#suite=unittest.TestLoader.getTestCaseNames(demotest)
#suite = unittest.TestLoader().loadTestsFromTestCase(demotest)
#unittest.TextTestRunner(verbosity=2).run(suite)
DDT驱动的更多相关文章
- DDT驱动selenium自动化测试
建两个.py文件分别是是读取xlsx文件内容,一个是测试用例使用ddt驱动 获取xlsx文件内容 import xlrd class ParseExcel(object): def __init__( ...
- selenium3关于ddt驱动之读取json文件。。。
from selenium import webdriver import ddt import time import unittest """ DDT(驱动.json ...
- Selenium(Python) ddt读取MySQL数据驱动
import unittestfrom time import sleep from ddt import ddt, datafrom pymysql import connectfrom selen ...
- Selenium(Python) ddt读取Excel文件数据驱动
首先, 引入xlrd模块: ExcelDDT.py: import unittestfrom time import sleep from ddt import ddt, datafrom selen ...
- Selenium(Python) ddt读取CSV文件数据驱动
import csvimport unittestfrom time import sleep from ddt import ddt, data, unpackfrom selenium impor ...
- unittest报告出现dict() -> new empty dictionary错误解决办法
unittest报告出现dict() -> new empty dictionary错误解决办法 说一下原因,这是由于unittest中采用了ddt驱动. 由于版本问题导致 问题如图: 解决办 ...
- selenium case报错重新执行
在做web ui自动化的过程中,经常发现这样一种情况,执行时case报错啦,再重新执行一遍又成功了. 如果不解决这个问题,脚本稳定性就会变差,很让人蛋疼,怎么解决呢: 思路: 写一个装饰器,装饰在ca ...
- Python脚本之——API自动化框架总结
学完了Python脚本接口自动化之后,一直没有对该框架做总结,今天终于试着来做一份总结了. 框架结构如下图: 来说一下每个目录的作用: Configs:该目录下存放的是.conf,.ini文件格式的配 ...
- python----数据驱动ddt的使用
一.安装ddtpip install ddt 二.数据驱动和代码驱动数据驱动:根据你提供的数据来进行测试,比如接口自动化测试框架ATP代码驱动:必须得写代码才能测试,比如unittest 三.使用数据 ...
随机推荐
- 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
It is from the full Github-Gist: Bugfix for Zend Framework 1 in Magento (>= 1.7..) + PHP 5.6 http ...
- 问题 D: C++ 习题 输出日期时间--友元函数
题目描述 设计一个日期类和时间类,编写display函数用于显示日期和时间.要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数.在主函数中调用dis ...
- Ecliplse 重命名后web.xml 报错Attribute "xmlns" was already specified for element "web-app".
报错信息:Attribute "xmlns" was already specified for element "web-app" 由于项目的重命名,出现 ...
- XCode快捷键使用
:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...
- jquery ajax参数
//默认请求参数 var _options = { url: null, // 请求连接地址 type: 'GET', // 请求类型(get,post) data: null, // post时请求 ...
- JavaScript模拟Form提交
在一个系统跳转到另外一个系统中时,可以用WAS的全局安全性,也可以用共享session做单点登陆,这次接触到了js模拟form提交的方式. function loginOAForm(url) { va ...
- 【复杂度分析】loj#6043. 「雅礼集训 2017 Day7」蛐蛐国的修墙方案
感觉有点假 题目大意 数据范围:$n<=100$ 题目分析 由于题目给出的是 置换,所以相当于只需枚举每个环的两个状态. 主要是复杂度分析这里: 一元环:不存在 二元环:特判保平安 三元环:不存 ...
- 设置vim tab为4个空格
Vim 编辑器默认tab为8个空格,但对于pythoner来说,必须要调整到4个空格. 方法如下: 在~/.vimrc文件中加入下面设置: set ts=4 #设置tabstop为4个空格 set e ...
- Java源码解析——Java IO包
一.基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO:2)java.nio包中的非阻塞型IO,通常称为New IO.这里只考虑到java.io包中堵塞型IO: 2. ...
- 在CentOS VPS上通过SSH安装 MySQL
输入 yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入s ...