K5 *_*ser 18 cookies session-cookies postman
我见过的所有邮递员cookie管理答案都指的是浏览器扩展(打开chrome,删除cookies即拦截器等)或应用程序,使用UI手动管理cookie.
我想删除我的预请求代码中的某些cookie,作为编写API测试脚本的一部分.(以编程方式删除它们)
Sandobx API文档提到 pm.cookies
我尝试过
if (pm.cookies !== null) {
console.log("cookies!");
console.log(pm.cookies);
}
Run Code Online (Sandbox Code Playgroud)
但pm.cookies
阵列是空的.然而在控制台中,GET调用然后传递cookie.
还有postman.getResponseCookies
,这是null(我假设因为我们在预请求部分,而不是在测试部分)
一个答案建议调用postman-echo服务来删除cookie.我还没有对此进行调查,但感觉不对.
小智 7
根据文档pm API 参考,该pm.cookie
API 仅适用于“测试”选项卡,不适用于“预请求脚本”。
以下项目仅在测试脚本中可用。
下午饼干
...
看来你必须坚持使用这种方法:Interceptor Blog post
自 2019/08 起,新版本现已支持该功能,请在此处查看更多示例:以编程方式删除 cookie · Issue #3312 · postmanlabs/postman-app-support
必须将要授予程序访问权限的 Cookie 域列入白名单。
const jar = pm.cookies.jar();
jar.clear(pm.request.url, function (error) {
// error - <Error>
});
Run Code Online (Sandbox Code Playgroud)
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
});
Run Code Online (Sandbox Code Playgroud)
const jar = pm.cookies.jar();
jar.get('http://example.com', 'token', function (error, value) {
// error - <Error>
// value - <String>
});
Run Code Online (Sandbox Code Playgroud)