Bird
Raised Fist0
Postmantesting~8 mins

Collection variables in Postman - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Collection variables
Folder Structure of a Postman Collection Project
postman-project/
├── collections/
│   └── MyAPI.postman_collection.json
├── environments/
│   ├── dev.postman_environment.json
│   ├── staging.postman_environment.json
│   └── prod.postman_environment.json
├── scripts/
│   ├── pre-request-scripts.js
│   └── test-scripts.js
├── README.md
└── postman_globals.json
  
Test Framework Layers in Postman Collection
  • Collection Layer: Contains API requests grouped logically. Uses collection variables for shared values.
  • Environment Layer: Holds environment-specific variables like base URLs and credentials.
  • Scripts Layer: Includes pre-request and test scripts to run before or after requests.
  • Globals Layer: Stores global variables accessible across collections and environments.
  • Configuration Layer: Manages environment files and collection variables for flexible testing.
Configuration Patterns for Collection Variables

Collection variables are defined inside the Postman collection JSON or via the Postman app UI. They store values shared by all requests in the collection.

Use collection variables to hold values like API keys, tokens, or common parameters that do not change per environment.

For environment-specific values (like base URLs), use environment variables instead.

Example of setting a collection variable in a pre-request script:

pm.collectionVariables.set("api_key", "12345abcde");
  

To access a collection variable in a request URL or header, use {{variable_name}} syntax.

Test Reporting and CI/CD Integration

Postman collections can be run via Newman, the command-line runner.

Newman supports generating reports in formats like HTML, JSON, and JUnit XML.

Example Newman command with HTML report:

newman run collections/MyAPI.postman_collection.json \
  -e environments/dev.postman_environment.json \
  --reporters cli,html \
  --reporter-html-export reports/report.html
  

Integrate Newman runs into CI/CD pipelines (GitHub Actions, Jenkins, GitLab CI) to automate API testing on code changes.

Best Practices for Using Collection Variables
  • Use collection variables for values shared across all environments and requests, like API keys.
  • Keep sensitive data out of collection variables; use environment variables or secure vaults.
  • Use descriptive names for variables to improve readability and maintenance.
  • Document variable usage in README or collection description for team clarity.
  • Regularly review and clean unused variables to keep collections tidy.
Self-Check Question

Where in this Postman project structure would you add a new collection variable for an API token used by all requests?

Key Result
Use collection variables in Postman collections to share common values across all requests, improving maintainability and reusability.

Practice

(1/5)
1. What is the main purpose of collection variables in Postman?
easy
A. To store reusable values accessible by all requests in a collection
B. To store environment-specific URLs only
C. To save responses from API calls automatically
D. To create user interface themes in Postman

Solution

  1. Step 1: Understand what collection variables do

    Collection variables hold values that can be reused across all requests in a collection, making tests easier to manage.
  2. Step 2: Compare options with this purpose

    Only To store reusable values accessible by all requests in a collection describes storing reusable values for all requests, which matches the purpose of collection variables.
  3. Final Answer:

    To store reusable values accessible by all requests in a collection -> Option A
  4. Quick Check:

    Collection variables = reusable values [OK]
Hint: Remember: collection variables share values across all collection requests [OK]
Common Mistakes:
  • Confusing collection variables with environment variables
  • Thinking collection variables store API responses
  • Assuming collection variables control UI settings
2. Which syntax correctly uses a collection variable named api_key inside a request URL in Postman?
easy
A. https://api.example.com/data?key=api_key
B. https://api.example.com/data?key=[api_key]
C. https://api.example.com/data?key=$api_key
D. https://api.example.com/data?key={{api_key}}

Solution

  1. Step 1: Recall Postman variable syntax

    Postman uses double curly braces {{variable_name}} to insert variables into requests.
  2. Step 2: Match syntax with options

    Only https://api.example.com/data?key={{api_key}} uses {{api_key}}, which is the correct way to reference a collection variable.
  3. Final Answer:

    https://api.example.com/data?key={{api_key}} -> Option D
  4. Quick Check:

    Variable syntax = {{variable_name}} [OK]
Hint: Use double curly braces {{}} to insert variables in Postman [OK]
Common Mistakes:
  • Using plain variable name without braces
  • Using square brackets or dollar sign instead of {{}}
  • Confusing environment and collection variable syntax
3. Given a collection variable base_url set to https://api.test.com, what will be the full URL for this request?
GET {{base_url}}/users
medium
A. GET https://api.test.com/users
B. GET {{base_url}}/users
C. GET https://api.test.com{{base_url}}/users
D. GET /users

Solution

  1. Step 1: Substitute the collection variable

    The variable {{base_url}} is replaced by its value https://api.test.com in the request URL.
  2. Step 2: Combine the parts of the URL

    After substitution, the URL becomes https://api.test.com/users as the path /users is appended.
  3. Final Answer:

    GET https://api.test.com/users -> Option A
  4. Quick Check:

    Variable replaced by value = full URL [OK]
Hint: Replace {{variable}} with its value to get the full URL [OK]
Common Mistakes:
  • Not replacing the variable and leaving {{base_url}} as is
  • Appending variable value incorrectly
  • Ignoring the path after the variable
4. You set a collection variable token but your request still sends Authorization: Bearer {{token}} literally without replacing it. What is the likely cause?
medium
A. You used single curly braces instead of double
B. The collection variable token was not saved properly
C. Postman does not support collection variables in headers
D. The variable name is case-insensitive and mismatched

Solution

  1. Step 1: Understand variable replacement behavior

    If Postman sends {{token}} literally, it means the variable was not found or set correctly.
  2. Step 2: Identify common causes

    Most often, the variable was not saved or defined in the collection variables, so Postman cannot replace it.
  3. Final Answer:

    The collection variable token was not saved properly -> Option B
  4. Quick Check:

    Missing variable value = no replacement [OK]
Hint: Check if collection variable is saved before using it [OK]
Common Mistakes:
  • Assuming single braces work for variables
  • Thinking headers can't use variables
  • Ignoring case sensitivity issues
5. You want to use a collection variable user_id in a request body JSON like this:
{ "id": "{{user_id}}", "action": "delete" }

But the API expects id as a number, not a string. How should you fix the request body to send user_id as a number?
hard
A. { "id": "{{user_id}}", "action": "delete" }
B. { "id": '${{user_id}}', "action": "delete" }
C. { "id": {{user_id}}, "action": "delete" }
D. { "id": [{{user_id}}], "action": "delete" }

Solution

  1. Step 1: Understand JSON data types

    In JSON, numbers should not be inside quotes; quotes make them strings.
  2. Step 2: Adjust variable usage in JSON

    Remove quotes around {{user_id}} so Postman inserts the number directly, matching API expectation.
  3. Final Answer:

    { "id": {{user_id}}, "action": "delete" } -> Option C
  4. Quick Check:

    Numbers in JSON = no quotes [OK]
Hint: Remove quotes around {{variable}} to send numbers, not strings [OK]
Common Mistakes:
  • Keeping quotes around numeric variables
  • Using wrong variable syntax with $ or []
  • Sending arrays instead of single values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard