Bird
Raised Fist0
Postmantesting~15 mins

Script execution order in Postman - Build an Automation Script

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
Verify Postman script execution order
Preconditions (2)
Step 1: Open the Postman collection
Step 2: Add a Pre-request Script at the collection level that sets a variable 'order' to 'collection'
Step 3: Add a Pre-request Script at the folder level that appends '-folder' to the 'order' variable
Step 4: Add a Pre-request Script at the request level that appends '-request' to the 'order' variable
Step 5: Send the request
Step 6: Add a Test script at the request level that reads the 'order' variable and saves it to the test result
Step 7: Run the request and observe the test result
✅ Expected Result: The 'order' variable value in the test result should be 'collection-folder-request', showing the scripts ran in the correct order
Automation Requirements - Postman Sandbox JavaScript
Assertions Needed:
Verify the 'order' variable equals 'collection-folder-request' after request execution
Best Practices:
Use pm.variables.set and pm.variables.get to manage variables
Use console.log for debugging script execution order
Keep scripts simple and focused on their scope level
Automated Solution
Postman
// Collection Pre-request Script
pm.variables.set('order', 'collection');

// Folder Pre-request Script
let currentOrder = pm.variables.get('order');
pm.variables.set('order', currentOrder + '-folder');

// Request Pre-request Script
let orderSoFar = pm.variables.get('order');
pm.variables.set('order', orderSoFar + '-request');

// Request Test Script
let finalOrder = pm.variables.get('order');
pm.test('Script execution order is correct', function () {
    pm.expect(finalOrder).to.eql('collection-folder-request');
});

The collection pre-request script sets the initial variable 'order' to 'collection'.

The folder pre-request script appends '-folder' to the existing 'order' variable.

The request pre-request script appends '-request' to the 'order' variable.

Finally, the test script verifies that the 'order' variable equals 'collection-folder-request', confirming the scripts executed in the correct order.

This approach uses Postman Sandbox's pm.variables API to share variables across script scopes during the request lifecycle.

Common Mistakes - 3 Pitfalls
Using pm.environment or pm.collectionVariables instead of pm.variables for temporary request lifecycle variables
Not appending strings properly, causing the order variable to overwrite instead of accumulate
Placing all scripts only at the request level
Bonus Challenge

Now add a Post-request Script at the collection level that appends '-post' to the 'order' variable and verify the final value includes this suffix.

Show Hint

Practice

(1/5)
1. In Postman, which script runs first when you send a request?
Collection Pre-request Script, Folder Pre-request Script, or Request Pre-request Script?
easy
A. Collection Pre-request Script
B. Folder Pre-request Script
C. Request Pre-request Script
D. Test Script

Solution

  1. Step 1: Understand script types in Postman

    Pre-request scripts run before sending the request. They can be set at collection, folder, or request level.
  2. Step 2: Identify execution order of pre-request scripts

    Postman runs pre-request scripts starting from the collection level, then folder, then request level.
  3. Final Answer:

    Collection Pre-request Script -> Option A
  4. Quick Check:

    Pre-request scripts run top-down: Collection first [OK]
Hint: Pre-request scripts run from collection to request level [OK]
Common Mistakes:
  • Thinking request pre-request script runs first
  • Confusing test scripts with pre-request scripts
  • Assuming folder scripts run before collection scripts
2. Which of the following is the correct syntax to add a test script in Postman that checks if the response status is 200?
easy
A. test('Status is 200', () => response.status === 200);
B. pm.check('Status is 200', () => pm.response.status === 200);
C. pm.assert('Status is 200', pm.response.statusCode == 200);
D. pm.test('Status is 200', function () { pm.response.to.have.status(200); });

Solution

  1. Step 1: Recall Postman test script syntax

    Postman uses pm.test() with a callback function to define tests.
  2. Step 2: Verify correct assertion method

    pm.response.to.have.status(200) is the correct way to check status code 200.
  3. Final Answer:

    pm.test('Status is 200', function () { pm.response.to.have.status(200); }); -> Option D
  4. Quick Check:

    Use pm.test() and pm.response.to.have.status() [OK]
Hint: Use pm.test() with pm.response.to.have.status() [OK]
Common Mistakes:
  • Using pm.check() which does not exist
  • Using test() without pm namespace
  • Using pm.assert() which is invalid
3. Given these scripts in Postman:
Collection Pre-request Script: sets variable var1 = 'A'
Folder Pre-request Script: sets var1 = 'B'
Request Pre-request Script: sets var1 = 'C'
After sending the request, what is the value of var1 in the test script?
medium
A. 'C'
B. 'B'
C. Undefined
D. 'A'

Solution

  1. Step 1: Understand script execution order for pre-request scripts

    Pre-request scripts run in order: collection, then folder, then request. Each can overwrite variables.
  2. Step 2: Trace variable assignment

    Collection sets var1='A', folder overwrites var1='B', request overwrites var1='C'. Final value is 'C'.
  3. Final Answer:

    'C' -> Option A
  4. Quick Check:

    Last pre-request script sets final variable [OK]
Hint: Last pre-request script overwrites variables [OK]
Common Mistakes:
  • Assuming collection script value remains
  • Thinking folder script overwrites request script
  • Forgetting scripts run before request
4. You wrote a test script in Postman but it never runs after sending the request. Which is the most likely reason?
medium
A. You forgot to save the request
B. The request URL is invalid
C. You placed the script in the Pre-request Script tab instead of Tests tab
D. You did not enable the collection runner

Solution

  1. Step 1: Understand when test scripts run

    Test scripts run after the response is received, and must be placed in the Tests tab.
  2. Step 2: Identify script placement error

    If the script is in Pre-request Script tab, it runs before sending request, not after response, so test code won't run as expected.
  3. Final Answer:

    You placed the script in the Pre-request Script tab instead of Tests tab -> Option C
  4. Quick Check:

    Tests run only in Tests tab after response [OK]
Hint: Put test code in Tests tab, not Pre-request tab [OK]
Common Mistakes:
  • Confusing pre-request and test script tabs
  • Assuming saving request affects script execution
  • Thinking collection runner is needed for tests
5. You have a collection with a pre-request script setting a variable token. A folder inside the collection has a pre-request script that updates token only if it is empty. The request inside the folder has a test script that checks if token is set. Which script execution order ensures the test script sees the updated token?
hard
A. Request test script runs before folder pre-request script
B. Collection pre-request script runs first, then folder pre-request script, then request test script
C. Folder pre-request script runs before collection pre-request script
D. Request pre-request script runs after test script

Solution

  1. Step 1: Recall Postman script execution order

    Pre-request scripts run in order: collection, folder, request. Test scripts run after response.
  2. Step 2: Understand variable update flow

    Collection sets token, folder updates if empty, then request test script runs after response to check token.
  3. Step 3: Confirm correct order

    This order ensures token is set and updated before test script checks it.
  4. Final Answer:

    Collection pre-request script runs first, then folder pre-request script, then request test script -> Option B
  5. Quick Check:

    Pre-request scripts run before tests in order [OK]
Hint: Pre-request scripts run before tests, top-down order [OK]
Common Mistakes:
  • Thinking test scripts run before pre-request scripts
  • Assuming folder scripts run before collection scripts
  • Believing request pre-request scripts run after tests