一、安装ddt
pip install ddt

二、数据驱动和代码驱动
数据驱动:根据你提供的数据来进行测试,比如接口自动化测试框架ATP
代码驱动:必须得写代码才能测试,比如unittest

三、使用数据驱动框架的好处
--代码复用率高,同一测试逻辑编写一次,可以被多条测试数据复用,提高了测试代码的复用率,同时可以提高测试脚本的编写效率
--异常排查效率高,测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离,在其中一条失败的情况下,不会影响其他的测试用例
--代码的可维护性高,清晰的测试框架,利于其他测试工程师阅读,提高了代码的可维护性

四、DDT的使用
DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或yaml文件中获取测试数据)
只有以yaml 和yml结尾的文件是以yaml的形式上传测试数据,其他情况默认为json
通常情况下,data中的数据按照一个参数传递给测试数据,如果data中包含多个数据,是以元祖、列表、字典等数据类型,需要自行在脚本中对数据进行分解或者使用unpack分解数据
@data(a,b)
那么a和b各运行一次测试用例

@data([a,b],[c,d])
如果没有用unpack解析,则[a,b]会被当成一个参数传入用例中运行
如果有用unpack解析,则[a,b]中a和b会被分解开,按照两个参数传入用例中运行

@file_data(filename)
对于json文件,每一个json元素按照一条测试用例运行,可以依据python分解元祖、列表或字典的方式分解传入

import ddt
import unittest @ddt.ddt
class MyCase(unittest.TestCase):
@ddt.data(1,2) #运行2次
def testa(self,value):
print(value) @ddt.data([1,2]) #运行1次
def testb(self,value):
print(value) @ddt.data([1,2],[3,4]) #不加unpack 会报错
def testc(self,a,b):
self.assertNotEqual(a,b) @ddt.data([1,2],[3,4]) #运行2次
@ddt.unpack
def testd(self,a,b):
self.assertNotEqual(a,b) if __name__ == '__main__':
unittest.main()

python----数据驱动ddt的使用的更多相关文章

  1. Python 数据驱动ddt 使用

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

  2. Python数据驱动DDT的应用

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

  3. python 数据驱动ddt使用,需要调用下面的代码,请挨个方法调试,把不用的注释掉

    #!/usr/bin/env/python # -*- coding: utf-8 -*- # @Time : 2018/12/15 15:27 # @Author : ChenAdong # @Em ...

  4. Python数据驱动ddt

    import ddtimport unittest """ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file ...

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

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

  6. python webdriver 测试框架-数据驱动DDT的例子

    先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import un ...

  7. Python3数据驱动ddt

    对于同一个方法执行大量数据的程序时,我们可以采用ddt数据驱动的方式,来对数据规范化整理及输出 一.需要使用python的ddt库,ddt,data,unpack方法 1.仅使用ddt和data,代码 ...

  8. Python 数据驱动工具:DDT

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

  9. Python 数据驱动 unittest + ddt

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

  10. python之数据驱动ddt操作(方法一)

    下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt ...

随机推荐

  1. 2017-2018-2 20155228 《网络对抗技术》 实验九:Web安全基础

    2017-2018-2 20155228 <网络对抗技术> 实验九:Web安全基础 1. 实践内容 1.1 标理解常用网络攻击技术的基本原理 1.2 在Webgoat实验环境下实践相关实验 ...

  2. FileFilter过滤器

    FileFilter过滤器原理: File对象的listFiles()方法做了三件事情: 第一件,遍历得到所有的文件/文件夹: 第二件,调用入参过滤器接口自己DIY的实现类中重写的accept()方法 ...

  3. Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程

    Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程 通配符证书一般还是比较贵的一般最便宜的通配符证书5.60美元一年,只不过Let'sEncrypt的有效期是3个月,对于一般用户来说基 ...

  4. vue获得当前页面URL动态拼接URL复制邀请链接方法

    vue获得当前页面URL动态拼接URL复制邀请链接方法 当前页面完整url可以用 location.href路由路径可以用 this.$route.path路由路径参数 this.$route.par ...

  5. springboot使用@data注解,减少不必要代码

    一.idea安装lombok插件 二.重启idea 三.添加maven依赖 <dependency> <groupId>org.projectlombok</groupI ...

  6. js惰性函数

    假设我们需要写一个函数,返回首次调用该方法的时间,注意是首次. 1.普通函数,首先定义一个全局变量 t var t; function(){ if(t) return t; t = new Date( ...

  7. datasnap 的HTTP 调用返回JSON

    datasnap 相关设置,就不细说了,直接上函数 uses System.JSON function TServerMethods.Updatehello: Tjsonobject; var tem ...

  8. flutter 读取sdcard权限问题相关

    https://stackoverflow.com/questions/46698751/permission-denied-at-externalstoragedirectory-access-vi ...

  9. linux文件查找-find和locate

    一.find 使用语法:find  [查找目录]  [查找规则]  [查找完后执行的action] find是根据具体目录进行搜索 1.查找目录 如果不指定查找目录,默认在当前目录下进行查找 如果需要 ...

  10. ImportFileHandler 附件上传

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using LitJson; ...