Sorry if I missed this, but I couldn’t find anything in documentation. Is there a way to tell if a request is being made directly from inside Postman, or some other direct method, or if its being run from Collection Runner, or a Monitor? Is there some variable that would indicate this? Basically, I would run different tests if I knew it was being run from within Collection Runner.
Hey @cptvitamin,
Welcome to the community!
I’ll be happy to help. I don’t believe there is an out-of-the-box variable that you’d be able to access to differentiate. However, the following should help:
You could always create a variable in your Environment, e.g. runType
and set its initial value to monitor
( To sync with the server when running your monitor and make sure the value is picked up )
You would then export that Environment as a JSON and then change the value of runType
locally to newman
for example. You could then use Newman to run your collection with the --environment
being the JSON file you explored with the newman
value.
I’m assuming your familiar with writing test scripts, considering your question is that correct? If not, I’d suggest reading the following: https://learning.postman.com/docs/postman/scripts/test-scripts/#writing-test-scripts.
You could then do something like the following in your tests:
if(pm.environment.get("runType") === "monitor"){
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
}
Hopefully, this helps. And welcome again!
if(pm.info.iterationCount>1){}
is helpful when you set iteration count as more than 1.
see the details : javascript - How to know if a request is running from collection in test script? - Stack Overflow