我的应用程序返回两个 Set-Cookie 标头:JSESSIONID 和 AWSELB。
当我在Postman中编写测试并使用postman.getResponseHeader("Set-Cookie")
它只返回AWSELB。
知道我怎样才能得到JSESSIONID?
编辑:接受的答案以一种方式解决了它,现在我有同样的问题,但使用相同的密钥发送两个标头。我应该能够发送多个"Set-Cookie"标头,但是当我这样做时,看起来只发送了最后一个,第一个被覆盖了。
getResponseHeader 似乎只包含最后一个标头,因此在处理 cookie 时它并没有真正有用。
我宁愿建议你尝试
getResponseCookie
例如:
tests["Should contain JSESSIONID cookie"] = postman.getResponseCookie('JSESSIONID').value === 'abcdef';
希望这有帮助!
实际上 postman 包含 postman.response.headers 下的所有标头其类型是标题列表。但它存储类型为 Array 的标头。标头具有键和值。
因此,您可以遍历postman.response.headers并使用值或键过滤掉所需的内容
按标题键过滤
pm.response.headers
.filter(header=>header.key.includes("whatever you are looking for"))
.map(f=>console.log( f.value))
按标头值筛选
pm.response.headers
.filter(header=>header.value.includes("whatever you are looking for"))
.map(f=>console.log( f.value))
我使用以下方法从响应标头获取cookie,
const Cookie = require('postman-collection').Cookie;
const oResponseHeaders = pm.response.headers;
oResponseHeaders.filter(function(resHeader){
//console.log("resHeader : ",resHeader);
let bSetCookieExists = resHeader.key.includes("Set-Cookie");
if(bSetCookieExists){
console.log('cookie : ',resHeader.key.includes("Set-Cookie"));
let rawHeader = pm.response.headers.get("Set-Cookie");
let myCookie = new Cookie(rawHeader);
console.log("myCookie : ",myCookie.toJSON());
console.log("myCookie name : ", myCookie.name);
console.log("myCookie value : ", myCookie.value);
}
})