转自:http://www.cnblogs.com/nuonuozhou/p/8645129.html

ddt   结合单元测试一起用
ddt(data.driven.test):数据驱动测试
由外部数据集合来驱动测试用例
核心的思想:数据和测试代码分离
 
应用场景:一组数据来执行相同的操作
当测试数据发生大量变化的情况下测试代码,(或者说测试用例)可以保持不变
 
excel存储测试数据,ddt读取测试数据到 单元测试框架(测试用例中)-输出到html报告
 
python.ddt框架
安装:pip install ddt
 
使用之前先导入ddt
import ddt
 
ddt结合单元测试来使用
1.在测试类定义定义之前使用:@ddt.ddt
2.在测试用例定义之前使用,@ddt.data(测试数据) 测试数据之间用逗号隔开
3.在2的基础上定义测试用例时,参数接收2中的测试数据
 
例:
@ddt.ddt
class Demo Test(unittest.TestCase):
         @ddt.data(2,3,4)
         def test_print(self,a)
              print("简单调用@data查看输出的是什么?",a)
 
例子
import ddt
import unittest
@ddt.ddt
class test_PersonInfo(unittest.TestCase):
    @classmethod
    def setUp(self):
        print("==========开始测试==========")
    @classmethod
    def tearDown(self):
        print("==========结束测试==========")
 
   @ddt.data(1,2,3,4)
    def test_print(self,a):
        print(a)
 
 
ddt-data 数据
一组数据之间用逗号隔开
data的参数可以为如下几种
1.一组数据中,每个数据为单个值
2.一组数据中,每个数据为一个列表或者一个字典
3.文件对象:jason,yaml
 
一组数据中的数据为列表或者字典:
@data([a,b],[c,d])
 
如何从以上数据中获取到字典中每一项值
@unpack
若变量A=[{a:b,a1:b1},{c:d,c1:d1}]
如何将变量A中的每一组元素作为测试数据
@ddt.data(*A)
 
import ddt
import unittest
@ddt.ddt
class test_PersonInfo(unittest.TestCase):
    @classmethod
    def setUp(self):
        print("==========开始测试==========")
    @classmethod
    def tearDown(self):
        print("==========结束测试==========")
 
    @ddt.data([1,2],[3,4])
    def test_print(self,a):
print(a)
==========开始测试==========
[1, 2]
==========结束测试==========
==========开始测试==========
[3, 4]
==========结束测试==========
 
        print(a[0])
==========开始测试==========
1
==========结束测试==========
==========开始测试==========
3
==========结束测试==========
 
  @ddt.data([1,2],[3,4])
    @ddt.unpack
    def test_print(self,a,b):
        print(a,b)
 
==========开始测试==========
1 2
==========结束测试==========
==========开始测试==========
3 4
==========结束测试==========
 
@ddt.data([{"a":2,"b":3},{"c":4,"d":8},{"e":5,"f":7}])
    def test_print(self,a):
        print(a)
==========开始测试==========
[{'a': 2, 'b': 3}, {'c': 4, 'd': 8}, {'e': 5, 'f': 7}]
==========结束测试==========
 
@ddt.data(*datas)
    def test_print(self,datas):
        print(datas)
==========开始测试==========
{'class': 'python2', 'name': 'xiaoshitou', 'id': '0001', 'sex': 'male'}
==========结束测试==========
==========开始测试==========
{'class': 'python2', 'name': 'nuonuo', 'id': '0002', 'sex': 'female'}
==========结束测试==========
==========开始测试==========
{'class': 'python2', 'name': 'fly', 'id': '0003', 'sex': 'male'}
==========结束测试==========
==========开始测试==========
{'class': 'python2', 'name': 'haiyang', 'id': '0004', 'sex': 'male'}
==========结束测试==========
==========开始测试==========
{'class': 'python2', 'name': 'shuangshuang', 'id': '0005', 'sex': 'female'}
==========结束测试==========
 
dat-data数据
数据为文件对象:Json yaml
json格式里面必须为双引号“”,且必须为键值对,不存在纯列表格式,值作为测试数据
{"name":"nick","gender":"male","age":29}
 
@ddt.file_data(jason文件路径)
 
   @ddt.file_data(os.getcwd()+"/test.json")
    def test_json(self,data):
        print(data)
 
==========开始测试==========
[1, 2, 3]
==========结束测试==========
==========开始测试==========
python2
==========结束测试==========
==========开始测试==========
male
==========结束测试==========
==========开始测试==========
xiaoshitou
==========结束测试==========
==========开始测试==========
0001
==========结束测试==========       

