如果你对软件测试、面试经验交流感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

[ddt01篇]十年测试老鸟帮您解析:ddt数据驱动实现自动化测试入门基础应用

上一篇 / 下一篇  2020-04-24 18:48:43 / 个人分类:WEB自动化

一、什么是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的基本使用方法。

如果你觉得此文对你有帮助,如果你对软件测试、面试经验感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
笔者来自公众号:软测之家

1.分别传入单个数字、字符串、元组、列表、集合、字典做一个案例。如:

第一组案例:

@ddt(100)deftestcase1(self,name):print(name)@ddt('诸葛')deftestcase1(self,name):print(name)@ddt(('诸葛','司马懿','韩信'))deftestcase1(self,name):print(name)@ddt(['诸葛','司马懿','韩信'])deftestcase1(self,name):print(name)@ddt({'诸葛','魏国':'司马懿','楚国':'韩信'})deftestcase1(self,name):print(name)@ddt({'蜀国':'诸葛','司马懿','韩信'})deftestcase1(self,name):print(name)

第二组案例:使用@unpack对单个元组和列表解包。

#unpack解析单个元组@data(('诸葛','司马'))@unpackdeftest1_data(self,args1,args2):print(args1,args2)#unpack解析单个列表@data(['诸葛','司马'])@unpackdeftest2_data(self,args1,args2):print(args1,args2)

2.分别传入多个数字、字符串、元组、列表、集合、字典做一个案例。如:

第一组案例:

代码可自己尝试:注意:查看运行结果,用例运行了多次。

第二组案例:使用@unpack解包:多个元组和列表,如:

#data传入多个元组,unpack对每个元组解析@data(('诸葛','司马'),('马超','关羽'))@unpackdeftest1_data(self,args1,args2):print(args1,args2)#data传入多个列表,unpack对每个列表解析@data(['诸葛','司马'],['马超','关羽'])@unpackdeftest1_data(self,args1,args2):print(args1,args2)

注意:

(1) 如果传入:[('诸葛','司马'),('马超','关羽')],则@unpack解析后得到('诸葛','司马')和('马超','关羽'),需要两个参数接收,用例只执行一次,所以得出@unpack解析最外层的元祖或列表。

(2) 如果传入的是字典列表(list of dict) 分解的参数名必须跟键名一致。

四、请继续关注[ddt02篇]

[ddt02篇]十年测试老鸟帮您解析:ddt结合txt,excel,csv,mysql实现自动化测试数据驱动


TAG:

 

评分:0

我来说两句

诸葛_

诸葛_

如果你对软件测试、面试经验交流感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

日历

« 2024-04-16  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 22065
  • 日志数: 38
  • 建立时间: 2020-04-01
  • 更新时间: 2020-06-29

RSS订阅

Open Toolbar