news 2026/8/31 9:36:49

Bruno 中文 API 测试实战:本地集合、搜索技巧与避坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Bruno 中文 API 测试实战:本地集合、搜索技巧与避坑

Bruno 中文 API 测试实战:本地集合、搜索技巧与避坑

【免费下载链接】brunoOpensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno

当你第一次打开 Bruno 准备跑一个全中文参数的接口时,先要处理的往往不是发请求,而是两件事:编码会不会乱、几百个请求里怎么快速找到目标。Bruno 是一个完全离线、本地存储的 API 测试客户端,请求以纯文本文件保存在磁盘上,整个集合就是一个普通目录,这让中文内容的协作与检索比云端工具可控得多。

核心机制:集合是目录,变量分层

请求是 .bru 纯文本文件,不是数据库记录

Bruno 用一套叫 Bru 的标记语言保存请求(新版本也可用 .yml),每个请求对应一个文件。你可以用任何文本编辑器打开它,方法、URL、请求体、脚本、断言全部是可见文本。这意味着中文请求体和中文注释天然是普通文本,能被 Git 直接 diff、被命令行工具直接 grep,不存在"云数据库里的黑盒记录"。

一个集合对应一个目录

目录里的关键文件分工明确:bruno.json 声明集合名与版本,collection.bru 放集合级变量、头和预请求脚本,environments/ 子目录存放各环境(如 dev、prod)的变量文件,请求则按业务模块拆成嵌套子文件夹。新增、移动、重命名请求,本质上就是增删文件。

环境变量分三层

变量按 Global(应用级)→ Environment(集合当前选中环境)→ Collection 变量 → 请求内 vars 的优先级解析,统一用 {{变量名}} 写法引用。团队共享一份集合,但每个人可以在本地选择不同环境指向各自的接口地址,互不干扰。

最小可用配置:从装好到跑通第一个请求

安装并打开 Bruno

从官网下载对应系统的安装包,或用包管理器(Homebrew、Scoop、Apt 等)安装,启动后进入主界面。

新建第一个集合

在左侧边栏打开一个空目录作为集合位置,或让 Bruno 在指定位置新建一个集合目录,此时会自动生成 bruno.json 等骨架文件。

添加一个请求

在集合上点右键选择新建 Request,侧边栏出现一个 .bru 文件对应的请求项。

填入中文请求体

在请求面板里选择 body 模式为 JSON,写入含中文的键值,例如 {"用户名": "张三"};URL 里的 query 参数建议先保持英文,原因见后文避坑部分。

点击 Send 并查看响应

右侧时间线显示请求头与耗时,响应面板直接展示中文内容;在终端执行 bru run 则可以用同样的集合跑全量请求。

集合在文件系统里就是普通文件夹,请求、环境、脚本各占其位,可直接纳入版本控制

📦 按场景展开的进阶技巧

当搜索命中率低:给请求起中英混排的名字

当你的集合请求超过百条,靠肉眼翻侧边栏不现实。侧边栏顶部的 Search requests 输入框做的是对请求名的大小写不敏感子串匹配,它不会搜请求体和响应。操作:把稳定的英文关键词(login、get-user)放进请求名,中文业务含义放到 name 旁的描述字段。效果:输入 login,树形列表立刻只展开命中的分支。

当大集合难定位:按业务模块建文件夹树

当单层目录超过二三十个请求时,把请求按"模块/资源"拆成子文件夹,文件夹本身也可以挂集合级脚本。效果:侧边栏折叠成二级结构,配合搜索框,两步内定位任意请求。

当需要审查变更:用 Git 对纯文本做 diff

当团队多人维护同一集合时,把集合目录 clone 到本地(仓库地址 https://gitcode.com/GitHub_Trending/br/bruno ),谁改了哪条请求的 URL 或断言,git diff 直接显示为文本行差异,不需要额外工具导出。效果:代码评审流程原样套用到 API 资产上。

请求是纯文本文件,Git 提交记录即 API 资产的完整变更历史

当要在 CI 里跑集合:Bruno CLI

当回归测试要进流水线时,用 npm 安装 @usebruno/cli,在集合目录下执行 bru run,可指定单个请求、某个文件夹或 --env 指定环境;官方还提供 Docker 镜像,宿主机无需 Node 环境。效果:同一份集合在桌面端和流水线里跑的是同一套文本。

bru run 让集合回归测试进入 CI/CD 流水线

🐛 避坑与排错

中文响应显示为问号或方框

现象:响应面板里中文全是 ? 或豆腐块。原因:通常是服务端响应头没声明 charset=utf-8,客户端按默认编码解码;其次是系统缺少 CJK 字体。修复动作:先查响应头里的 Content-Type,让后端补上 charset;客户端侧在 Preferences → Display → Font 里把 codeFontSize 调大并确认字体栈包含中文字形,系统层面安装完整中文语言包。

搜索框输入内容却无结果

现象:一个词明明出现在请求体里,搜索框输进去树却是空的。原因:集合搜索只匹配请求的 name 字段,不匹配 body、headers 或脚本。修复动作:把要检索的词挪进请求名,用短关键词而非整句;坚持用中文命名的话,搜索时按你保留的英文/拼音前缀输入。

中文 URL 参数发过去变 400

现象:query 里的中文参数发出后服务端返回 400,或解码出来是乱码。原因:URL 参数会做百分号编码,服务端若按非 UTF-8 解码就会错位。修复动作:把中文数据移进 JSON 请求体并在 Content-Type 上声明 charset=utf-8;确实要放 URL 的场景,先用标准 UTF-8 预编码再提交。

🚀 延伸与收尾

下一步:把团队现有的 Postman 或 Insomnia 导出文件用 Bruno 的导入功能迁进本地集合,再把这个目录提交到 Git,完整验证一遍"纯文本 + 版本控制"的工作流。安装与各平台包管理器命令见 readme.md,中文介绍可看 docs/readme/readme_cn.md。Bruno 的"中文优化"本质上不是把界面换成中文,而是让你的中文内容始终留在磁盘上,可搜、可 diff、可回滚。

【免费下载链接】brunoOpensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 9:33:48

AI助手接口模块化设计:双龙虾架构实现多Provider接入

如果你已经写过 AI 助手相关的小项目,大概率会有一种体感:功能第一次跑通的那几分钟特别爽,后面维护起来却越来越别扭。换一个模型要翻代码,加一个系统提示词要改函数签名,想记录一下每次请求的耗时和 token 消耗&…

作者头像 李华
网站建设 2026/8/31 9:31:48

全注意力机制为什么贵?从计算复杂度与KV Cache拆解长文本推理瓶颈

全注意力机制是一切大模型的基础,也是长文本场景下成本最高的部分。最近 Kimi 团队围绕线性注意力提出了 Kimi Linear 方案,核心就是解决全注意力“越用越贵”的问题。这篇作为“核心原理”系列的第一篇,先把全注意力为什么贵这件事讲透&…

作者头像 李华
网站建设 2026/8/31 9:29:17

Qlib 快速上手:一条命令跑通量化回测

Qlib 快速上手:一条命令跑通量化回测 【免费下载链接】qlib Qlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling para…

作者头像 李华
网站建设 2026/8/31 9:20:38

LaTeX云端写作环境:开箱即用的学术排版解决方案

如果你正在写学术论文、技术报告或者任何需要专业排版的文档,一定经历过这样的痛苦:Word 里调格式调到崩溃,参考文献对不上号,公式编号混乱不堪,最后交稿前发现整个文档的样式全乱了。这时候,老鸟们总会轻飘…

作者头像 李华