一、如何分组执行(冒烟、分模块执行、分接口和web执行)
1、改变默认的执行顺序,使用mark标记
2、pytest.ini文件配置对应标记
3、smoke:冒烟用例,一般分布在各个模块中
pytest -vs -m "smoke"
pytest -vs -m "smoke or username"
二、跳过测试用例
a. 无条件跳过
b. 有条件跳过
三、pytest框架实现一些前后置(固件,夹具)的处理,常用三种
1、setup/teardown, setup_class/teardown_class(注意:与unittest不同的是,全是小写)
为什么需要这些功能?
比如:web自动化执行用例之前,是否需要打开浏览器?用例执行完毕后是否需要关闭浏览器?
setup_class(此方法在每个类执行前只执行一次):
teardown_class(此方法在每个类执行后只执行一次):
setup(此方法在每个用例之前执行一次):
teardown(此方法在每个用例之后执行一次):
运行效果:
代码实现:
四、使用@pytest.fixture()装饰器来实现部分用例的前后置
@pytest.fixture(scope='', params='', autouse='', ids='', name='')
1、scope:表示的是被@pytest.fixture标记的方法的作用域。function(默认),class,module、package/session
2、params:参数化
3、autouse=True : 自动使用,默认False
4、ids:当使用params参数化时,给每一个值设置一个变量名,意义不大
5、name:表示的是被@pytest.fixture标记的方法取一个别名
案例:
预期效果:
test_01_caocao 没有前置 test_02_wangzhaojun 有前置