python+requests+pytest 接口自动化框架(二)

目录

一、Fixture固件

scope:

1.基础应用:scope是function

2.scope为class

3.scope作用域是module或package/session

params用于数据驱动:

ids:

name:

pytest执行顺序总结:

二、pytest的基础路径设置

三、pytest断言

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

1.安装allure-pytest插件。

2.官网下载allure包,解压allure包到非中文路径,并且还要设置allue的环境变量到path中。 

3.生成allue报告

内容:Pytest测试框架之Fixture固件,contest.py,断言以及Allure报告生成!

资源:python+requests+pytest接口自动化框架(1-4)-Python文档类资源-CSDN下载

一、Fixture固件

部分用例之前或之后执行,部分类之前或之后执行。模块或会话之前或之后的操作。

Fixture完整的方法如下:

@pytest.fixture(scope="作用域",params="数据驱动",autouse="是否自动执 行",ids=“参数别名”,name="Fixture别名")

scope:

可选值:function(函数,默认),class(类),module(模块),package/session(会 话)

1.基础应用:scope是function

python+requests+pytest 接口自动化框架(二)_第1张图片

在函数中的参数中通过execute_sql名称调用。

return:返回函数的结果,return之后的代码不会执行

yield:带有yield函数叫生成器。yield之后的代码会执行。

2.scope为class

@pytest.fixture(scope="class")
def execute_sql():
    print("执行SQL语句")
    print("关闭数据库连接")

@pytest.mark.usefixtures("execute_sql")
class TestApi:

    def test_01_mashang(self):
        print("1")

    def test_02_jiaoyu(self):
        print("2")

class TestMashang:
    def test_baili(self):
        print("天草柑橘")

python+requests+pytest 接口自动化框架(二)_第2张图片

通过装饰器@pytest.mark.usefixtures("execute_sql")调用

3.scope作用域是module或package/session

那么需要结合conftest.py使 用。

(1)conftest.py专门用于存放固件fixtue的配置文件,名称是固定的,不能更改。

(2)在conftest.py文件中的fixtue在调用时都不需要导包。

(3)conftest.py文件可以有多个,并且多个conftest.py文件的多个fixture之间没有冲突。

(4)模块级别和session模块一般都是自动执行。

params用于数据驱动:

python+requests+pytest 接口自动化框架(二)_第3张图片

 特别注意: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的基础路径设置

python+requests+pytest 接口自动化框架(二)_第4张图片

三、pytest断言

使用的是Python原生的assert

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

1.安装allure-pytest插件。

2.官网下载allure包,解压allure包到非中文路径,并且还要设置allue的环境变量到path中。 

验证:需要在dos和 pycharm 里面都使用如下命令验证:

3.生成allue报告

(1)生成临时的json报告
--alluredir=./temps 生成报告 
--clean-alluredir 清除报告

python+requests+pytest 接口自动化框架(二)_第5张图片

(2)根据临时的json报告,构建报告到reports目录中

-o 输出

./reports 报告路径

--clean清除报告

优化分目录保存 

python+requests+pytest 接口自动化框架(二)_第6张图片

你可能感兴趣的:(接口自动化框架,python,自动化,开发语言)