Display variable content in Response Handling text

Take a normal Response Handling statement:

    pm.test("response is ok", function () {
        pm.response.to.have.status(200);
    });

I would like to customize the text with a variable coming from a Data Input File:

pm.test("response FOR CUSTOMER " + {{path}} + " is ok", function () {
    pm.response.to.have.status(200);
});

In Collection Runner I open an input file that populates the variable path.
This means the variable path is undefined at the start, it is populated at run time.

My URL is:

https://tapy-uat.flyrit.de/clm/unbprocessor/sales/pt/identifiers/no={{path}}

My input file:

> path
> 4567459687
> 4357349584
> 2396504398
> 4572839495

With the first Response Handling statement (without ā€˜path’ in the text, see top of my post) the execution is perfect, the variable path is read from the input file, populates the URL and executes as expected.

As soon as I try to include the variable ā€œpathā€ to leave information in the Response Handling statement text, I get an error and the variable is displayed as undefined (only in the text, the url is still working fine)

I cannot use


> pm.environment.get("path")

since ā€œpathā€ is not an environment variable, it is undefined at start populated first at run time

Hi @vwsamba21w

Welcome to the community!

I think I see what your issue is here.

Have you tried accessing the variable in your script by using the ā€œdataā€ variable?

if you want to get the path to output, and path is a column in your data file, it looks like all you would need to do is data.path, so that your code would look like so:

pm.test("response FOR CUSTOMER " + data.path.toString() + " is ok", function () { pm.response.to.have.status(200); });

I referred to their docs here to get this.

https://learning.getpostman.com/docs/postman/collection-runs/working-with-data-files/

Let us know if it worked!

— Orest

Hey @vwsamba21w

You should be able to use pm.iterationData.get('path') in the test name.

pm.test(`response FOR CUSTOMER ${pm.iterationData.get('path')} is ok`, function () {
    pm.response.to.have.status(200);
});
1 Like

Ah @danny-dainton I was looking for this in the documentation as well! I knew I have seen it before, but couldn’t remember where I saw it.

Would it be possible to add this way of getting iteration data into the Learning Postman Docs?

Thanks in advance,
— Orest

You will be able to find that here :grin:

https://learning.getpostman.com/docs/postman/scripts/postman-sandbox-api-reference/#pmiterationdata

1 Like

Awesome! I have never seen this before.

Maybe a link between the two? :thinking:

The docs are all open source and we’d love you to submit a PR for that suggestion :slight_smile:

Would be a great addition. :trophy:

1 Like

Agreed! Looks like it’s time for my first PR! :blush:

1 Like

Hi odanylewycz,

This worked like a charm. THANKS A LOT! :grinning:

1 Like

Hi dannydainton,

Unfortunately I couldn’t put your suggestion to work. Thanks anyway for trying.

That’s strange :frowning: - Was there a particular error message that was returned when you tried using this? Interesting to see where it’s failing for you. :thinking:

The pm.iterationData function has been part of the app for a while now and is the best thing to use when working with data files loaded in from the Collection Runner.