1. 什么是 Apifox?
Apifox 是一款强大的 API 开发工具,集成了 API 文档管理、Mock 数据、自动化测试等功能。它支持团队协作,能够显著提高 API 开发和测试的效率。
2. 为什么需要自动提取和发送 Token?
在测试需要身份验证的 API 时,每次手动添加 Token 到请求头中不仅繁琐,还容易出错。通过自动提取和发送 Token,我们可以:
• 提高测试效率。
• 减少人为错误。
• 确保测试流程的一致性。
3. 实现步骤
3.1 获取 Token
首先,我们需要通过登录接口获取 Token。假设登录接口的响应如下:
{
"code": 200,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
3.2 在 Apifox 中提取 Token
- 创建登录请求:在 Apifox 中创建一个登录请求,并发送请求。
- 提取 Token:在登录请求的 “Tests” 标签中,编写脚本提取 Token 并保存为环境变量。以下是一个示例脚本:
// 解析响应数据
const responseData = pm.response.json();
// 提取 Token
const token = responseData.data.token;
// 将 Token 保存为环境变量
pm.environment.set("auth_token", token);
- 验证环境变量:在 Apifox 的 “环境管理” 中,检查
auth_token
是否已成功保存。
3.3 自动发送 Token
- 配置请求头:在需要身份验证的 API 请求中,添加一个名为
Authorization
的请求头。 - 使用环境变量:将
Authorization
的值设置为Bearer {{auth_token}}
。Apifox 会自动将auth_token
替换为保存的 Token。
Authorization: Bearer {{auth_token}}
- 测试请求:发送请求,确保 Token 已正确添加到请求头中。
4. 完整流程示例
4.1 登录并提取 Token
- 创建一个登录请求,URL 为
/api/login
,请求体为:
{
"username": "testuser",
"password": "testpassword"
}
- 在 “Tests” 标签中,添加以下脚本:
// 提取 Token 并保存为环境变量
const token = pm.response.json().data.token;
pm.environment.set("auth_token", token);
- 发送请求,验证
auth_token
是否已保存。
4.2 使用 Token 发送请求
- 创建一个需要身份验证的请求,例如获取用户信息的接口
/api/user
。 - 在请求头中添加:
Authorization: Bearer {{auth_token}}
- 发送请求,验证是否成功获取用户信息。