Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to set array as environment variable - Postman test

Tags:

postman

I am trying to set an array as an environmental variable in postman. But it stores the first value of the array rather than the array.

var aDataEntry = postman.pm.environment.get('data_set_entries');
if(aDataEntry == null) {
    aDataEntry = [];
}
var jsonData = pm.response.json();
aDataEntry.push(jsonData.dataEntry.id);

// a console.log here confirms that aDataEntry is an array

postman.pm.environment.set('data_entry',aDataEntry);

As mentioned in the comment of the code, the variable is coming as an array, but when I again get the environment variable in the second run, it is not of type array. But just contains the first element in the array.

What's wrong here? How can set the array and use it from the postman environment variable.

like image 285
Kannan Ramamoorthy Avatar asked Aug 27 '26 00:08

Kannan Ramamoorthy


1 Answers

It seems like pm.environment.set calls toString to set an environment value. You can use the below code to work-around that:

var aDataEntry = pm.environment.get('data_set_entries');
if(aDataEntry == null) {
    aDataEntry = [];
} else {
   aDataEntry = JSON.parse(aDataEntry);
}
var jsonData = pm.response.json();
aDataEntry.push(jsonData.dataEntry.id);

// a console.log here confirms that aDataEntry is an array

pm.environment.set('data_entry',JSON.stringify(aDataEntry));

Edit 1:

As mentioned in the Postman reference docs, it is suggested that one use JSON.stringify() and JSON.parse() for storing complex objects. I have updated the code accordingly.

like image 114
Kannan Ramamoorthy Avatar answered Sep 03 '26 22:09

Kannan Ramamoorthy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!