Passing environment variable between monitor runs

Hello,

I am a bit puzzled about how the environment variables are preserved between the monitor runs. So, I have a collection that contains a chain of requests, collects the JSON responses and stores some of the obtained IDs as environment variables at the end of the “Tests” stage of the requests:

pm.environment.unset("purchasedOrderId");
pm.environment.set("purchasedOrderId", jsonData.id);

Passing the environment variables works just fine within a single collection run performed by a Postman monitor. However, when I try to get environment variable value from the last run, I get the initial value stored into the environment configuration, just as every monitor run would start from scratch. That makes the precautions “if it failed last time, cancel last flow before continue any further” useless.

Am I missing something obvious here? Could that be a side effect of the fact that the environments are shared within the team?

Any ideas or suggestions are very much welcome!

This is one of the differences when running collections in a monitor vs. in the collection runner. Global and environment variables are NOT persisted across collection runs using a monitor the same way they can be persisted across collection runs in the collection runner.

To pass updated environment variables across monitor runs, you can add another call to your collection to update the environment in use. In other words, submit a PUT request using the Postman API to update the environment.