Bird
Raised Fist0
Postmantesting~8 mins

Global variables in Postman - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Global variables
Folder Structure of a Postman Test Project
  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
  
Test Framework Layers in Postman
  • 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.
Configuration Patterns for Global Variables

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;
  });
  
Test Reporting and CI/CD Integration

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
  
Best Practices for Using Global Variables in Postman
  • 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.
Self Check

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.

Key Result
Use global variables in Postman to share data across collections and environments, managed via JSON files and scripts.

Practice

(1/5)
1. What is the main purpose of global variables in Postman?
easy
A. To store data accessible across all requests and tests
B. To store data only for the current request
C. To create temporary variables that disappear after one test
D. To define environment-specific settings

Solution

  1. Step 1: Understand global variable scope

    Global variables in Postman are accessible everywhere, across all requests and tests.
  2. Step 2: Compare with other variable types

    Unlike environment or local variables, global variables persist and are shared globally.
  3. Final Answer:

    To store data accessible across all requests and tests -> Option A
  4. Quick Check:

    Global variables = accessible everywhere [OK]
Hint: Global variables are shared everywhere in Postman [OK]
Common Mistakes:
  • Confusing global variables with environment variables
  • Thinking global variables are temporary
  • Assuming global variables are request-specific
2. Which of the following is the correct syntax to set a global variable named token with value abc123 in Postman?
easy
A. pm.globals.add('token', 'abc123');
B. pm.global.set('token', 'abc123');
C. pm.globals.set('token', 'abc123');
D. pm.globalVariables.set('token', 'abc123');

Solution

  1. Step 1: Recall correct Postman global variable syntax

    The correct method to set a global variable is pm.globals.set(key, value).
  2. Step 2: Identify the correct object and method

    Only pm.globals.set('token', 'abc123'); uses pm.globals.set correctly with proper quotes and parameters.
  3. Final Answer:

    pm.globals.set('token', 'abc123'); -> Option C
  4. Quick Check:

    Use pm.globals.set to set global variables [OK]
Hint: Use pm.globals.set('key', 'value') to set globals [OK]
Common Mistakes:
  • Using pm.global instead of pm.globals
  • Using .add instead of .set method
  • Incorrect object names like pm.globalVariables
3. Consider this Postman test script:
pm.globals.set('userId', '42');
const id = pm.globals.get('userId');
console.log(id);

What will be printed in the Postman console?
medium
A. undefined
B. 42
C. userId
D. null

Solution

  1. Step 1: Set global variable 'userId' to '42'

    The first line stores the string '42' in the global variable named 'userId'.
  2. Step 2: Retrieve and log the global variable

    The second line gets the value of 'userId' which is '42', then logs it.
  3. Final Answer:

    42 -> Option B
  4. Quick Check:

    pm.globals.get('userId') returns '42' [OK]
Hint: pm.globals.get returns the stored value [OK]
Common Mistakes:
  • Expecting variable name instead of value
  • Confusing undefined with null
  • Forgetting to set the variable before getting
4. You wrote this Postman script to set a global variable:
pm.globals.set(userId, '100');

But it throws an error. What is the problem?
medium
A. The variable name userId should be a string in quotes
B. pm.globals.set cannot set numeric values
C. pm.globals.set requires three arguments
D. Global variables cannot be set inside scripts

Solution

  1. Step 1: Check the syntax of pm.globals.set

    The first argument must be a string key, so it should be quoted like 'userId'.
  2. Step 2: Identify the error cause

    Without quotes, userId is treated as an undefined variable causing an error.
  3. Final Answer:

    The variable name userId should be a string in quotes -> Option A
  4. Quick Check:

    Keys must be strings in pm.globals.set [OK]
Hint: Always quote variable names in pm.globals.set [OK]
Common Mistakes:
  • Not quoting the key name
  • Thinking pm.globals.set needs more arguments
  • Believing global variables can't be set in scripts
5. You want to share a session token between multiple requests in Postman using global variables. Which sequence correctly sets and retrieves the token?
// Request 1
pm.globals.set('sessionToken', 'xyz789');

// Request 2
const token = pm.globals.get('sessionToken');
console.log(token);
hard
A. You must use environment variables instead of global variables
B. You need to pass the token as a parameter, not use globals
C. pm.globals.get cannot retrieve variables set in other requests
D. This sequence correctly shares the token globally

Solution

  1. Step 1: Set global variable in first request

    The first request sets 'sessionToken' globally using pm.globals.set.
  2. Step 2: Retrieve global variable in second request

    The second request gets the same 'sessionToken' using pm.globals.get and logs it.
  3. Final Answer:

    This sequence correctly shares the token globally -> Option D
  4. Quick Check:

    Global variables share data across requests [OK]
Hint: Set in one request, get in another using pm.globals [OK]
Common Mistakes:
  • Thinking globals can't share data between requests
  • Confusing environment and global variables
  • Trying to pass token manually instead of using variables
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