Search code examples
postmanweb-api-testing

Store Data from Postman request in variables to use in tests


Im currently trying to get used to POSTMAN and i was wondering if there is a way to store variables from my request JSON Body via Pre Request in some environment variable so ican resuse it in the tests for response value cheks

This is how my json File might look like

{  
"text" : "myText",  
"attachments": {  
    "text": "myText2",  
    "anotherText" : "myText3"  
}

So i want to get all Values, store them in a variable before sending my request, and then test if they match the expected value in my response (example: myText2 gets mapped to green, myText3 gets mapped to red and so on)

That would make it possible to write one test for several request

Thanks a lot!


Solution

  • You can write the following in your script:

    let body = JSON.parse(pm.request.body);   
    
    _.forEach(body, (value, key) => pm.environment.set(key, JSON.stringify(value)));
    

    This will set each key and it's associated value as an environment variables. Note you'll need to JSON.parse the value in the test script before using it for testing.

    For eg in your test script you'll need to do something like this:

    let attachments = JSON.parse(pm.environment.get('attachments'));
    pm.test('All attachments are of correct value', function () {
      // ...write your test here using the `attachments` variable
    });