我的应用返回两个Set-Cookie头:JSESSIONID和AWSELB。当我在Postman中编写测试并使用postman.getResponseHeader("Set-Cookie")时,它只返回AWSELB。你知道我如何得到JSESSIONID吗?编辑:接受的答案解决了一种方式,现在我有同样的问题,但发送两个标题相同的关键。我应该能够发送多个'Set-Cookie'头,但当我这样做时,它看起来像只有最后一个正在发送,第一个被覆盖。
postman.getResponseHeader("Set-Cookie")
qxgroojn1#
getResponseHeader似乎只包含最后一个头,所以在处理cookie时它并不真正有用。我建议你试试getResponseCookie举例来说:
tests["Should contain JSESSIONID cookie"] = postman.getResponseCookie('JSESSIONID').value === 'abcdef';
希望这对你有帮助!
nimxete22#
实际上postman包含了postman.response.headers下的所有头文件,其类型为HeaderList。但它存储类型为Array的头。Header有key和value。因此,您可以遍历postman.response. header并使用value或key筛选出您需要的内容//通过头键过滤
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))
fkaflof63#
我使用下面的方法从响应头中获取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); } })
zte4gxcn4#
API似乎又变了。现在就像是
pm.response.headers.get('Set-Cookie'). split('; ').find(s=>s.startsWith('myCookieName='))?.split('=')[1]
获取cookie的值myCookieName。
myCookieName
4条答案
按热度按时间qxgroojn1#
getResponseHeader似乎只包含最后一个头,所以在处理cookie时它并不真正有用。
我建议你试试
getResponseCookie
举例来说:
希望这对你有帮助!
nimxete22#
实际上postman包含了postman.response.headers下的所有头文件,其类型为HeaderList。但它存储类型为Array的头。Header有key和value。
因此,您可以遍历postman.response. header并使用value或key筛选出您需要的内容
//通过头键过滤
//通过头值过滤
fkaflof63#
我使用下面的方法从响应头中获取cookie,
zte4gxcn4#
API似乎又变了。现在就像是
获取cookie的值
myCookieName
。