python-使用unittest和ddt实现数据驱动
一、数据驱动的概念
相同测测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式成为数据驱动。测试框架使用unittest 和ddt模块相结合的方式
二、unittest测试框架如下
#coding:utf-8
import unittest
class DoubanTest(unittest.TestCase):
#测试用例初始化
def setUp(self):
pass
#定义具体的测试方法
def test_add(self,testdata1,testdata2,testdate3,exceptdata):
sum=0
sum=testdata1+testdata2+testdate3
self.assertEqual(sum,exceptdata)
#测试用例执行完成后对资源进行释放
def tearDown(self):
pass
if __name__ =='__main__':
unittest.main()
三、引入ddt框架,实现数据驱动
引入ddt框架需要从官网下载ddt模块(官网下载地址:https://pypi.python.org/pypi/ddt#downloads)。
引入ddt框架,测试代码如下:
#coding:utf-8
import ddt
import unittest
@ddt.ddt
class DoubanTest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
@ddt.data([1,2,3,6],[2,3,4,5],[1,2,2,5])
@ddt.unpack
def test_add(self,testdata1,testdata2,testdate3,exceptdata):
sum=0
sum=testdata1+testdata2+testdate3
self.assertEqual(sum,exceptdata)
if __name__ =='__main__':
unittest.main()
首先在头部导入ddt模块(import ddt)。其次在测试类前声明使用ddt(@ddt.ddt)。第三步在测试方法前使用@ddt.data()添加测试数据,多组测试数据以逗号隔开如@ddt.data(1,2,3),每组数据中的数据与测试方法中定义的形参个数及顺序一一对应。最后使用@ddt.unpack进行修饰,也是测试过程中将测试数据传给测试方法中的形参。本例子@ddt.data共有三组测试数据,测试用例会被执行三次。每组测试数据有4条数数据,如第一组数据[1,2,3,6],一一传给测试方法test_add方法中的形参testdata1,testdata2,testdate3,exceptdata。
本例子测试执行结果如下:
Ran 3 tests in 0.000s
FAILED (failures=1)
python-使用unittest和ddt实现数据驱动的更多相关文章
- python+requests+unittest 接口ddt测试
以数据驱动的形式,将用例维护在py文件中 源码分析: 变量定义 publicParameters.py """ 公共参数 , 按照各公司实情,自行编写 "&qu ...
- python selenium中使用ddt进行数据驱动测试
- Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构
1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...
- python Unittest+excel+ddt数据驱动测试
#!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @ ...
- Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins
本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存 ...
- python ddt 实现数据驱动一
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...
- python ddt 实现数据驱动
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...
- python ddt实现数据驱动
首先安装ddt模块,命令:pip install ddt 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或 ...
- 【python接口自动化】- DDT数据驱动测试
简单介绍 DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据 ...
随机推荐
- IOS 读取xib里的子控件
interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *aps; @end @impleme ...
- Codeforces 760B Frodo and pillows
题目链接:http://codeforces.com/problemset/problem/760/B 题意:n个床位,m个枕头,第k个位置最多有多少个枕头,其中相邻之间的差<=1; 第k个位置 ...
- http协议,tcp协议,ip协议,dns服务之前的关系和区别
长期以来都有一个问题,大家都在说http协议,tcp协议,ip协议,他们之间到底什么区别,有什么用,没人告诉我,最近看了这本<图解http>明白了一些,以下图片摘自这本书 一.理解一个传输 ...
- Intel MKL 多线程设置
对于多核程序,多线程对于程序的性能至关重要. 下面,我们将对Intel MKL 有关多线程方面的设置做一些介绍: 我们提到MKL 支持多线程,它包括的两个概念:1>MKL 是线程安全的: MKL ...
- 第38章 I2S—音频播放与录音输入—零死角玩转STM32-F429系列
第38章 I2S—音频播放与录音输入 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- Win10预览版激活信息
微软在10月2日零点正式公开了Win10预览版的下载地址,这个时间大家应该逐步开始安装工作了,因此提出下面两个问题的用户特别多,IT之家再稍作告知一下.1.Win10预览版安装密钥是什么?答:NKJF ...
- computed--实时计算属性
项目:https://github.com/ccyinghua/vue-node-mongodb-project/blob/master/07-shoppingCart.md 实时计算属性的compu ...
- 微信小程序开发:禁止输入表情的控制,验证方法,光标控制
<input class="weui-input" name="receiptMan" maxlength="10" bindinpu ...
- java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流
package com.swift.baseKnowledge; import java.io.File; import java.io.FileInputStream; import java.io ...
- SSI框架下,用jxl实现导出功能
SSI框架下,用jxl实现导出功能 先说明一下,这个是SSI框架下,前端用ExtJs,应用在一个企业级的系统中的导出功能,因为是摸索着做的,所以里面有一些代码想整理一下,如果有人看到了,请视自己的架构 ...