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-参数化的主要内容,如果未能解决你的问题,请参考以下文章

pytest参数化之yaml文件操作05

(六)pytest-参数化

覆盖 pytest 参数化函数名称

pytest parametrize参数化

如何参数化 Pytest 夹具

pytest文档77 - parametrize 参数化跳过部分用例(pytest.param)