pytest特色与实用插件
pytest特色
1、fixture的特点
- fixture是pytest特有的功能,其特点如下:
必须用pytest.fixture装饰器装饰;fixture有明确的名字,在其他函数(function,默认),模块(module),类(class)或整个工程(session)调用它时会被激活;
- function:每个test都运行,默认是function的scope class:每个class的所有test只运行一次
- class:每个测试类之前执行一次
- module:每个module的所有test只运行一次
- session:每个session只运行一次
- 它自身也可以调用其他的fixture;
- 可以和测试函数写在同一个文件里;
- fixture看做是资源,在你的测试用例执行之前需要去配置这些资源,执行完后需要去释放资源;
- fixture还提供了参数化功能,根据配置和不同组件来选择不同的参数;
2、conftest.py:共享fixture功能
如果在实现测试期间,要使用多个测试文件中的fixture函数,则可以将其移动到conftest.py文件中。 并且,不需要导入要在测试中使用的fixture,它会自动被pytest发现。 fixture功能的发现从测试类开始,然后是测试模块,然后是conftest.py文件,最后是内置和第三方插件。
pytest插件
pytest真的很强大,下面列出其几点强大之处,方便大家在使用到pytest的时候做参考。
1、pytest-xdist
功能:
开启多个worker进程,同时执行多个测试用例,达到并发运行的效果,大大提升构建效率。
官网介绍:
https://pypi.org/project/pytest-xdist/
2、pytest-allure-adaptor
功能:
生成漂亮的allure报告,持续构建推荐使用
官网介绍:
https://pypi.org/project/pytest-allure-adaptor/
3、pytest-html
功能:
生成html格式报告,本地调试推荐使用
官网介绍:
https://pypi.org/project/pytest-html/
4、pytest-rerunfailures
功能:
自动重跑失败用例
官网介绍:
https://pypi.org/project/pytest-rerunfailures/3.1/
5、pytest-cache
功能:
重跑上次失败的用例,持续集成中很实用,提高分析效率,强烈推荐。
官网介绍:
https://pypi.org/project/pytest-cache/
6、pytest-ordering
功能:
可指定一个测试套中的所有用例执行顺序。
官网介绍:
https://pypi.org/project/pytest-ordering/
7、pytest-sugar
功能:
改变了pytest的默认外观,增加了一个进度条,并立即显示失败的测试。
官网介绍:
https://pypi.org/project/pytest-sugar/