[ddt01篇]十年测试老鸟帮您解析:ddt数据驱动实现自动化测试入门基础应用
一、什么是DDT数据驱动框架
全称:data driver test数据驱动测试框架,可以完美的应用于unittest框架实现数据驱动。ddt使用简介:
1.测试数据为多个字典的list类型
2.测试类前加修饰@ddt.ddt
3.用例前加修饰@ddt.data() 或 @ddt.file_data()
4.运行后测试会自动加载成三个单独的用例
注意:@data装饰符可以把参数当成测试数据,参数可以是单个值、列表、元祖、字典,对于列表和元祖需要使用@unpack装饰符把元祖和列表解析成多个参数。
二、ddt数据驱动框架的安装和使用方式
1.安装方式一:在dos窗口中使用命令:pip install ddt 安装 (建议用这种)
验证是否安装成功:在dos命令中输入python进入python环境,然后输入import ddt,如果没有报错则说明安装成功!如下图所示:
2.安装方式二:直接访问:https://pypi.org/project/ddt/#files 下载ddt源码(ddt-1.2.2.tar.gz)。下载后解压,然后在dos命令中切换到setup.py所在目录,执行python setup.py install 进行安装。
3.把ddt导入项目中。
File->Settings->project:项目名->加号->输入ddt->install package
4.ddt使用方式和常用模块
使用方式:
ddt是通过装饰器的形式来调用的
ddt常用模块:
@ddt(申明当前类使用ddt框架),
@data(用于传参),
@unpack(将参数解包,一般针对元组和列表),
@data_file(ddt读取yaml/json文件)
三、@ddt,@data,@unpack的基本使用方法。
1.分别传入单个数字、字符串、元组、列表、集合、字典做一个案例。如:
第一组案例:
@ddt(100) def testcase1(self,name): print(name) @ddt('诸葛') def testcase1(self,name): print(name) @ddt(('诸葛','司马懿','韩信')) def testcase1(self,name): print(name) @ddt(['诸葛','司马懿','韩信']) def testcase1(self,name): print(name) @ddt({'诸葛','魏国':'司马懿','楚国':'韩信'}) def testcase1(self,name): print(name) @ddt({'蜀国':'诸葛','司马懿','韩信'}) def testcase1(self,name): print(name)
第二组案例:使用@unpack对单个元组和列表解包。
#unpack解析单个元组
@data(('诸葛','司马'))
@unpack
def test1_data(self,args1,args2):
print(args1,args2) #unpack解析单个列表
@data(['诸葛','司马'])
@unpack
def test2_data(self,args1,args2):
print(args1,args2)
2.分别传入多个数字、字符串、元组、列表、集合、字典做一个案例。如:
第一组案例:
代码可自己尝试:注意:查看运行结果,用例运行了多次。
第二组案例:使用@unpack解包:多个元组和列表,如:
#data传入多个元组,unpack对每个元组解析
@data(('诸葛','司马'),('马超','关羽'))
@unpack
def test1_data(self,args1,args2):
print(args1,args2) #data传入多个列表,unpack对每个列表解析
@data(['诸葛','司马'],['马超','关羽'])
@unpack
def test1_data(self,args1,args2):
print(args1,args2)
注意:
(1) 如果传入:[('诸葛','司马'),('马超','关羽')],则@unpack解析后得到('诸葛','司马')和('马超','关羽'),需要两个参数接收,用例只执行一次,所以得出@unpack解析最外层的元祖或列表。
(2) 如果传入的是字典列表(list of dict) 分解的参数名必须跟键名一致。
四、请继续关注[ddt02篇]
[ddt02篇]十年测试老鸟帮您解析:ddt结合txt,excel,csv,mysql实现自动化测试数据驱动:https://blog.csdn.net/pengjiangchun/article/details/105451020
如果你此文你也有同感,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:
软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12679448.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
最新文章
- 跟服务器交互的登录Demo
- Linux 内核中的 Device Mapper 机制
- Springmvc + mybatis + spring 配置,spring事物
- javaweb servlet中使用请求转发乱码
- 在windows环境下,为什么要用Notepad++编辑?
- 将XML解析成DOM文档
- 关于ASP.net TextBox控件的失去焦点后触发其它事件
- 通过GitHub部署网站到Azure WebSite
- Xcode-Xcode 7.3 解决不能自动联想问题-备
- angular1.x 脏检测
- RAC之常用方法-----新手入门
- 旋转数组的最小数字(JAVA)
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
- Java.FamousBlogs
- Android 外部启动activity,自定义action,action常量大全
- Docker源码分析(四):Docker Daemon之NewDaemon实现
- 模拟百度云盘版的ftp
- 洛谷P1290 欧几里得的游戏
- U3D内存优化
- SQL Server配置管理器”远程过程调用失败“
热门文章
- 【WPF学习】第五十八章 理解逻辑树和可视化树
- 浅谈Spring框架
- selenium (四) WebDriverWait 与 expected_conditions
- 解决idea的pom.xml文件不自动导包问题
- 吐血干货,直播首屏耗时400ms以下的优化实践
- 改变 C/C++ 控制台程序的输出颜色和样式
- LSTM + linear-CRF序列标注笔记
- File类的构造方法:三种重载形式(新手)
- springMVC容器简介和执行流程
- [暴力枚举]Codeforces Vanya and Label