【发布时间】:2017-11-23 09:44:05
【问题描述】:
我看到的所有邮递员 cookie 管理答案都是指浏览器扩展(打开 chrome、删除 cookie 即拦截器等)或使用应用程序,使用 UI 手动管理 cookie。
作为编写 API 测试脚本的一部分,我想删除我的预请求代码中的某些 cookie。 (以编程方式删除它们)
Sandobx API 文档提到了pm.cookies,所以我尝试了
if (pm.cookies !== null) {
console.log("cookies!");
console.log(pm.cookies);
}
但是pm.cookies 数组是空的。然而在控制台中,GET 调用会传递一个 cookie。
还有postman.getResponseCookies,它是空的(我假设是因为我们在预请求部分,而不是在测试部分)
One answer 建议调用 postman-echo 服务删除 cookie。我还没有调查过,但感觉不对。
【问题讨论】:
-
(这是邮递员应用程序特有的,不是扩展程序,如果我不清楚,请见谅)
-
如果您的 API 具有可用于 cookie 的删除功能(如 postman-echo 具有),您可以构建一个请求来删除它们并链接您要执行的请求(通过 setNextRequest() )。
-
关于 postman echo 的答案是死路一条,cookie 是链接到域的,所以你的 cookie 会链接到你的,而不是 postman-echo,然后不会被删除。太糟糕了,它实际上从 cookie 管理器中删除了 cookie。
-
您可以在这里查看stackoverflow.com/questions/1085756/…,但如果您的 cookie 设置为 http_only,您将无法访问(和删除)它。就我而言,它是 http_only (sob)。否则,您可以更改其日期(在 javascript 中访问它)并将其设置为昨天甚至 -1 我认为可以工作...
标签: cookies session-cookies postman