一.DDT简介

Data Driven Testing,数据驱动,简单来说就是测试数据的参数化

Python数据驱动模块DDT,包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据)

通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。

@data(*参数)

拆分参数为多个,运行多次用例

@data(a,b)

那么a和b各运行一次用例

@data([a,d],[c,d])

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

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

二、安装DDT

pip install ddt

三、导入模块

import requests,json,unittest
from ddt import ddt,data,unpack

四、案例

@ddt
@data(参数)实验证明:
1、@data可传列表、元祖、字典
2、@data(参数)时,是把参数当做一个变量传入处理的#data是元祖import requests,json,unittest
from ddt import ddt,data,unpack
@ddt
class Test(unittest.TestCase):name=(('橙子','橘子'),('柠檬','柚子'))@data(name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000sOK
(('橙子', '橘子'), ('柠檬', '柚子'))Process finished with exit code 0#data是列表@ddt
class Test(unittest.TestCase):name=[['橙子','橘子'],['柠檬','柚子']]@data(name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
[['橙子', '橘子'], ['柠檬', '柚子']]
.
----------------------------------------------------------------------
Ran 1 test in 0.000sOKProcess finished with exit code 0#data是字典@ddt
class Test(unittest.TestCase):name={'name':'王荔','age':11}@data(name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
.
{'name': '王荔', 'age': 11}
----------------------------------------------------------------------
Ran 1 test in 0.000sOKProcess finished with exit code 0
@ddt
@data(*参数)实验证明:
1、@data可传列表、元祖、字典
2、@data(*参数)时,是把参数拆分成多个迭代次数import requests,json,unittest
from ddt import ddt,data,unpack
@ddt
class Test(unittest.TestCase):name=(('橙子','橘子'),('柠檬','柚子'))@data(*name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
('橙子', '橘子')
----------------------------------------------------------------------
('柠檬', '柚子')
Ran 2 tests in 0.000sOKProcess finished with exit code 0@ddt
class Test(unittest.TestCase):name=[['橙子','橘子'],['柠檬','柚子']]@data(*name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
['橙子', '橘子']
----------------------------------------------------------------------
['柠檬', '柚子']
Ran 2 tests in 0.000sOKProcess finished with exit code 0@ddt
class Test(unittest.TestCase):name=[{'name':'王荔','age':11},{'name':'王荔','age':11}]@data(*name)def test(self,name):print(name)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
{'age': 11, 'name': '王荔'}
{'age': 11, 'name': '王荔'}
----------------------------------------------------------------------
Ran 2 tests in 0.001sOKProcess finished with exit code 0
@ddt
@data(*参数)
@unpack实验证明:
1、@data可传列表、元祖、字典
2、@data(*参数)时,是把参数拆分成多个迭代次数
3、@unpack 是把参数拆分成多个参数传入import requests,json,unittest
from ddt import ddt,data,unpack
@ddt
class Test(unittest.TestCase):name=(('橙子','橘子'),('柠檬','柚子'))@data(*name)@unpackdef test(self,name1,name2):print(name1,name2)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
橙子 橘子
柠檬 柚子
..
----------------------------------------------------------------------
Ran 2 tests in 0.000sOKProcess finished with exit code 0@ddt
class Test(unittest.TestCase):name=[['橙子','橘子'],['柠檬','柚子']]@data(*name)@unpackdef test(self,name1,name2):print(name1,name2)
if __name__=='__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
..
橙子 橘子
----------------------------------------------------------------------
Ran 2 tests in 0.001sOK
柠檬 柚子Process finished with exit code 0

Python数据驱动模块DDT相关推荐

  1. python+selenium2.53.6学习(5)之数据驱动模块ddt

    安装: pip install ddt 测试:import ddt DDT是 "Data-Driven Tests"的缩写 DDT: 包含类的装饰器ddt和两个方法装饰器data( ...

  2. python数据可视化利用_利用pyecharts实现python数据可视化

    **python 利用pyecharts实现python数据可视化 **web pyecharts是一种交互式图表的表达方式. pyecharts是一款将python与echarts结合的强大的数据可 ...

  3. 《Python数据科学指南》——1.8 使用迭代器

    本节书摘来自异步社区<Python数据科学指南>一书中的第1章,第1.8节,作者[印度] Gopi Subramanian ,方延风 刘丹 译,更多章节内容可以访问云栖社区"异步 ...

  4. 《Python数据可视化编程实战》——5.5 用OpenGL制作动画

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  5. 超硬核的 Python 数据可视化教程!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 Python实现可视化的三个步骤: ...

  6. 《Python数据科学指南》——1.17 使用映射函数

    本节书摘来自异步社区<Python数据科学指南>一书中的第1章,第1.17节,作者[印度] Gopi Subramanian ,方延风 刘丹 译,更多章节内容可以访问云栖社区"异 ...

  7. php数据库查询中文方块,解决Python数据可视化中文部分显示方块问题

    一.问题 代码如下,发现标题的中文显示的是方块 import matplotlib import matplotlib.pyplot as plt fig = plt.figure() ax = fi ...

  8. python数据科学手册_小白入门Python数据科学

    前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...

  9. 超硬核的 Python 数据可视化教程

    来源:数据分析1480 本文约3000字,建议阅读6分钟 本文为你介绍Python实现可视化的三个步骤. Python实现可视化的三个步骤: 确定问题,选择图形 转换数据,应用函数 参数设置,一目了然 ...

最新文章

  1. 谷歌让NLP模型也能debug,只要给一张「草稿纸」就行
  2. C语言-宏定义#define的用法
  3. 用3个IO口控制6个LED灯,怎么做到的?查理复用!
  4. 9、MySQL定义条件和处理程序
  5. python leetcode_LeetCode刷题——第8天(python)
  6. 【已解决】蓝桥杯 2017年C组第五题 杨辉三角(分析与总结)
  7. export default (imported as router) was not found_小学生必须知道的英语语法知识:as…as的七大用法...
  8. linux磁盘冗余阵列
  9. java spring 过滤器_java – 如何在spring-security中的另一个过滤器之前添加过滤器?...
  10. linux 查看命令帮助,Linux中查看帮助相关的命令整理
  11. spring学习--AOP--JDK动态代理
  12. 通用数据库弱密码检测解决方案
  13. 【学习教程】CMIP6数据处理方法与典型案例分析
  14. VISIO中如何增加连接点
  15. 当封号成为一种常态,网络营销人该何去何从?
  16. NVIDIA显卡3D设置 让你的游戏得到最佳效果
  17. AD域创建及加入域的办法
  18. mybatis-plus中使用MySQL函数
  19. DGP 论文阅读笔记
  20. 机器学习编程作业ex7(matlab/octave实现)-吴恩达coursera K-means和PCA

热门文章

  1. 企鲸客scrm跟小裂变的功能对比
  2. word使用MathType无法更新引用编号
  3. 实战操作——一次简单的逆向分析破解锁机软件
  4. 沙子是如何变成CPU的
  5. el-select 展示 2*2、1*1、3*3、4*4 视频 分屏展示
  6. python中列表元素和的代码_使用python的列表中元素的总和
  7. Stream.map
  8. 破解163相册防盗链
  9. 数字图像处理-车牌定位
  10. 数据交换格式 - PB(protocol buffer),xml,json,array