gpt4 book ai didi

Python接口自动化系列之unittest结合ddt的使用教程详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python接口自动化系列之unittest结合ddt的使用教程详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前面一篇我们已经把unittest的常用用法都已经讲过了,可能很多小伙伴有个疑问,unittest框架怎么做数据驱动呢?这节我们就来学习一下。 1、unittest 没有自带数据驱动功能。 所以如果使用unittest,同时又想使用数据驱动,那么就可以使用ddt来完成。 ddt是 “data-driven tests”的缩写。 资料:http://ddt.readthedocs.io/en/latest/ 2、什么是ddt? 测试步骤相同,代码一样,测试数据不同,当我们输入一组测试数据的时候,测试框架会自动生成独立的多个测试用例的方法,这就是ddt。(个人理解) 注意:ddt不等于数据驱动,ddt只是实现了数据驱动思想 。

首先,我们需要下载包,下载方法如下:

Python接口自动化系列之unittest结合ddt的使用教程详解

然后,我们开始学习 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import unittest
import ddt
# 首先我们导入ddt
 
# 我们还是哪官网这个加法方法来做例子,首先我们准备一些测试数据
 
data = [( 1 , 2 , 3 ),
     ( 1 , 3 , 4 ),
     ( 1 , 4 , 5 )]
 
# 装饰类,也就是继承自testcase的类,可以理解为给这个类戴了个帽子
@ddt .ddt
class integerarithmetictestcase(unittest.testcase):
   # 装饰测试方法。参数是一系列的值
   # 注意要加这个*,多组数据,@ddt.data(*data)相当于@ddt.data((1,2,3),(1,3,4),(1,4,5))
   @ddt .data( * data)
   # 每次运行都会从 data中取出一组数据,动态生成一个独立的测试用例方法
   def testadd( self ,test_data):
     print (test_data)
     self .assertequal((test_data[ 0 ] + test_data[ 1 ]), test_data[ 2 ])
'''
测试用例方法名生成规则
使用ddt后,会产生一个新的测试用例方法名:之前的测试用例方法名_ordinal_data
之前的测试用例方法名:即定义的测试用例方法名。比如def test_large(),这里就是test_large
ordinal:整数,从1开始递加。
data:如果传递过来的数据存在__name__属性,则这里就是该数据的__name__值。如果未定义__name__属性,ddt会尽量将传递过来的数据转化为python标识符,作为data显示。比如(3,2)就转化为3_2。
需要注意的是,如果数据是字典,则这里就是字典的key。
'''
if __name__ = = '__main__' :
   unittest.main(verbosity = 2 )

我么执行看一下结果:

Python接口自动化系列之unittest结合ddt的使用教程详解

在看一下html的结果报告:

Python接口自动化系列之unittest结合ddt的使用教程详解

3、下面我们就说一下在实际框架中ddt是如何使用的 实际框架中只不过测试数据不是放在代码里,代码要做数据分离,实际是把数据放在excel,或者yaml,或者json文件中,等等吧,作者实际框架中用的最多的都是这三种。 1)我么你先看一下测试数据放在json中,先建一个json文件 。

Python接口自动化系列之unittest结合ddt的使用教程详解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import unittest
import ddt
 
 
# 装饰类,也就是继承自testcase的类,可以理解为给这个类戴了个帽子
@ddt .ddt
class integerarithmetictestcase(unittest.testcase):
   # 装饰测试方法。参数是文件名。文件可以是json 或者 yaml类型。
   # 注意,如果文件以”.yml”或者”.yaml”结尾,ddt会作为yaml类型处理,其他所有文件都会作为json文件处理。
   # 如果文件中是列表,每个列表的值会作为测试用例参数,同时作为测试用例方法名后缀显示。
   # 如果文件中是字典,字典的key会作为测试用例方法的后缀显示,字典的值会作为测试用例参数
   @ddt .file_data( 'd1.json' )
   @ddt .unpack
   # 每次运行都会从 data中取出一组数据,动态生成一个独立的测试用例方法
   def testadd( self ,first,second,values):
     self .assertequal( (first + second), values)
 
if __name__ = = '__main__' :
   unittest.main(verbosity = 2 )

执行查看结果如下:

Python接口自动化系列之unittest结合ddt的使用教程详解

2)我么你在看一下测试数据放在yaml中,先建一个yaml文件 。

到此这篇关于python接口自动化系列之unittest结合ddt的使用教程详解的文章就介绍到这了,更多相关python接口自动化内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/weixin_45608577/article/details/113739263 。

最后此篇关于Python接口自动化系列之unittest结合ddt的使用教程详解的文章就讲到这里了,如果你想了解更多关于Python接口自动化系列之unittest结合ddt的使用教程详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com