PostmanProject/ ├── collections/ │ └── MyAPICollection.postman_collection.json ├── environments/ │ ├── dev.postman_environment.json │ ├── staging.postman_environment.json │ └── prod.postman_environment.json ├── globals/ │ └── global_variables.postman_globals.json ├── scripts/ │ ├── pre-request-scripts/ │ │ └── set-global-vars.js │ └── test-scripts/ │ └── validate-response.js └── README.md
Global variables in Postman - Framework Patterns
- Collections: Group of API requests organized logically.
- Environments: Store environment-specific variables (e.g., URLs, tokens).
- Global Variables: Variables accessible across all collections and environments.
- Pre-request Scripts: JavaScript code that runs before each request to set or update variables.
- Test Scripts: JavaScript code that runs after each request to validate responses and update variables.
- Utilities: Shared scripts or helper functions to reuse code.
Global variables are defined in the globals folder as JSON files or directly in Postman UI. They store values accessible in any request or environment.
Use environment variables for environment-specific data, and global variables for data shared across all environments.
Example of setting a global variable in a pre-request script:
pm.globals.set("authToken", "12345abcde");
Example of reading a global variable in a test script:
const token = pm.globals.get("authToken");
pm.test("Token is set", () => {
pm.expect(token).to.not.be.undefined;
});
Postman collections can be run via newman CLI tool in CI/CD pipelines.
Global variables can be loaded or updated before or after runs using scripts or environment files.
Reports generated by Newman can be in JSON, HTML, or JUnit formats for integration with CI tools like Jenkins, GitHub Actions, or GitLab.
Example Newman command using global variables file:
newman run collections/MyAPICollection.postman_collection.json \
--environment environments/dev.postman_environment.json \
--globals globals/global_variables.postman_globals.json \
--reporters cli,html
- Limit global variables: Use them only for truly shared data to avoid confusion.
- Prefer environment variables: For data that changes per environment (dev, staging, prod).
- Use descriptive names: Name global variables clearly to avoid collisions and improve readability.
- Manage secrets carefully: Avoid storing sensitive data in global variables; use secure vaults or environment variables with restricted access.
- Update globals programmatically: Use pre-request or test scripts to keep global variables current during test runs.
Where in this folder structure would you add a new global variable for an API authentication token?
Answer: In the globals/global_variables.postman_globals.json file or by setting it via a pre-request script in the scripts/pre-request-scripts/ folder.
Practice
Solution
Step 1: Understand global variable scope
Global variables in Postman are accessible everywhere, across all requests and tests.Step 2: Compare with other variable types
Unlike environment or local variables, global variables persist and are shared globally.Final Answer:
To store data accessible across all requests and tests -> Option AQuick Check:
Global variables = accessible everywhere [OK]
- Confusing global variables with environment variables
- Thinking global variables are temporary
- Assuming global variables are request-specific
token with value abc123 in Postman?Solution
Step 1: Recall correct Postman global variable syntax
The correct method to set a global variable ispm.globals.set(key, value).Step 2: Identify the correct object and method
Only pm.globals.set('token', 'abc123'); usespm.globals.setcorrectly with proper quotes and parameters.Final Answer:
pm.globals.set('token', 'abc123'); -> Option CQuick Check:
Use pm.globals.set to set global variables [OK]
- Using pm.global instead of pm.globals
- Using .add instead of .set method
- Incorrect object names like pm.globalVariables
pm.globals.set('userId', '42');
const id = pm.globals.get('userId');
console.log(id);What will be printed in the Postman console?
Solution
Step 1: Set global variable 'userId' to '42'
The first line stores the string '42' in the global variable named 'userId'.Step 2: Retrieve and log the global variable
The second line gets the value of 'userId' which is '42', then logs it.Final Answer:
42 -> Option BQuick Check:
pm.globals.get('userId') returns '42' [OK]
- Expecting variable name instead of value
- Confusing undefined with null
- Forgetting to set the variable before getting
pm.globals.set(userId, '100');
But it throws an error. What is the problem?
Solution
Step 1: Check the syntax of pm.globals.set
The first argument must be a string key, so it should be quoted like 'userId'.Step 2: Identify the error cause
Without quotes, userId is treated as an undefined variable causing an error.Final Answer:
The variable name userId should be a string in quotes -> Option AQuick Check:
Keys must be strings in pm.globals.set [OK]
- Not quoting the key name
- Thinking pm.globals.set needs more arguments
- Believing global variables can't be set in scripts
// Request 1
pm.globals.set('sessionToken', 'xyz789');
// Request 2
const token = pm.globals.get('sessionToken');
console.log(token);Solution
Step 1: Set global variable in first request
The first request sets 'sessionToken' globally using pm.globals.set.Step 2: Retrieve global variable in second request
The second request gets the same 'sessionToken' using pm.globals.get and logs it.Final Answer:
This sequence correctly shares the token globally -> Option DQuick Check:
Global variables share data across requests [OK]
- Thinking globals can't share data between requests
- Confusing environment and global variables
- Trying to pass token manually instead of using variables
Ready to prove it?
Pass the test and this pattern moves unknown
