I have a collection where i perform a login . In order to login i create a cookie from the test scripts but when i run the collection from postman cli , powershell it fails. The same collection when run from postman it works ok.
Welcome to the Postman Community!
Could you expand more on how that cookie is captured and stored?
Whatโs the CLI command that youโre using?
Yes so i use the following command to run my collection ( this collection works and passes all test from collection runner)
postman collection run {id} -e {id} --verbose
the only i do in test scripts is to get a value from a response header and then create a cookie for it
The first request script >
>// Get the session Id value from the set-cookie header
var sessionId = pm.response.headers.find(h => h.key === 'Set-Cookie').value.match(/SessionId=([^;]+)/)[1];
pm.environment.set('sessionId',sessionId);
console.log(sessionId);
// create a cookie
var cookieDomain = pm.environment.get('baseUrl_1').replace("https://", "");
cookieDomain = cookieDomain.replace(/\/$/, ""); // Remove the trailing slash
console.log(cookieDomain);
Second request script
pm.test("Creating SessionId cookie", function(){
// Extract SessionId from response headers
var sessionIdMatch = pm.response.headers.find(h => h.key === 'Set-Cookie').value.match(/SessionId=([^;]+)/);
if (sessionIdMatch) {
var sessionId = sessionIdMatch[1];
pm.environment.set('SessionId', sessionId);
console.log(sessionId);
// Remove trailing slash from baseUrl_1
var baseUrl = pm.environment.get('baseUrl_1').replace("https://", "");
baseUrl = baseUrl.replace(/\/$/, ""); // Remove the trailing slash
console.log(baseUrl);
// Set the cookie
const cookieJar = pm.cookies.jar();
cookieJar.set(
baseUrl,
{
name: 'SessionId',
value: sessionId,
domain: baseUrl, // Set domain without paths or slashes
httpOnly: true
}
);
Problem i face is that no cookies are captured when i send the second request. Also the one i am creating i can not see it.