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: 有的参数是枚举类型,我们需要遍历测试的每种情况,这种可以只写一个用例,不同类型的参数写到步骤里面。

  

原文地址:https://www.cnblogs.com/dearddu/p/12488014.html