python DDT读取excel测试数据的更多相关文章

  1. python下读取excel文件

    项目中要用到这个,所以记录一下. python下读取excel文件方法多种,用的是普通的xlrd插件,因为它各种版本的excel文件都可读. 首先在https://pypi.python.org/py ...

  2. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  3. python+ddt+unittest+excel+request实现接口自动化

    接口自动化测试流程:需求分析-用例设计--脚本开发--测试执行--结果分析1.获取接口文档,根据文档获取请求方式,传输协议,请求参数,响应参数,判断测试是否通过设计用例2.脚本开发:使用request ...

  4. python xlrd 读取excel.md

    文章链接:https://mp.weixin.qq.com/s/fojkVO-AB2cCu7FtDtPBjw 之前的文章介绍过关于写入excel表格的方法,近期自己在做一个网站,涉及到读取excel, ...

  5. python(读取excel操作-xlrd模块)

    一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 或者在cmd窗口  pip install  ...

  6. Python实现读取Excel文档中的配置并下载软件包

    问题:现在遇到这样一个问题,服务器存储了很多软件包,这些包输入不同的产品,每个产品都有自己的配置,互相交叉,那么到底某一产品所有配置的软件包下载后,占用多大空间呢? 分析:从这个问题入手,了解到:软件 ...

  7. python(读取 excel 操作 xlrd 模块)

    一.安装 xlrd 模块 到 python 官网下载 http://pypi.python.org/pypi/xlrd 模块安装,前提是已经安装了 python 环境. 或者在 cmd 窗口  pip ...

  8. python xlrd读取excel常用方法

    最近学习了python操作excel,记录下常用方法. 需要安装xlrd模块, 打开cmd,输入命令:pip install xlrd  进行安装,若已安装显示如下: xlrd读取excel常用方法如 ...

  9. python脚本 读取excel格式文件 并进行处理的方法

    一.安装xlrd模块 pip install xlrd 二.读取excel文件 try: excel_obj = xlrd.open_workbook("文件路径") except ...

随机推荐

  1. window下安装mysql

    参考地址: https://www.cnblogs.com/lmh2072005/p/5656392.html http://www.jb51.net/article/90302.htm 一.下载安装 ...

  2. Oracle中遇到的错误

    1. ORA-00937: 不是单组分组函数  和  不是group by表达式 --select count(corp_tn),state_code from t_oa_main where cor ...

  3. 【转】Jmeter的正则表达式未正确提取数据

    在进行脚本调试时,在Apply-Money-Page中需要Save-base中header的id参数,采用正则表达式提取器获取 使用正则表达式提取器,结果无法获取到需要的参数 最后定位是因为[?]是一 ...

  4. python学习(四) 字典:当索引不好用时

    第四章 字典:当索引不好用时 4.1 字典的使用 字典的适用场景: 表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改时间,用文件名作为键: 数字电话/地址簿 4.2 创建和使用字典 ...

  5. 命令提示符(cmd)中的tracert命令详解(小技巧)

    tracert也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径.本文主要探讨了tracert命令的各个功能. 百度经验 ...

  6. Py修行路 python基础(一)初识

    编译:把铭文代码执行前,先转成二进制,再执行,这个过程就叫编译. 编译型c,c++go特点:运行效率高依赖编译平台,linux 操作系统 跟CPU交互的接口,与windows不是完全一样不能跨平台,开 ...

  7. java成神之——正则表达式基本使用

    正则表达式 常用匹配规则 基本使用 标记符的使用 部分正则标记 正则表达式在字符串方法中的使用 结语 正则表达式 常用匹配规则 [abc] abc其中一个 [^abc] abc之外的一个 [a-z] ...

  8. 黑客工具包ShadowBrokers浅析

    臭名昭著的方程式组织工具包再次被公开,TheShadowBrokers 在 steemit.com博客上提供了相关消息. 本次被公开的工具包大小为117.9MB,包含23 个黑客工具,其中部分文件显示 ...

  9. Mycat实战之连续分片

    1 按照日期(天)分片: 从开始日期算起,按照天数来分片 例如,从2017-11-01,每10天一个分片且可以指定结束日期 注意事项:需要提前将分片规划好,建好,否则有可能日期超出实际配置分片数 1. ...

  10. BurpSuite—-Spider模块(蜘蛛爬行)

    一.简介 Burp Spider 是一个映射 web 应用程序的工具.它使用多种智能技术对一个应用程序的内容和功能进行全面的清查. Burp Spider 通过跟踪 HTML 和 JavaScript ...