Python + Selenium的参数化,pytest.mark.parametrize及前置后置的使用

一、pytest.mark.parametrize('参数化',list)

Pytest 中装饰器可以实现测试用例参数化,类似 unittest 单元测试框架中的ddt。

 因此,pytest.mark.parametrize将列表success_case_data中的每个元素都赋值到变量case中。

pytest.mark.parametrize和ddt的区别是自动拆包。

 

二、pytest的前置后置条件

1、用例的前置与后置条件

 

因此,pytest.fixture():用来声明该方法是前置、后置方法;

yield:写在fixture方法中,用来区别前置条件和后置条件,并且能够return前置条件中的相关数据

用例前置后置条件的调用:直接在测试用例的参数中写入前置后置方法名。

用例前置后置条件的参数接收:直接拆包接收。

2、用例类的前置与后置条件

 

因此,对比用例的前置后置条件,类只需要在后面加上pytest.fixture(scope=‘class’);

只要在一个用例参数中写了类前置后置方法名,在执行时,该类就会调用该方法,且只调用一次。

 

3、模块的前置与后置条件

对比类的前置后置条件,将scope的值换成了module。

autouse=True: 代表不需要在模块中指定是否需要使用前置后置条件,所有的模块都会自动使用模块前置后置条件

4、会话级别的前置与后置条件

因此,session 的前置后置条件在每一次程序中只会执行一次,即最外层的前置后置。

 

posted @ 2020-07-09 00:26  菜鸟268  阅读(799)  评论(0)    收藏  举报