unittest中的参数化 paramunittest使用

前言

paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例
前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例。本篇继续介绍另外一个参数化的框架paramunittest,也能实现一样的效果。

 

环境准备

1.先pip 下载安装 paramunittest

pip install paramunittest

unittest中的参数化 paramunittest使用_第1张图片

官方文档

1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/

2.github源码下载地址:https://github.com/rik0/ParamUnittest

3.官方文档上给出了2个使用案例,以下两种方法都是可以的,小编倾向于第二种,更容易理解一些,这里注意了,在pycharm里面运行的时候,最后鼠标要放到if下方执行。

4.加上这个参数verbosity=2是为了显示用例执行详情

verbosity=2

 接下来是使用逻辑。

先放例子,然后根据例子来讲解:

(1)第一种:以字典格式的枚举数据

 

 unittest中的参数化 paramunittest使用_第2张图片

unittest中的参数化 paramunittest使用_第3张图片

上面是个非常简单的例子,就是学习得到枚举值的逻辑是什么,然后输出。

line 5:先使用paramunittest.parametrized()方法,将要进行参数化的数据汇总。-----> 获取到了所有需要的数据

line 19:此处必须定义setParameters 将汇总得到的数据进行参数化操作。--->将数据参数化,用变量来存储

这里括号种的user, pwd, result必须和字典中的key值一致。赋值逻辑如下:

unittest中的参数化 paramunittest使用_第4张图片

这样的话,self.result变量就得到了字典中result里面的值(具体如何循环获取数据的,后面再说)。

line 25: 直接print出这些数据,看看会得到什么(切记,一点要把光标放在 line 40的 if 后面,具体为什么,我也不知道,我就知道不这么做无法执行)

unittest中的参数化 paramunittest使用_第5张图片

可以看到,字典中的每一组数据循环的传入执行的参数化的变量中,然后再循环的执行用例,每一个轮次用到一组数据,一共得到10组数据。

上面的学习,就可以理解参数化的数据是以什么样的方式传入到用例里面的。

第一步:将测试数据汇总,按照一点的格式存放(这里是字典,后面介绍不用字典的方式)

第二部:将存放额数据参数化 (一定要使用setparameters方法)

第三步:执行用例即可,将已经参数化的数据按照变量来逐个使用

 

上面只是普通的输出,那么如何进行断言呢?

其实很简单,因为我们已经将原始数据参数化给了self.user, self.pwd, self.result ,这些变量就已经代表了字典中的value 值,下面举一个断言的例子。

unittest中的参数化 paramunittest使用_第6张图片

line 27 : 自己自定义一个输入 (测试中,同样的可以用这种方式获取一个response中的值,原理相同)

line 29 : 使用self.assertEqual , 判断self.user 是否和 user (自己的输入值) 相等, 如果不等的话,打印出 msg。

unittest中的参数化 paramunittest使用_第7张图片

unittest中的参数化 paramunittest使用_第8张图片

执行完成了,是不是很简单。

 

下面再说一下不用字典格式的例子,原理都是一样的,只不过省去了原来字典中的 key 值,参数化的时候,还是循环的将 value值放入到自己参数化的变量里面。

如下:

unittest中的参数化 paramunittest使用_第9张图片

其他的都一样,因为上面的元组的数据格式没有key 值,所以在 setParameters的时候,可以自定义变量。

eg: def setParameters(self, myUser, myPwd, myResult)

完结。

学完上面的就可以对 paramunittest 的参数化使用有个基本的认识。

你可能感兴趣的:(接口测试,Python自动化测试,#,unittest)