在Pytest测试接口中设置全局请求头信息的最佳实践

880 篇文章 2 订阅
818 篇文章 0 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

在接口测试中,经常需要对请求头信息进行设置。尤其是当大部分请求需要共享相同的请求头信息时,使用全局设置可以大大简化代码,提高可维护性。然而,有时我们也需要为某些特定请求使用自定义的请求头信息。那么,如何在Pytest中实现这一功能呢?本文将为你详细介绍具体的实现方法。

安装所需库

首先,确保你已经安装了`pytest`和`requests`库。如果还没有安装,可以使用以下命令进行安装:

pip install pytest requests

设置全局请求头信息

我们可以利用`pytest`的`conftest.py`文件来设置全局的请求头信息。`conftest.py`是Pytest的配置文件,可以在其中定义fixture等。

1. 在你的项目根目录下创建一个`conftest.py`文件。

2. 在`conftest.py`文件中定义一个fixture,用于设置全局请求头信息。

以下是一个具体的示例:

# conftest.py
import pytest


@pytest.fixture(scope="session", autouse=True)
def global_headers():
    return {
        "Authorization": "Bearer <your_token>",
        "Content-Type": "application/json"
    }

这里,我们定义了一个名为`global_headers`的fixture,并设置了两个请求头信息:`Authorization`和`Content-Type`。

在测试用例中使用全局请求头信息

接下来,在测试用例中,我们可以使用这个全局请求头信息。对于特定的请求,可以根据需要添加或覆盖请求头信息。

# test_api.py
import requests


def test_get_request(global_headers):
    url = "https://api.example.com/data"
    response = requests.get(url, headers=global_headers)
    assert response.status_code == 200


def test_custom_headers_request(global_headers):
    url = "https://api.example.com/data"
    custom_headers = global_headers.copy()
    custom_headers["Authorization"] = "Bearer <custom_token>"
    response = requests.get(url, headers=custom_headers)
    assert response.status_code == 200

在这个示例中,`test_get_request`函数直接使用了全局的请求头信息,而`test_custom_headers_request`函数则在全局请求头的基础上进行了定制,覆盖了`Authorization`请求头。

实现细节说明

1. Fixture的作用域:`scope="session"`表示这个fixture在测试会话期间只会执行一次,`autouse=True`表示这个fixture会自动应用于所有测试用例。这样设置后,所有的测试用例都可以直接使用`global_headers`。

2. 复制全局请求头:在需要自定义请求头的测试用例中,使用`global_headers.copy()`来复制全局请求头,以避免直接修改全局变量。

3. 覆盖请求头:通过复制后的字典,可以轻松覆盖或添加特定请求的请求头信息。

通过上述方法,我们可以在Pytest中方便地设置和使用全局请求头信息,同时还能灵活地对特定请求进行自定义设置。这种方式不仅简化了代码,还提高了测试代码的可读性和可维护性。


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest接口测试,可以将请求封装成不同的方法,并封装在同一个测试。例如,可以定义一个登陆的测试类,将正确用户名和密码的请求封装成一个方法(即一条测试用例),将正确用户名和错误密码的请求封装成另一个方法(即另一条测试用例)。这样可以方便地进行接口测试,并且可以通过pytest的丰富插件和工具来生成美观的测试报告,如pytest-html和allure-pytest。此外,还可以结合自动化测试工具、跳过失败用例以及失败重跑、和Jenkins持续集成等功能来提高测试效率和质量。\[1\]\[3\] #### 引用[.reference_title] - *1* [python+pytest接口自动化 —— 测试函数、测试类/测试方法的封装](https://blog.csdn.net/myh919/article/details/129044197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Pytest学习 ------ 接口自动化测试pytest 运行方式及前置后置封装](https://blog.csdn.net/IT_LanTian/article/details/122888023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值