Python pytest参数化(数据驱动ddt)

  参数化,就是将测试数据提取出来,与逻辑分离,通过参数传递不同的测试数据来驱动用例运行,又称为数据驱动测试(Data-Drive test,简写ddt)。

  比如,有一组测试注册的测试用例,它们的测试流程相同,只是输入的测试数据不同,这种情况下,自动化测试就可以将数据与代码分离,只编写1个测试用例方法,以后增加测试用例或者修改测试用例,只需要修改数据,不需要修改测试逻辑。

  pytest通过 @pytest.mark.parametrize()即可实现参数化(测试函数中必须有参数

  一、测试函数参数化

  1、单个参数

  @pytest.mark.parametrize()中接收2个参数,第1个参数用字符串的形式标记要传递给测试函数的参数名称,注意,名称与测试函数中的参数名称必须一致,第2个参数表示要传递的测试数据(通常以元祖或列表的形式)。

  

   2、多个参数

  多个参数,@pytest.mark.parametrize()中仍传入2个参数,第1个参数用一个字符串标识要传递的参数名称,字符串用英文,分割,注意,名称和数量必须和测试函数中的参数一致,第2个参数表示要传递的测试数据(通常以二维列表或原则表示)。

  

   二、测试类参数化

  测试类参数化,在类上面加@pytest.mark.parametrize()装饰器,实际上,也是对测试类中的方法进行参数化。可以传入单个参数或多个参数,类中的所有测试方法中的参数名称和个数(测试方法中必须使用参数),必须与@pytest.mark.parametrize()中标识的参数一致。

  

   

 

 

  

posted @ 2021-01-25 10:50  大脸猫最爱鱼  阅读(2631)  评论(0编辑  收藏  举报