Script execution order in Postman - Build an Automation Script
// 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.
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.
Practice
Collection Pre-request Script, Folder Pre-request Script, or Request Pre-request Script?Solution
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.Step 2: Identify execution order of pre-request scripts
Postman runs pre-request scripts starting from the collection level, then folder, then request level.Final Answer:
Collection Pre-request Script -> Option AQuick Check:
Pre-request scripts run top-down: Collection first [OK]
- Thinking request pre-request script runs first
- Confusing test scripts with pre-request scripts
- Assuming folder scripts run before collection scripts
Solution
Step 1: Recall Postman test script syntax
Postman uses pm.test() with a callback function to define tests.Step 2: Verify correct assertion method
pm.response.to.have.status(200) is the correct way to check status code 200.Final Answer:
pm.test('Status is 200', function () { pm.response.to.have.status(200); }); -> Option DQuick Check:
Use pm.test() and pm.response.to.have.status() [OK]
- Using pm.check() which does not exist
- Using test() without pm namespace
- Using pm.assert() which is invalid
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?Solution
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.Step 2: Trace variable assignment
Collection sets var1='A', folder overwrites var1='B', request overwrites var1='C'. Final value is 'C'.Final Answer:
'C' -> Option AQuick Check:
Last pre-request script sets final variable [OK]
- Assuming collection script value remains
- Thinking folder script overwrites request script
- Forgetting scripts run before request
Solution
Step 1: Understand when test scripts run
Test scripts run after the response is received, and must be placed in the Tests tab.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.Final Answer:
You placed the script in the Pre-request Script tab instead of Tests tab -> Option CQuick Check:
Tests run only in Tests tab after response [OK]
- Confusing pre-request and test script tabs
- Assuming saving request affects script execution
- Thinking collection runner is needed for tests
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?Solution
Step 1: Recall Postman script execution order
Pre-request scripts run in order: collection, folder, request. Test scripts run after response.Step 2: Understand variable update flow
Collection sets token, folder updates if empty, then request test script runs after response to check token.Step 3: Confirm correct order
This order ensures token is set and updated before test script checks it.Final Answer:
Collection pre-request script runs first, then folder pre-request script, then request test script -> Option BQuick Check:
Pre-request scripts run before tests in order [OK]
- Thinking test scripts run before pre-request scripts
- Assuming folder scripts run before collection scripts
- Believing request pre-request scripts run after tests
Ready to prove it?
Pass the test and this pattern moves unknown
