所有邮递员cookie管理的答案我已经看过,可以参考浏览器扩展程序(打开chrome,删除cookies即拦截器等)或使用应用程序,使用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
,这是空的(我假设因为我们在预请求部分,而不是在测试部分)
One answer建议调用postman-echo服务删除cookie。我还没有调查过这个问题,但感觉不对。
答案 0 :(得分:5)
自2019/08以来,新版本现已支持该版本,请在此处查看更多示例:Delete cookies programmatically · Issue #3312 · postmanlabs/postman-app-support
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>
});
答案 1 :(得分:2)
根据文档pm API reference,pm.cookie
API仅适用于“测试”标签,而不适用于预请求脚本。
以下项目仅适用于TEST SCRIPTS。
pm.cookies
...
您似乎必须坚持使用此方法:Interceptor Blog post
答案 2 :(得分:-1)