极简上手 Bruno Cookie 持久化:3 步让 API 会话跨重启存活
【免费下载链接】brunoOpensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno
配置一次,重启不丢。照着下面 3 步,你就能在 Bruno 里把 Cookie 持久化配好,API 测试中的登录态会自动跨会话恢复,不必每次重新走登录流程。🍪
动手之前:Bruno 怎么存 Cookie
Bruno 把 Cookie 直接写在本地文件系统里。每次请求产生的会话信息按域名归组,落到用户数据目录下的cookies.json。
落盘前,值会先经过加密:应用首次启动时生成一把本地随机密钥,Cookie 值加密存储,重启后再解密并装回内存,会话照常带上。存储与加解密逻辑集中在 cookies.js,全程不依赖任何云端服务。
配置流程:从打开面板到验证生效
从状态栏唤起 Cookie 面板
在窗口底部的状态栏找到 Cookie 图标,点一下,管理面板随即弹出。列表为空时,面板中央只有一个 Add Cookie 按钮,点它就能进入新增表单。
填写关键参数
表单必填项只有三个,其余按需处理:
- domain / key / value:Cookie 所属域名、名称与值,缺一不可
- path:生效路径,留空默认
/ - expires:过期时间,不填就是会话级 Cookie
- secure / httpOnly:分别控制仅 HTTPS 传输、禁止脚本读取,按目标站要求勾选
手头已有现成的 Cookie 字符串(比如从浏览器开发者工具复制的),切到 Raw 模式直接粘贴即可,Bruno 会自动解析成上面的字段。
保存并验证跨重启生效
点 Save 之后,面板里立刻出现刚才的域名分组。真正的验证在重启之后:关掉整个应用再启动,重新打开 Cookie 面板,域名和字段应原样还在。官方的端到端测试正是这样断言的,参考 cookie-persistence.spec.ts。✅
进阶场景:多环境与 CI 集成
在 staging 和 prod 之间切换
当你需要同时打两个环境的 API 时,Cookie 按域名自动附带,两边的会话互不串扰。把各环境的 base URL 和差异值放进 Bruno 环境变量,切换环境时请求地址随之变化,已存的 Cookie 依旧按域名命中,不需要手动搬动。
把会话带进 CI 流水线
本地跑通的用例交给 Bruno CLI 后,可以带着会话进流水线:在脚本里通过环境变量注入预置的 token 或 Cookie 数据,CI 上跑出来的结果就和本地一致。CLI 的完整用法见 bruno-cli 文档。
出问题了怎么办
⚠️ 三个高频场景,各给一步排查方向:
- 重启后面板是空的:先看用户数据目录下的
cookies.json是否还在、应用有没有写权限 - 域名还在但值是空的:多半是加密密钥无法解密,Bruno 会降级保留列表,直接编辑该条 Cookie 重新填值
- 请求仍被重定向到登录页:核对 Cookie 的 domain、path 与请求 URL 是否匹配,以及请求是 http 时 Secure 是否误勾
把这套配置沉淀下来
- 存储侧:Cookie 按域名加密落盘,重启自动加载,这是会话能跨重启存活的全部机制
- 协作侧:加密后的 Cookie 留在各自本地,进版本库的是环境变量和集合定义,队友拉到集合后补上自己的会话即可
下一步建议:把登录相关请求、环境配置和断言整理进同一个集合,跑稳之后给它挂一个 CI 任务;过程中遇到 bug,顺手提个 Issue 参与讨论。
【免费下载链接】brunoOpensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考