本文节选自霍格沃玆测试学院内部教材,文末链接进阶学习。
在之前的文章中主要分享了 pytest 的实用特性,接下来讲 Pytest 参数化用例的构建。
如果待测试的输入与输出是一组数据,可以把测试数据组织起来用不同的测试数据调用相同的测试方法。参数化顾名思义就是把不同的参数,写到一个集合里,然后程序会自动取值运行用例,直到集合为空便结束。pytest 中可以使用 @pytest.mark.parametrize 来参数化。
使用 parametrize 实现参数化
parametrize( ) 方法源码:
def parametrize(self,argnames, argvalues, indirect=False, ids=None, \
scope=None):
主要参数说明
argsnames :参数名,是个字符串,如中间用逗号分隔则表示为多个参数名
argsvalues :参数值,参数组成的列表,列表中有几个元素,就会生成几条用例
使用方法
使用 @pytest.mark.paramtrize() 装饰测试方法
parametrize('data', param) 中的 “data” 是自定义的参数名,param 是引入的参数列表
将自定义的参数名 data 作为参数传给测试用例 test_func
然后就可以在测试用例内部使用 data 的参数了
创建测试用例,传入三组参数,每组两个元素,判断每组参数里面表达式和值是否相等,代码如下:
@pytest.mark.parametrize("test_input,expected",[("3