pytest fixture和allure

Fixture固件

部分用例之前或之后执行,部分类之前或之后执行。模块或会话之前或之后的操作。
Fixture完整的方法如下:
@pytest.fixture(scope=“作用域”,params=“数据驱动”,autouse=“是否自动执 行”,ids=“参数别名”,name=“Fixture别名”) scope:可选值: function(函数,默认),class(类),module(模块),package/session(会 话)

基础应用

scope是functionpytest fixture和allure_第1张图片

在函数中的参数中通过execute_sql名称调用。
return:返回函数的结果,return之后的代码不会执行。
yield:带有yield函数叫生成器。yield之后的代码会执行。

scope为class

pytest fixture和allure_第2张图片
通过装饰器@pytest.mark.usefixtures(“execute_sql”)调用

scope作用域是module或package/session,那么需要结合conftest.py使用。

pytest fixture和allure_第3张图片

conftest.py专门用于存放固件fixtue的配置文件,名称是固定的,不能更改。
在conftest.py文件中的fixtue在调用时都不需要导包。 conftest.py文件可以有多个,并且多个conftest.py文件的多个fixture之间没有冲突。
模块级别和session模块一般都是自动执行

params用于数据驱动:

pytest fixture和allure_第4张图片
特别注意:params传参的时候,会把每一次读取到的值传给request.param,上面的 request参数和request.param取值方式是固定的。
ids不能单独使用,必须和params一起使用,作用是给参数起别名
name作用是给fixture起别名。
特别注意:当name起别名后,那么固件原来的名称就失效了。

pytest执行顺序总结:

1.查询当前目录下的conftest.py
2.查询当前目录下的pytest.ini文件,找到测试用例
3.查询用例目录下的conftest.py文件。
4.查询用例中是否有setup,teardown,setup_class,teardown_class 5.执行测试用例 。

pytest的基础路径设置

[pytest]

命令行参数

addopts = -vs

指定测试用例路径

testpaths = ./testcase

指定测试模块的默认规则

python_files = test_*.py

指定测试类的默认规则

python_classes = Test*

指定测试函数规则

python_functions = test_*

基础路径

base_url = http://www.baidu.com

指定标记

markers =
smoke: 冒烟用例
user_manage: 用户管理用例

直接像调用funtion级别的固件一样调用base_url
场景:一个项目中有多个模块,每个模块都有一个基础路径。

pytest fixture和allure_第5张图片

pytest结合allure-pytest生成allure测试报告

1.安装allure-pytest插件。
2.官网下载allure包,解压allure包到非中文路径,并且还要设置allue的环境变 量到path中。
pytest fixture和allure_第6张图片
验证:需要在dos和pycharm里面都使用如下命令验证:
allure ‐‐version
如果pycharm没有验证成功,那么重启pycharm再试。

生成allure报告

生成临时的json报告

pytest fixture和allure_第7张图片
–alluredir=./temps生成报告 --clean-alluredir 清除报告

生成allure报告

pytest fixture和allure_第8张图片
allure generate 构建allure报告
./temps 根据临时json报告构建
-o 输出,output
./reports/report_“+times+” 报告路径
–clean 清除allure报告

你可能感兴趣的:(pytest,测试用例)