Dynamic URL building in Postman - Build an Automation Script
pm.test('Request URL contains all query parameters', () => { const url = pm.request.url.toString(); pm.expect(url).to.include('category=books'); pm.expect(url).to.include('sort=price_asc'); pm.expect(url).to.include('limit=10'); }); pm.test('Response status code is 200', () => { pm.response.to.have.status(200); }); pm.test('Response body contains items filtered by category books', () => { const jsonData = pm.response.json(); pm.expect(jsonData).to.be.an('object'); pm.expect(jsonData.items).to.be.an('array').that.is.not.empty; jsonData.items.forEach(item => { pm.expect(item.category).to.eql('books'); }); });
The first test checks that the request URL includes all the expected query parameters by converting the request URL to a string and verifying each parameter is present.
The second test asserts that the response status code is 200, indicating a successful request.
The third test parses the JSON response body, ensures it contains an array of items, and verifies each item's category is 'books' to confirm filtering worked.
Using Postman built-in pm API ensures clear and maintainable test scripts.
Now add data-driven testing with 3 different sets of query parameters (e.g., category=books, category=electronics, category=clothing) and verify the response accordingly
Practice
Solution
Step 1: Understand dynamic URL building
Dynamic URL building means using variables to create flexible URLs that can change based on input.Step 2: Identify the benefit in Postman
Using variables like {{variableName}} lets you reuse URLs easily without rewriting them for each test.Final Answer:
To reuse URLs by inserting variables for flexibility -> Option CQuick Check:
Dynamic URL building = reuse URLs with variables [OK]
- Thinking dynamic URLs make URLs longer
- Believing variables are not needed in URLs
- Confusing dynamic URLs with static URLs
userId in a Postman URL?Solution
Step 1: Recall Postman variable syntax
Postman uses double curly braces {{variableName}} to insert variables in URLs.Step 2: Match syntax to options
Only /api/users/{{userId}} uses {{userId}}, which is the correct Postman syntax.Final Answer:
/api/users/{{userId}} -> Option DQuick Check:
Postman variable syntax = {{variableName}} [OK]
- Using single braces or dollar signs instead of {{}}
- Confusing Postman syntax with other languages
- Forgetting to wrap variable names in curly braces
baseUrl set to https://api.example.com and the request URL {{baseUrl}}/users/{{userId}} with userId set to 42, what is the final URL sent by Postman?Solution
Step 1: Substitute environment variables
Postman replaces {{baseUrl}} with its value https://api.example.com and {{userId}} with 42.Step 2: Build the final URL
After substitution, the URL becomes https://api.example.com/users/42.Final Answer:
https://api.example.com/users/42 -> Option AQuick Check:
Variable substitution = final URL with values [OK]
- Leaving variables unsubstituted in the URL
- Mixing variable names or values
- Ignoring environment variable settings
{{baseUrl}/users/{{userId}} in Postman, but the request fails. What is the likely error?Solution
Step 1: Check variable syntax carefully
The URL has{{baseUrl}missing a closing brace, which breaks variable substitution.Step 2: Understand impact of syntax error
Without proper braces, Postman cannot replace the variable, causing the request to fail.Final Answer:
Missing closing curly brace for {{baseUrl}} variable -> Option AQuick Check:
Correct variable syntax requires matching {{ and }} [OK]
- Forgetting to close curly braces
- Assuming variable names are wrong without checking syntax
- Believing variables can't be used in URLs
env which can be dev or prod. Which URL correctly uses dynamic URL building to select the environment?Solution
Step 1: Identify correct variable syntax for environment
Postman uses {{env}} to insert the variable value dynamically in the URL.Step 2: Confirm URL structure for environment selection
Using https://api.example.com/{{env}}/users allows switching between dev or prod endpoints easily.Final Answer:
https://api.example.com/{{env}}/users -> Option BQuick Check:
Use {{variable}} to dynamically select URL parts [OK]
- Using wrong variable syntax like ${env} or {env}
- Hardcoding environment names instead of variables
- Not placing variable in correct URL position
Ready to prove it?
Pass the test and this pattern moves unknown
