安装: pip install ddt

测试:import ddt

DDT是 “Data-Driven Tests”的缩写

DDT: 包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(获取测试数据)

ddt.ddt:装饰类,也就是继承自TestCase的类

ddt.data:装饰测试方法。参数是一系列的值

ddt.file_data:装饰测试方法。参数是文件名。文件可以是json 或者 yaml类型

ddt.unpack:传递的是复杂的数据结构时使用。比如使用元组或者列表,添加unpack之后,ddt会自动把元组或者列表对应到多个参数上

先看不适用ddt的例子

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittestdata = [{'sum_a': 2, 'sum_b': 3, 'result': 5},
    {'sum_a': 2, 'sum_b': 3, 'result': 6},
    {'sum_a': 5, 'sum_b': 10, 'result': 4}
]def sum(a, b):return a + bclass TestDDT(unittest.TestCase):@classmethod
    def setUpClass(cls):cls.data = dataprint
        '验证a+b,a-b结果'

    def test_01(self):self.assertTrue(sum(self.data[0]['sum_a'], self.data[0]['sum_b']) == self.data[0]['result'])def test_02(self):self.assertTrue(sum(self.data[1]['sum_a'], self.data[1]['sum_b']) == self.data[1]['result'])def test_03(self):self.assertTrue(sum(self.data[2]['sum_a'], self.data[2]['sum_b']) == self.data[2]['result'])def test_04(self):for i in self.data:self.assertEqual(sum(i['sum_a'], i['sum_b']), i['result'])@classmethod
    def tearDownClass(cls):print
        '验证结束'

if __name__ == '__main__':unittest.main()

使用之后:

使用之后,代码一方面简洁了很多,在一个测试方法中执行多条测试用例,和图1的test_04相比,如果断言异常也会继续执行(因为是不同的case)

结果(unittest.main(verbosity=2)执行):

使用方法:

首先在Class上添加装饰器@ddt.ddt,其次在调用的方法上引入测试数据data('数据')

新建一个文件 test_data.json

{"list_num": [ 10, 12, 15 , 23 ],
    "tuple_num": [ 15, 12, 50 ],
   "str_num": "welcome"
}

引用

结果:

注: 对json格式不太熟悉,不知道元祖为什么不行

python+selenium2.53.6学习(5)之数据驱动模块ddt相关推荐

  1. Python数据驱动模块DDT

    一.DDT简介 Data Driven Testing,数据驱动,简单来说就是测试数据的参数化 Python数据驱动模块DDT,包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情 ...

  2. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)

    Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习.深度学习.大数据.云计算等)推荐系统(包括语音生成.识别等前沿黑科技) 导读 基于Python的GUI界面设计的一套 ...

  3. python学习四(处理数据)

    python学习四(处理数据) head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-3 ...

  4. python的类程序的结构_Python程序员学习路径之数据结构篇

    原标题:Python程序员学习路径之数据结构篇 点击标题下「异步图书」可快速关注 在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大.Python语言的语法简单,交互性强.用Python来讲 ...

  5. Python学习:图片数据归一化处理

    文章与视频资源多平台更新 微信公众号|知乎|B站|头条:AI研习图书馆 深度学习.大数据.IT编程知识与资源分享,欢迎关注,共同进步~ 1. 介绍 Python学习:在文件夹下,提取目录下所有图片,更 ...

  6. Python学习笔记:数据可视化(一)

    python相关 基础概念 数据:离散的,客观事实的数字表示 信息:处理后的数据,为实际问题提供答案 - 为数据提供一种关系或一个关联后,数据就成了信息,这种关联通过提供数据背景来完成 知识: 是数据 ...

  7. 学习python的第三节课:基础数据

    文章目录 一.几个概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 二.数据类型 2.1 什么是程序 2.2 数据类型 2.3 算法 三.pytho ...

  8. 联邦学习non-iid用户数据采样python实现

    联邦学习non-iid用户数据采样python实现 问题描述 解决办法 问题描述 联邦学习non-iid用户数据采样 解决办法 直接上代码 import os from scipy.io import ...

  9. 学习python数据分析的30个练手数据+4个数据集网站

    前几天发了一个博文:懂点excel作图, 怎么让pyechart作的图更具"职场范"呢?丨pyechart工作作图模板, 一不小心上了热榜, 感谢小伙伴们的支持, 以后会多总结发更 ...

最新文章

  1. python 逻辑回归
  2. Python数据结构——栈、队列的实现(一)
  3. linux无桌面重做系统,Linux不需要重做系统
  4. 袁亚湘院士谈如何做好研究生:要逼着自己去想问题,最大的浪费是聪明人不思考...
  5. 「视频版」当线程池溢出之后,程序会奔溃吗?面试突击 007 期
  6. 阿里云发布首个流式存储与播放解决方案
  7. python将argv作为参数,Python当中的命令行参数sys.argv[]的使用方法
  8. 听说大家想补补算法和数据结构,给大家推荐一个GitHub 15k星的图文版开源项目...
  9. C++ TBB concurrent_unordered_map find() at() return static_cast<size_t>( t ) * internal::hash_multip
  10. JAVA入门_工具类_书籍借阅日期计算
  11. 这届年轻人为什么都不爱看电视了?
  12. 小说站源码(带自动采集开源小说网站源码)
  13. MFC之映美精双目相机保存图片
  14. We're sorry but ***** doesn't work properly without JavaScript enabled. Please enable it to continue
  15. win7 无法打开vscode 1.71版本
  16. 小程序 : js获取今日日期、加日期、减日期; 判断今日 、判断昨日
  17. An overview of color constancy algorithms论文笔记
  18. 小程序 朋友圈,点赞 ,评论,发布动态,功能,上传图片 -----发布动态
  19. html怎么设置文艺字体,用CSS让你的文字更有文艺范
  20. 7-24 程序改错题3 (5 分)

热门文章

  1. 【论文笔记】Enhanced Decentralized Autonomous Aerial Swarm with Group Planning
  2. F值(F-measure),准确率,召回率计算方法
  3. Mac下移动硬盘/U盘热插拔后不能识别的问题解决
  4. 中断和异常 in 操作系统【操作系统学习笔记】
  5. 哈希(解决哈希冲突,封装map/set,哈希的应用{位图/布隆过滤器})
  6. 乐鑫Esp32学习之旅 18 入门京东微联·小京鱼的控制面板H5开发,读懂vue语法,做自己的控制页面。
  7. 高数篇:04拉格朗日中值定理
  8. windows计划任务 0xff_利用定时任务和VBS设置windows自动语音定时提醒
  9. 文档flie的读写,open()的用法
  10. sun.security.validator.ValidatorException