我见过的所有邮递员 cookie 管理答案都指的是浏览器扩展(打开 chrome、删除 cookie 即拦截器等)或使用应用程序,使用 UI 手动管理 cookie。
我想删除预请求代码中的某些 cookie,作为编写 API 测试脚本的一部分。 (以编程方式删除它们)
Sandobx API 文档提到
pm.cookies
所以我尝试了
if (pm.cookies !== null) {
console.log("cookies!");
console.log(pm.cookies);
}
但是
pm.cookies
数组是空的。然而在控制台中,GET 调用会传递一个 cookie。
还有
postman.getResponseCookies
,它是空的(我假设是因为我们处于预请求部分,而不是测试部分)
一个答案建议调用postman-echo服务来删除cookie。我还没有研究过这个,但感觉不太对。
自 2019/08 起,新版本现已支持该功能,请在此处查看更多示例:以编程方式删除 cookie · 问题 #3312 · postmanlabs/postman-app-support
要授予编程访问权限的 Cookie 域必须列入白名单。
const jar = pm.cookies.jar();
jar.clear(pm.request.url, function (error) {
// error - <Error>
});
const jar = pm.cookies.jar();
jar.getAll('http://example.com', function (error, cookies) {
// error - <Error>
// cookies - <PostmanCookieList>
// PostmanCookieList: https://www.postmanlabs.com/postman-collection/CookieList.html
});
const jar = pm.cookies.jar();
jar.get('http://example.com', 'token', function (error, value) {
// error - <Error>
// value - <String>
});