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]被分解开,按照用例中的两个参数传递,具体情况实例

import unittest

from ddt import ddt,data,unpack,file_data

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

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

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

@ddt#类装饰器

class MyTesting(unittest.TestCase):

def setUp(self):

print('this is the setUp')

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

def test_1(self,value):

print('value=',value)

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

@unpack

def test_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])

def test_3(self,a,b):

self.assertEqual(a,b)

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

@unpack

def test_4(self,a,b):

print('test_4',a,b)

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

def test_5(self,value):

print('test_5_file_data,value=',value)

def tearDown(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):

[

"邓肯||蒂姆",

"乔丹||迈克尔",

"库里||斯蒂芬",

"杜兰特||凯文",

"詹姆斯||勒布朗"

]

【webdriver自动化】Python数据驱动工具DDT

一.Python数据驱动工具ddt 1.  安装 ddt pip install ddt DDT是 “Data-Driven Tests”的缩写 资料:http://ddt.readthedocs.i ...

Python 数据驱动 unittest + ddt

一数据驱动测试的含义: 在百度百科上的解释是: 数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行动态测试时,需要测试软件产 ...

python - 数据驱动测试 - ddt

# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: study_ddt.py @ide: PyCharm Communit ...

python 数据驱动(ddt)

DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据) 实例代码: import ddt import unittest ...

Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构

1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...

Python数据驱动DDT的应用

在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行 ...

Python 数据驱动工具:DDT

背景 python 的unittest 没有自带数据驱动功能. 所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成. DDT是 “Data-Driven Tests”的缩写 ...

Python 数据驱动ddt 使用

准备工作: pip install ddt 知识点: 一,数据驱动和代码驱动: 数据驱动的意思是  根据你提供的数据来测试的  比如 ATP框架 需要excel里面的测试用例 代码驱动是必须得写代码  ...

python自动化测试之DDT数据驱动

时隔已久,再次冒烟,自动化测试工作仍在继续,自动化测试中的数据驱动技术尤为重要,不然咋去实现数据分离呢,对吧,这里就简单介绍下与传统unittest自动化测试框架匹配的DDT数据驱动技术. 话不多说, ...

python自动化测试中的数据驱动unittest+ddt

ddt是一个unittest的插件,用来实现uniitest的数据驱动 本文以python自动化测试中的数据驱动为原则,记录学习ddt的过程 一.数据的传递规则

随机推荐

在dreamweaver上面制作表格

开始有点犯二,准备一行一行敲,五六十行,人都得敲疯,还容易出错...... 直接从wps复制粘贴到设计里面,立马就出来了,费那事干嘛,哎,工具还是用的不熟

array_map与array_column之间的关系

/*|----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_col ...

LVS--NAT模型配置

环境准备 管理IP地址 角色 备注 192.168.11.131 调度器(Director) 对外提供VIP服务的地址为192.168.1.114 192.168.11.132 RS1  网关为192 ...

Linux搜狗输入法在有道云笔记上输入冗余

Linux下,在有道云笔记中用搜狗拼音输入法时,会出现输入冗余,类似于输入法的缓冲上屏了.这是有道云笔记Web页面的问题. 暂时的解决办法是按Ctrl + alt + p. 不仅搜狗输入法,凡是用fc ...

hdu 4779 Tower Defense 2013杭州现场赛

/** 题意: 有两种塔,重塔,轻塔.每种塔,能攻击他所在的一行和他所在的一列, 轻塔不 能被攻击,而重塔可以被至多一个塔攻击,也就是说重塔只能被重塔攻击.在一个n*m 的矩阵中,最少放一个塔,可放多 ...

2017-07-18&19

[toc] 数据库 for循环里写操作数据库是大忌!尤其是这种情况:一次查询的结果中有一个记录还要继续展开查询,两次查询的记录均不止一条.就很容易写成for循环里操作数据库了.解决办法就是循环里的每条 ...

2017-07-06 eclipse在线安装SVN1.9插件

1,百度搜索subeclipse,点击第一个: 2,官网说,文档已移动到github wiki上: 3,打开github wiki,复制最新发布版本地址: 4,在eclipse里面,打开help-&g ...

审核流(1)SNF.WorkFlow审核流简介--SNF快速开发平台3.1

本项目是的在Spring.Net.Framework 平台之上进行研发.SNF.WorkFlow审核流是一款完全自主知识产权研发的为软件项目. 审核流基本概念:什么是审核流? 审核流:两个或两个以上的 ...

es 测试代码

测试代码 PUT test/doc/1 { "num": 1.0 } PUT test/doc/2 { "num": 2.0 } POST _scripts/j ...

java web各个技术细节总结

HTML 非表单标签 1.b 粗体   u 下划线 i 斜体 del 删除效果 2.a  超链接  href  target=-blank 3.img 图片 4.frameset(frame)  框架 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值