API 接口测试工具对比:Postman/Insomnia/curl/REST Client
API 测试工具种类繁多,选对工具能大幅提升开发效率。本文从实战角度对比 Postman、Insomnia、curl、HTTPie、REST Client 和 Bruno,帮你选出最适合的那一个。
为什么需要接口测试工具
写 API 的人都知道,光看文档没用,得实际打一下请求才知道对不对。
Postman 曾经是标配,但现在选择多得多。下面这些是我实际用过、踩过坑的,不是官网介绍抄一遍。
Postman
**老牌,功能全,但越来越重。**
优点:
缺点:
**适合场景**:团队协作为主、需要复杂自动化测试的项目。
Insomnia
**Postman 的轻量替代品,界面干净。**
优点:
缺点:
# 安装(macOS)
brew install --cask insomnia
# Ubuntu
sudo snap install insomnia
**适合场景**:个人开发者、需要轻量工具、主要测 REST/GraphQL 接口。
curl(命令行)
**永远在线,永远不收费。**
优点:
缺点:
实际用法:
# 基本 GET
curl -s https://api.example.com/users | jq
# POST + JSON + Header
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"张三","email":"zs@example.com"}' | jq
# 查看响应头(调试用)
curl -I https://api.example.com/users
# 测接口耗时
curl -w "\nTime: %{time_total}s\n" https://api.example.com/users
**Pro Tip**:配合 jq 用,curl ... | jq '.data[] | {id, name}' 可以直接提取想要的字。
HTTPie
**curl 的人性化替代品。**
语法比 curl 直观得多,返回值自动格式化,颜色高亮。
# 安装
pip install httpie # 或 brew install httpie
# 基本用法(比 curl 直观太多)
http GET https://api.example.com/users
http POST https://api.example.com/users name="张三" email="zs@example.com"
http PUT https://api.example.com/users/1 name="李四"
# 加 Header
http GET https://api.example.com/users Authorization:"Bearer $TOKEN"
# 上传文件
http POST https://api.example.com/upload file@/path/to/file.jpg
缺点:需要额外安装,服务器上一般没有(所以服务器调试还是得用 curl)。
VS Code REST Client
**在编辑器里直接发请求,不用切换窗口。**
我在前面的 VS Code 插件篇里也推荐过。最大优势是:请求文件(.http)可以提交到 Git,团队共享接口用例。
获取用户列表
GET https://api.example.com/users
Authorization: Bearer {{token}}
创建用户
POST https://api.example.com/users
Content-Type: application/json
{
"name": "张三",
"email": "zs@example.com"
}
配合变量使用:
@baseUrl = https://api.example.com
@token = eyJhbGciO...
获取当前用户
GET {{baseUrl}}/me
Authorization: Bearer {{token}}
**适合场景**:前端开发者、希望接口用例能进 Git 的团队。
Bruno
**新工具,定位是 Postman/Insomnia 的开源替代。**
最大特点:**离线优先,数据存在本地文件**,不怕厂商锁定的问题。
优点:
# 安装(macOS)
brew install --cask bruno
# 或下载 AppImage(Linux)
缺点:
**适合场景**:讨厌云服务锁定、希望数据完全本地化的人。
对比总结
| 工具 | 重量级 | 收费情况 | 推荐场景 |
|------|--------|---------|---------|
| Postman | 重 | 免费版功能受限 | 团队协作、复杂测试 |
| Insomnia | 中 | 个人免费 | 个人开发、GraphQL |
| curl | 无 | 免费 | 服务器调试、CI/CD |
| HTTPie | 轻 | 免费 | 本地快速测试 |
| REST Client | 轻 | 免费 | 前端开发、用例进 Git |
| Bruno | 中 | 开源免费 | 本地化、去云服务 |
我的组合
日常开发用 **REST Client**(用例进 Git,团队共享)+ **curl**(服务器上调试)。
需要复杂自动化测试时用 **Postman**,但大部分项目其实 REST Client + curl 就够了。
> **Pro Tip**: 不管用什么工具,记得把测试环境的 Token 存环境变量,别写死在每个请求里——换个人或者换环境就得全部改一遍。