如何在 Pytest 中调用其他用例返回的接口参数?

回答重点

在 Pytest 中,我们可以通过使用共享夹具(fixtures)来调用和复用其他用例返回的接口参数。在 Pytest 中,fixtures 提供了一种灵活且有组织的方式来共享测试数据或对象。

具体步骤如下:

1)首先,在 conftest.py 文件中定义一个 fixture 函数,该函数会返回你希望共享的参数。这个 fixture 可以通过标识符传递给任何测试函数。

2)在需要复用该参数的测试函数中,通过传递相应的参数名来引用该 fixture。

下面是一个示例代码,可以帮助你理解:

复制代码
# conftest.py
import pytest

@pytest.fixture
def api_response():
    # 假设这是你从接口获取的参数
    response = {
        "token": "abc123",
        "user_id": 1
    }
    return response

# test_example.py
def test_first_example(api_response):
    assert api_response["token"] == "abc123"
    
def test_second_example(api_response):
    assert api_response["user_id"] == 1
    # 你可以继续使用 `api_response` 进行其他测试或接口调用

在上述示例中, api_response 是一个 fixture,它返回一个包含 tokenuser_id 的字典。任何需要这些数据的测试函数,只需声明它们的参数即可自动获取此数据,从而实现复用。

扩展知识

1) Fixture 的 作用域

Fixture 可以设置不同的作用域级别(如 function, class, module, session),这决定了 fixture 的生命周期。作用域越大,fixture 的创建和销毁次数越少。

复制代码
@pytest.fixture(scope="module")
def api_response():
    # 模块级别的 fixture,在整个模块中共享
    ...

2) Fixture 的依赖

Fixture 之间也可以相互调用,从而构建更加复杂的数据依赖。

复制代码
@pytest.fixture
def auth_token():
    return "secret-token"

@pytest.fixture
def api_response(auth_token):
    return {
        "token": auth_token,
        "user_id": 1
    }

3) 动态生成数据

有时我们需要为每个测试生成不同的数据,可以用 yield 关键字或者动态计算的方法来实现。

复制代码
@pytest.fixture
def dynamic_response():
    token = generate_token()
    return {
        "token": token,
        "user_id": random_user_id()
    }
相关推荐
百度测试开发1 小时前
【银行测试】对公渠道转账+网银转账+对私转账功能测试点(汇总)
软件测试·功能测试·软件测试工程师·接口测试·软件测试项目·软件测试面试·银行测试
晴殇i4 小时前
前端代码规范体系建设与团队落地实践
前端·javascript·面试
云飞云共享云桌面4 小时前
三维设计办公资源如何共享集中和安全管控?
运维·服务器·数据库·安全·自动化·制造
小毅&Nora6 小时前
【后端】【面试】 ③ PostgreSQL高级面试题(含答案与实战案例)
postgresql·面试·职场和发展
努力学算法的蒟蒻6 小时前
day11(11.11)——leetcode面试经典150
算法·leetcode·面试
孟祥_成都6 小时前
最好的组件库教程又回来了,升级为 headless 组件库!
前端·面试·架构
JZC_xiaozhong7 小时前
跨系统流程如何打通?选 BPM 平台认准这三点
大数据·运维·自动化·数据集成与应用集成·业务流程管理·流程设计可视化·流程监控
中科岩创7 小时前
某地公园桥梁自动化监测服务项目
大数据·人工智能·物联网·自动化
深蓝电商API8 小时前
“油猴”脚本变身爬虫:Tampermonkey辅助自动化与数据采集
爬虫·自动化·tampermonkey
3DVisionary8 小时前
基于数字图像相关(DIC)技术的机械臂自动化焊接残余应力全场变形高精度测量
运维·自动化·数字图像相关·自动化焊接·焊接变形·全场测量·机械臂/机器人