pytest05-参数化
Posted dearddu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest05-参数化相关的知识,希望对你有一定的参考价值。
什么是参数化?
1、以接口为例,data里有 age,sex,name等多个参数,每次我们测试其中age或sex不同值时,其他参数都是固定不变的,这个时候可以将要测试的参数
进行参数化,也就是参数进行参数化 代替数据的变动,减少代码重复量。
2、顾名思义就是把不同的参数,写到一个列表里,或者说写到一个集合里面。然后让程序自动去这个列表里面取值,直到列表为空便结束。
怎么用?
@pytest.mark.parametrize(输入值,期望结果,测试数据)
parametrize(self,argnames, argvalues, indirect=False, ids=None, scope=None)
argnames:参数名称
argvalues:参数对应值,类型必须为list
单个参数格式为:( "参数名",[value] )
多个参数格式为:("参数名1,参数名2,... ", [value] )
参数组合:
参数组合 适用于多组输入得到一个结果的情况
如果每组输入,结果不一样,就不适用。
若想多个参数值一同参数化,可以在输入值后面依次填入
最后拿接口返回的json数据与你参数化填入的期望结果进行assert即可。
参数化需要注意的地方:
1.一个用例的完整性,用例的起点和终点 第一个执行完成后,第二个是不是能接着运行
2.前置条件只执行一次,比如登录
ps: 有的参数是枚举类型,我们需要遍历测试的每种情况,这种可以只写一个用例,不同类型的参数写到步骤里面。
以上是关于pytest05-参数化的主要内容,如果未能解决你的问题,请参考以下文章