准备工作: pip install ddt

知识点:

一,数据驱动和代码驱动:

数据驱动的意思是  根据你提供的数据来测试的  比如 ATP框架 需要excel里面的测试用例

代码驱动是必须得写代码 它才能测试 比如说unittest

二,使用数据驱动框架的意义:
- 代码复用率高。同一测试逻辑编写一次,可以被多条测试数据复用,提高了测试代码的复用率,同时可以提高测试脚本的编写效率。
- 异常排查效率高。测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离,在其中一条失败的情况下,不会影响其他的测试用例。

-代码的可维护性高。清晰的测试框架,利于其他测试工程师阅读,提高了代码的可维护性。

tips : 参数少的用yml挺好  参数多的,用json xx.json 格式  这种上下有依赖关系的 就写py文件

文件名.json的话是json文件里面要写json串

yml每个接口都是独立运行的

 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]被分解开,按照用例中的两个参数传递

@file_data(filename)

对于json的文件,每一个json元素按照一个用例运行,可以依照python分解元组,列表或者字典的方式分解传入

实例:

import ddt
import unittest
# print(dir(ddt)) @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()

最新文章

  1. Java:Map
  2. Jackson怎样转换这样的字符串? String jsonStr = "{dataType:'Custom',regexp:'t\\d+',msg:'输入不正确'}";
  3. 删除_desktop.ini病毒文件
  4. 透过表象看本质!?之二——除了最小p乘,还有PCA
  5. 数据结构读书笔记(三)(C语言)
  6. Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager
  7. 前端开发中一些好用的chrome插件总结
  8. Python模块学习------ 多线程threading(1)
  9. python_如何使用临时文件
  10. PHP中::的使用
  11. 让opencv程序在没有安装opencv的电脑上运行
  12. Layer 使用
  13. Ubuntu 18.04 安装java8
  14. SQL语句利用日志写shell
  15. pycharm怎么设置代码自动补齐
  16. Linux下设置动态库的方法
  17. PAT 甲级 1023 Have Fun with Numbers(20)(思路分析)
  18. AngularJS controller as vm方式
  19. [转]Linux sendmail 详解
  20. android--------自定义Dialog之信息提示

热门文章

  1. ORACLE 查看CPU使用率最高的语句及一些性能查询语句
  2. 循环链表的创建、插入、删除、逆序、显示(C++实现)
  3. utf8_general_ci、utf8_unicode_ci和utf8_bin的区别
  4. ECharts学习总结(一):ECharts的第一个图表
  5. SCP远程拷贝命令
  6. html5图表
  7. 利用反射实现JavaBean的自动赋值
  8. html中嵌入flvplayer.swf播放器,播放视频
  9. UNIX网络编程读书笔记:原始套接口
  10. CentOS6.5搭建MySQL5.1主从复制