requests 是 Python 中一个流行的第三方库,专门用于发送 HTTP 请求(如 GET、POST、PUT、DELETE 等),并处理服务器返回的响应。它封装了 Python 内置的 urllib 库,提供了更简洁、易用的 API,让开发者可以轻松实现与 Web 服务器的通信。
通俗点来说,requests 是一个 “模拟浏览器” 的工具 —— 你可以用它向指定的 URL 发送请求(带参数、表单、 headers 等),然后获取服务器返回的状态码、响应体(如 JSON、HTML)等数据。
在自动化测试中,requests 主要用于 接口自动化测试,是接口测试的核心工具之一,两者的关系体现在以下几个方面:
现代软件系统(尤其是前后端分离架构)中,接口(API)是模块间、服务间通信的核心。自动化测试需要验证这些接口是否按照预期工作(如返回正确的状态码、数据格式、业务逻辑等)。 requests 可以模拟客户端向接口发送请求(如调用登录接口时发送账号密码,调用查询接口时传递参数),并获取响应结果,从而实现对接口的自动化验证。
相比 Python 内置的 urllib,requests 的语法更简洁,能大幅减少测试代码量。例如:
import requests response = requests.get("https://api.example.com/user", params={"id": 123})
response = requests.post("https://api.example.com/login", json={"username": "test", "password": "123"})
这些代码可以直接集成到测试用例中,配合断言(如 assert response.status_code == 200)验证结果。
在实际测试中,接口往往存在依赖关系(如 “登录后才能调用下单接口”)。requests 可以保存和传递 cookies 或 token,轻松处理这类场景:
1. 登录获取 token login_response = requests.post("https://api.example.com/login", json={"username": "test", "password": "123"}) token = login_response.json()["token"] 2. 携带 token 调用下单接口 headers = {"Authorization": f"Bearer {token}"} order_response = requests.post("https://api.example.com/order", json={"goods_id": 456}, headers=headers)
requests 可以无缝集成到 Python 测试框架(如 pytest、unittest)中,实现测试用例的组织、批量执行、报告生成等自动化流程。例如,用 pytest 编写接口测试用例:
import pytest import requests def test_login_success(): response = requests.post("https://api.example.com/login", json={"username": "test", "password": "123"}) assert response.status_code == 200 assert "token" in response.json()
本文作者:haotian
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!