unittest中的参数化paramunittest使⽤
前⾔
paramunittest是unittest实现参数化的⼀个专门的模块,可以传⼊多组参数,⾃动⽣成多个⽤例
前⾯讲数据驱动的时候,⽤ddt可以解决多组数据传⼊,⾃动⽣成多个测试⽤例。本篇继续介绍另外⼀个参数化的框架paramunittest,也能实现⼀样的效果。
环境准备
1.先pip 下载安装 paramunittest
pip install paramunittest
官⽅⽂档pycharm安装教程和使用
3.官⽅⽂档上给出了2个使⽤案例,以下两种⽅法都是可以的,⼩编倾向于第⼆种,更容易理解⼀些,这⾥注意了,在pycharm⾥⾯运⾏的时候,最后⿏标要放到if下⽅执⾏。
4.加上这个参数verbosity=2是为了显⽰⽤例执⾏详情
verbosity=2
接下来是使⽤逻辑。
先放例⼦,然后根据例⼦来讲解:
(1)第⼀种:以字典格式的枚举数据
上⾯是个⾮常简单的例⼦,就是学习得到枚举值的逻辑是什么,然后输出。
line 5:先使⽤paramunittest.parametrized()⽅法,将要进⾏参数化的数据汇总。-----> 获取到了所有需要的数据
line 19:此处必须定义setParameters 将汇总得到的数据进⾏参数化操作。--->将数据参数化,⽤变量来存储
这⾥括号种的user, pwd, result必须和字典中的key值⼀致。赋值逻辑如下:
这样的话,sult变量就得到了字典中result⾥⾯的值(具体如何循环获取数据的,后⾯再说)。
line 25: 直接print出这些数据,看看会得到什么(切记,⼀点要把光标放在 line 40的 if 后⾯,具体为什么,我也不知道,我就知道不这么做⽆法执⾏)
可以看到,字典中的每⼀组数据循环的传⼊执⾏的参数化的变量中,然后再循环的执⾏⽤例,每⼀个轮次⽤到⼀组数据,⼀共得到10组数据。
上⾯的学习,就可以理解参数化的数据是以什么样的⽅式传⼊到⽤例⾥⾯的。
第⼀步:将测试数据汇总,按照⼀点的格式存放(这⾥是字典,后⾯介绍不⽤字典的⽅式)
第⼆部:将存放额数据参数化 (⼀定要使⽤setparameters⽅法)
第三步:执⾏⽤例即可,将已经参数化的数据按照变量来逐个使⽤
上⾯只是普通的输出,那么如何进⾏断⾔呢?
其实很简单,因为我们已经将原始数据参数化给了self.user, self.pwd, sult ,这些变量就已经代表了字典中的value 值,下⾯举⼀个断⾔的例⼦。
line 27 : ⾃⼰⾃定义⼀个输⼊ (测试中,同样的可以⽤这种⽅式获取⼀个response中的值,原理相同)
line 29 : 使⽤self.assertEqual , 判断self.user 是否和 user (⾃⼰的输⼊值) 相等, 如果不等的话,打印
出 msg。
执⾏完成了,是不是很简单。
下⾯再说⼀下不⽤字典格式的例⼦,原理都是⼀样的,只不过省去了原来字典中的 key 值,参数化的时候,还是循环的将 value值放⼊到⾃⼰参数化的变量⾥⾯。
如下:
其他的都⼀样,因为上⾯的元组的数据格式没有key 值,所以在 setParameters的时候,可以⾃定义变量。eg: def setParameters(self, myUser, myPwd, myResult)
完结。
学完上⾯的就可以对 paramunittest 的参数化使⽤有个基本的认识。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论