Hoppscotch测试需会话状态的接口时,应通过手动添加Cookie头、后置脚本提取Set-Cookie并设环境变量、启用自动Cookie管理、从浏览器导入Cookie或加密存储敏感Cookie值五种方式确保Cookie正确传递。

如果您在使用Hoppscotch测试需维持会话状态的接口时,发现请求因缺少有效 Cookie 而被拒绝,则很可能是服务器依赖 Set-Cookie 响应头建立会话,而后续请求未携带对应 Cookie 头。以下是实现 Cookie 正确传递与管理的具体操作方法:
一、手动在请求头中添加 Cookie 字段
该方法适用于已知完整 Cookie 字符串(如从浏览器开发者工具复制而来),可快速复现带身份凭证的请求。Cookie 字符串需严格遵循 name=value; name2=value2 格式,多个键值对间以分号+空格分隔。
1、在 Hoppscotch 请求编辑区,点击「Headers」标签页。
2、点击「Add header」按钮,输入 Key 为 Cookie。
3、在 Value 栏粘贴完整的 Cookie 字符串,例如:session-id=abc123; auth_token=xyz789; _ga=GA1.2.1234567890。
4、发送请求,验证服务端是否成功识别会话状态。
二、通过后置脚本自动提取并设置环境变量
该方法适用于动态获取 Set-Cookie 响应头并复用于后续请求,避免手动复制粘贴出错,尤其适合登录流程后的会话延续。
1、在请求的「Tests」标签页中,粘贴以下 JavaScript 脚本:
2、const setCookies = pw.response.headers['set-cookie'];
3、if (setCookies) {
4、 const cookieString = Array.isArray(setCookies)
5、 ? setCookies.map(c => c.split(';')[0].trim()).join('; ')
6、 : setCookies.split(';')[0].trim();
7、 pw.environment.set('SESSION_COOKIE', cookieString);
8、}
9、在后续请求的 Headers 中,Key 设为 Cookie,Value 使用变量引用:{{SESSION_COOKIE}}。
三、启用 Hoppscotch 内置 Cookie 自动管理开关
该功能模拟浏览器行为,在同一环境上下文中自动存储并回填 Cookie,无需手动干预,适用于连续多步会话交互测试。
1、点击右上角用户图标,选择「Settings」。
2、在「General」选项卡中,找到 Enable automatic cookie management 选项并开启。
3、确保当前请求使用的环境(Environment)为同一命名空间(如「dev」),不同环境间 Cookie 不共享。
4、首次请求返回含 Set-Cookie 头后,后续对该域名的请求将自动附加 Cookie 头。
四、从浏览器导入 Cookie 进行快速复用
当已有正在使用的浏览器会话时,可直接导出当前页面的 Cookie 并注入 Hoppscotch,确保与真实用户行为一致。
1、在 Chrome 浏览器中打开目标网站,按 F12 打开开发者工具。
2、切换至「Application」→「Cookies」,选中对应域名,右键点击任意 Cookie 行,选择「Copy」→「Copy all as cURL (bash)」。
3、在 Hoppscotch 中点击「Import」→「cURL」,粘贴该 cURL 命令。
4、导入后,Hoppscotch 将自动解析 -b 或 --cookie 参数,并在 Headers 中生成 Cookie 字段。
五、使用环境变量加密存储敏感 Cookie 值
对于含令牌、会话密钥等高敏感度 Cookie,应避免明文暴露在请求配置中,利用 Hoppscotch 的加密环境变量机制保障数据安全。
1、进入「Environment」→「Manage environments」,选择或新建一个环境。
2、点击「Add variable」,填写变量名(如 AUTH_COOKIE)。
3、勾选 Encrypt this value(显示?图标)。
4、输入原始 Cookie 字符串,保存后该值将仅在内存中解密,不会出现在导出文件或日志中。
5、在请求 Headers 中引用:Cookie: {{AUTH_COOKIE}}。


















