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.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.