Bird
Raised Fist0
Postmantesting~5 mins

Conditional request execution (setNextRequest) in Postman - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the setNextRequest() function do in Postman?
It controls which request runs next in a collection run, allowing you to skip or repeat requests based on conditions.
Click to reveal answer
beginner
How can you skip a request in Postman using setNextRequest()?
By calling postman.setNextRequest(null), you stop the collection run from continuing to any further requests.
Click to reveal answer
intermediate
True or False: setNextRequest() can be used to create loops in a Postman collection run.
True. You can set the next request to a previous one to repeat it, creating a loop.
Click to reveal answer
beginner
In which script tab do you write setNextRequest() to control request flow?
You write it in the Tests tab of a request, after the response is received.
Click to reveal answer
intermediate
Example: How to run Request B only if Request A returns status 200?
In Request A's Tests tab, write:
if (pm.response.code === 200) {
  postman.setNextRequest('Request B');
} else {
  postman.setNextRequest(null);
}
Click to reveal answer
What happens if you call postman.setNextRequest(null) in a test script?
AThe collection run stops after the current request.
BThe next request runs as usual.
CThe current request repeats indefinitely.
DAn error occurs and the run fails.
Where do you place the setNextRequest() function to control request flow?
APre-request Script tab
BTests tab
CBody tab
DHeaders tab
Can setNextRequest() create loops in a Postman collection?
ANo, it only moves forward.
BOnly in the pre-request script.
COnly if you use external scripts.
DYes, by setting the next request to a previous one.
If you want to run Request C only when a variable isReady is true, what should you do?
AUse an if statement in Tests tab to call <code>postman.setNextRequest('Request C')</code> only if <code>isReady</code> is true.
BSet <code>isReady</code> in the Pre-request Script tab.
CAlways call <code>postman.setNextRequest('Request C')</code>.
DYou cannot control request execution based on variables.
What is the default behavior if you do NOT use setNextRequest() in a collection run?
AOnly the first request runs.
BRequests run randomly.
CRequests run in the order they appear in the collection.
DThe collection run stops immediately.
Explain how setNextRequest() can be used to control the flow of requests in a Postman collection.
Think about how you decide which request runs next after one finishes.
You got /4 concepts.
    Describe a scenario where you would use postman.setNextRequest() to skip some requests.
    Imagine you only want to continue if a test passes.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of pm.setNextRequest() in Postman?
      easy
      A. To decide which request runs next based on a condition
      B. To send the current request multiple times automatically
      C. To stop the entire collection run immediately
      D. To reset all environment variables to default values

      Solution

      1. Step 1: Understand the function of pm.setNextRequest()

        This function controls the flow of requests by specifying which request should run next.
      2. Step 2: Compare with other options

        Options B, C, and D describe different actions not related to controlling the next request.
      3. Final Answer:

        To decide which request runs next based on a condition -> Option A
      4. Quick Check:

        pm.setNextRequest() controls next request execution [OK]
      Hint: Remember: setNextRequest controls the next request flow [OK]
      Common Mistakes:
      • Thinking it repeats the current request
      • Confusing it with stopping the collection run
      • Assuming it resets variables
      2. Which of the following is the correct syntax to set the next request named "Login" in a Postman test script?
      easy
      A. pm.setNextRequest(Login);
      B. pm.setNextRequest("Login");
      C. pm.setNextRequest('Login');
      D. pm.setNextRequest(Login')

      Solution

      1. Step 1: Check the syntax for string argument

        The request name must be passed as a string in quotes. Both single or double quotes are valid, but must be paired correctly.
      2. Step 2: Identify correct option

        pm.setNextRequest("Login"); uses double quotes correctly. pm.setNextRequest('Login'); also uses single quotes correctly. Both are valid syntaxes. pm.setNextRequest(Login); lacks quotes, causing a syntax error. pm.setNextRequest(Login') has mismatched quotes.
      3. Final Answer:

        pm.setNextRequest("Login"); -> Option B
      4. Quick Check:

        Request name must be a quoted string [OK]
      Hint: Always quote request names in setNextRequest() [OK]
      Common Mistakes:
      • Forgetting quotes around request name
      • Mismatched or missing quotes
      • Omitting semicolon at line end
      3. Consider this test script in Postman after a request named "CheckStatus":
      if (pm.response.code === 200) {
          pm.setNextRequest('ProcessData');
      } else {
          pm.setNextRequest('ErrorHandler');
      }
      If the response code is 404, which request runs next?
      medium
      A. ErrorHandler
      B. ProcessData
      C. CheckStatus
      D. No next request runs

      Solution

      1. Step 1: Analyze the condition

        The script checks if response code is 200. If true, it sets next request to 'ProcessData'. Otherwise, it sets to 'ErrorHandler'.
      2. Step 2: Apply the response code 404

        Since 404 is not 200, the else block runs, setting next request to 'ErrorHandler'.
      3. Final Answer:

        ErrorHandler -> Option A
      4. Quick Check:

        404 ≠ 200, so next request = ErrorHandler [OK]
      Hint: If condition false, else block sets next request [OK]
      Common Mistakes:
      • Assuming 404 triggers the if block
      • Thinking current request repeats
      • Ignoring else block logic
      4. You wrote this test script in Postman:
      if (pm.response.code = 200) {
          pm.setNextRequest('NextStep');
      } else {
          pm.setNextRequest('Stop');
      }
      What is the problem with this script?
      medium
      A. Request names should not be in quotes
      B. Missing semicolon after pm.response.code
      C. pm.setNextRequest cannot be used inside if statements
      D. Using assignment (=) instead of comparison (===) in the if condition

      Solution

      1. Step 1: Identify the if condition error

        The condition uses single equals (=), which assigns 200 to pm.response.code instead of comparing it.
      2. Step 2: Understand consequences

        This causes a bug: the if condition always evaluates to true, and response code is overwritten.
      3. Final Answer:

        Using assignment (=) instead of comparison (===) in the if condition -> Option D
      4. Quick Check:

        Use === for comparison, not = [OK]
      Hint: Use === for comparison, not = assignment [OK]
      Common Mistakes:
      • Confusing = with === in conditions
      • Removing quotes from request names
      • Thinking setNextRequest can't be conditional
      5. You want to create a Postman flow where if a variable userExists is true, the next request is "GetUserData", else the flow stops. Which script correctly implements this in the test tab?
      hard
      A. if (pm.variables.get('userExists') === true) { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest(null); }
      B. if (pm.variables.get('userExists') == 'true') { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest('Stop'); }
      C. if (pm.variables.get('userExists')) { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest(null); }
      D. if (pm.variables.get('userExists') === 'true') { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest(null); }

      Solution

      1. Step 1: Understand variable type and condition

        pm.variables.get returns a string or boolean depending on how set. Using it directly in if checks truthiness correctly.
      2. Step 2: Check stopping the flow

        Setting pm.setNextRequest(null) stops the collection run, which matches the requirement to stop if userExists is false.
      3. Step 3: Evaluate options

        if (pm.variables.get('userExists')) { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest(null); } uses direct truthiness check and null to stop, which is correct. Options A and C compare strictly to boolean or string which may fail if variable type differs. if (pm.variables.get('userExists') == 'true') { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest('Stop'); } tries to set next request to 'Stop' which is not a request name and won't stop the flow.
      4. Final Answer:

        if (pm.variables.get('userExists')) { pm.setNextRequest('GetUserData'); } else { pm.setNextRequest(null); } -> Option C
      5. Quick Check:

        Use truthy check and null to stop flow [OK]
      Hint: Use null in setNextRequest to stop flow [OK]
      Common Mistakes:
      • Comparing variable to string 'true' instead of boolean
      • Setting next request to a non-existent name to stop
      • Not using null to stop the collection run