pytest+requests+allure接口自动化详细介绍
时间: 2025-06-28 16:00:55 浏览: 17
### pytest requests allure 接口自动化测试框架
#### 构建环境准备
构建基于 `pytest`、`requests` 和 `Allure` 的接口自动化测试框架前,需安装必要的 Python 库。通过 pip 安装这些库可以简化这一过程。
```bash
pip install pytest requests allure-pytest
```
#### 编写测试用例
编写测试脚本时,利用 `requests` 发送 HTTP 请求并与 API 进行交互。下面是一个简单的例子来展示如何调用 `/query/goods` 登录后的查询接口[^2]:
```python
import requests
import pytest
@pytest.fixture(scope="module")
def login_token():
"""模拟获取登录token"""
url = "http://example.com/login"
payload = {"username": "admin", "password": "123456"}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=payload, headers=headers)
assert response.status_code == 200
token_data = response.json()
yield f'Bearer {token_data["access_token"]}'
def test_query_goods(login_token):
"""测试商品查询接口"""
url = "http://example.com/query/goods"
headers = {
'Authorization': login_token,
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
# 断言状态码为成功返回的状态码之一
assert response.status_code in [200], "请求失败"
data = response.json()
# 验证响应数据结构正确性
expected_keys = ["goods_id", "name", "price"]
for key in expected_keys:
assert key in data, f"缺少字段 '{key}'"
```
此代码片段展示了怎样创建一个名为 `login_token` 的 fixture 来处理用户认证逻辑,并将其应用于后续的商品查询测试函数中。这有助于保持各测试案例之间的独立性和可维护性。
#### Allure 报告生成
完成上述设置之后,在命令行运行如下指令执行测试并生成报告文件:
```bash
pytest --alluredir=./result
```
该命令会将测试结果保存到指定目录下以便稍后查看详细的 HTML 格式的测试报告。要浏览这个报告,则需要先启动本地服务器再打开浏览器访问相应地址:
```bash
allure serve ./result/
```
这样就可以直观地看到整个项目的测试覆盖率以及各个具体用例的成功与否情况了[^1]。
#### 总结
综上所述,借助于 `pytest`, `requests` 及其插件工具集如 `Allure` ,能够快速搭建起一套高效稳定的API级联式集成测试体系;不仅提高了开发效率还增强了产品质量保障能力[^3]。
阅读全文
相关推荐



















