pytest简单使用
一:Mark
1.注册标记
在项目根目录下创建固定名为 pytest.ini 的配置文件,文件格式需要加上 [pytest] ,然后通过 markers 注册自定义标记
2.贴上标记
通过@pytest加上装饰器,然后pytest.mark.XX配置自定义的标记,一个测试用例可以含有多个标记
3.筛选标记
pytest -m xx(自定义标记名称) 筛选单个标记执行
pytest -m "api or ui(自定义标记名称)" 筛选多个标记执行
二:fixture
自动的在用例执行前或执行后完成,用于测试环境的构建和销毁
1.设置fixture:
函数 fyt() 没有@pytest.fixture注解,则是python的生成器,有了@pytest.fixture注解,则是pytest的fixture
2.用例调用fixture:
方法1:在测试用例参数中加入fixture的方法名则可以调用
方法二:参数中没有fixture的方法名,但使用 @pytest.mark.usefixtures('fyt') 注解也能正常使用
结果:
优点:如果是python的函数生成器执行,执行方法报错则后置代码不执行,但是fixture即使报错了也会执行后置代码
3.fixture的作用范围:
五级作用范围,fixture可以调用fixture,但作用范围小的可以调用作用范围大的,反之不可
每个范围内的用例共享fixture
conftest.py 创建全局范围fixture,只需要吧fixture的代码放进文件中即可,用例代码不需要动
三.hook
当pytest在合适的时机,允许我们进入和退出pytest核心内部
目的:改变pytest原有的处理方式,运行模式
首先在 conftest.py 文件中添加钩子,钩子函数名字要使用pytest自带的钩子名,不然需要添加自定义钩子,
运行后发现该沟子的逻辑在用例执行前就先被执行了