Bruno快速入门指南:5分钟上手API测试
还在为API测试工具臃肿、需要云端同步而烦恼?Bruno作为Postman的轻量级替代方案,以其纯文本存储、Git友好和完全离线的特性,正在重新定义API测试体验。本文将带你5分钟快速上手Bruno,掌握核心功能。
🚀 什么是Bruno?
Bruno是一款开源的API集成开发环境(IDE),专为探索和测试API而设计。与传统的API客户端不同,Bruno采用创新的设计理念:
- 纯文本存储:使用
.bru标记语言存储API集合 - Git友好:完美支持版本控制协作
- 完全离线:数据永远留在本地设备
- 跨平台:支持macOS、Windows、Linux
📦 快速安装
方式一:直接下载(推荐新手)
访问官方网站下载对应平台的安装包。
方式二:包管理器安装
# macOS (Homebrew)
brew install bruno
# Windows (Chocolatey)
choco install bruno
# Windows (Scoop)
scoop bucket add extras
scoop install bruno
# Linux (Snap)
snap install bruno
🎯 核心概念速览
1. 集合(Collection)
API请求的组织单位,对应文件系统中的文件夹。
2. 环境(Environment)
变量配置,支持不同环境(开发、测试、生产)的切换。
3. Bru语言
Bruno专用的纯文本标记语言,用于定义API请求。
🔧 5分钟实战演练
步骤1:创建你的第一个API请求
创建example.bru文件:
meta {
name: 获取用户信息
type: http
seq: 1
}
get {
url: https://jsonplaceholder.typicode.com/users/1
body: none
auth: none
}
tests {
// 验证状态码
assert: $response.status == 200;
// 验证响应体包含用户名
assert: $response.body.name != null;
// 验证响应时间
assert: $response.time < 1000;
}
步骤2:配置环境变量
创建environments/Dev.bru:
vars {
api_base: https://jsonplaceholder.typicode.com
user_id: 1
timeout: 5000
}
vars:secret [
api_key,
access_token
]
步骤3:使用变量优化请求
meta {
name: 动态用户查询
type: http
seq: 2
}
get {
url: {{api_base}}/users/{{user_id}}
headers: {
Authorization: Bearer {{access_token}}
}
timeout: {{timeout}}
}
步骤4:添加预请求脚本
script:pre-request {
// 生成时间戳
const timestamp = Date.now();
bru.setVar('request_timestamp', timestamp);
// 添加签名头
bru.setVar('signature', bru.hash('sha256', timestamp + '{{api_key}}'));
}
headers: {
X-Timestamp: {{request_timestamp}}
X-Signature: {{signature}}
}
步骤5:运行测试套件
tests {
// 基础断言
assert: $response.status == 200;
assert: $response.headers['content-type'].includes('application/json');
// JSON路径断言
assert: $response.body.$.id == {{user_id}};
assert: $response.body.$.email.includes('@');
// 性能断言
assert: $response.time < {{timeout}};
// 自定义验证
const user = $response.body;
assert: user.name.length > 0, "用户名不能为空";
assert: user.address.city != null, "用户城市信息缺失";
}
📊 Bruno vs 传统工具对比
| 特性 | Bruno | Postman | Insomnia |
|---|---|---|---|
| 数据存储 | 本地文件 | 云端同步 | 云端/本地 |
| 版本控制 | Git原生 | 有限支持 | 有限支持 |
| 离线使用 | 完全支持 | 需要登录 | 需要登录 |
| 启动速度 | ⚡️ 快速 | 🐢 较慢 | 🐢 较慢 |
| 隐私保护 | 🔒 极佳 | 🔓 一般 | 🔓 一般 |
🎨 高级功能一览
1. 脚本支持
Bruno支持完整的JavaScript脚本,包括:
// 请求前脚本
script:pre-request {
// 动态计算值
const nonce = Math.random().toString(36).substring(2);
bru.setVar('request_nonce', nonce);
}
// 请求后脚本
script:post-request {
// 提取响应数据
const authToken = $response.headers['authorization'];
if (authToken) {
bru.setVar('access_token', authToken);
}
}
2. 环境切换
支持多环境配置,一键切换:
3. 测试自动化
完整的测试断言框架:
tests {
// 状态验证
assert: $response.status == 200;
// 响应体验证
assert: $response.body.success == true;
assert: $response.body.data.length > 0;
// 头部验证
assert: $response.headers['content-type'] == 'application/json';
// 性能验证
assert: $response.time < 1000;
}
🔍 常见使用场景
场景1:REST API测试
meta {
name: 用户CRUD操作
type: http
seq: 1
}
post {
url: {{api_base}}/users
body: json {
name: "张三",
email: "zhangsan@example.com"
}
headers: {
Content-Type: application/json
}
}
tests {
assert: $response.status == 201;
assert: $response.body.id != null;
}
场景2:GraphQL查询
meta {
name: GraphQL用户查询
type: http
seq: 2
}
post {
url: {{graphql_endpoint}}
body: graphql {
query: """
query GetUser($id: ID!) {
user(id: $id) {
id
name
email
}
}
"""
variables: {
id: "1"
}
}
}
场景3:文件上传
meta {
name: 多部分表单上传
type: http
seq: 3
}
post {
url: {{api_base}}/upload
body: multipart-form {
file: @/path/to/file.jpg
description: "项目文档"
}
}
💡 最佳实践建议
-
项目结构组织
project/ ├── collections/ │ ├── auth.bru │ ├── users.bru │ └── products.bru ├── environments/ │ ├── Development.bru │ ├── Staging.bru │ └── Production.bru └── scripts/ ├── auth.js └── utils.js -
Git协作流程
-
安全注意事项
- 敏感变量使用
vars:secret块 - 定期检查环境文件权限
- 使用.gitignore排除敏感文件
- 敏感变量使用
🚨 故障排除指南
常见问题1:环境变量未生效
症状:变量{{api_base}}显示为原始文本 解决:检查环境文件语法,确保使用正确的.bru格式
常见问题2:脚本执行错误
症状:JavaScript脚本报错 解决:检查脚本语法,使用console.log()调试
常见问题3:网络连接问题
症状:请求超时或失败 解决:检查代理设置和网络配置
📈 性能优化技巧
- 批量执行:使用集合运行器批量测试多个请求
- 环境复用:合理使用环境变量避免重复配置
- 脚本优化:避免在脚本中进行复杂计算
- 缓存利用:合理设置缓存策略减少重复请求
🎉 总结
通过本文的5分钟快速入门,你已经掌握了Bruno的核心功能:
✅ 安装配置 - 多种安装方式满足不同需求
✅ 基础请求 - 创建和发送HTTP请求
✅ 环境管理 - 多环境配置和切换
✅ 测试断言 - 完整的测试验证框架
✅ 脚本扩展 - JavaScript脚本增强功能
Bruno以其简洁的设计、强大的功能和出色的隐私保护,为API测试带来了全新的体验。无论是个人开发还是团队协作,Bruno都能提供高效、可靠的API测试解决方案。
下一步行动建议:
- 下载安装Bruno并创建第一个请求
- 尝试配置多环境变量
- 编写测试断言验证API响应
- 探索脚本功能实现自动化流程
开始你的Bruno之旅,体验更优雅的API测试方式!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



