Discover how a simple script trick can save you hours of tedious copying and prevent frustrating test failures!
Why Setting variables in scripts in Postman? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine testing an API where you must reuse values like tokens or IDs across many requests. Manually copying and pasting these values each time is like writing down a phone number on sticky notes and losing them everywhere.
Manually updating values is slow and easy to mess up. You might paste the wrong token or forget to update an ID, causing tests to fail without clear reasons. It's like trying to remember multiple passwords without a manager--stressful and error-prone.
Setting variables in scripts lets you store and reuse values automatically. Your script can save a token once and use it everywhere, like having a smart assistant who remembers and fills in details for you perfectly every time.
pm.environment.set('token', 'abc123'); pm.environment.set('userId', '789');
pm.environment.set('token', pm.response.json().token); pm.environment.set('userId', pm.response.json().user.id);
This makes your tests faster, more reliable, and easier to maintain by automating value sharing across requests.
When testing a login API, you can save the returned token in a variable and use it automatically in all following requests without typing it again.
Manual copying of values is slow and error-prone.
Scripts can store variables to reuse values automatically.
This improves test speed, accuracy, and maintenance.
Practice
pm.variables.set in Postman scripts?Solution
Step 1: Understand the function of
This function stores a value in a local variable that can be used later in the same request or script.pm.variables.setStep 2: Differentiate from other actions
Sending requests, deleting variables, or logging are done by other methods, notpm.variables.set.Final Answer:
To store a value in a local variable for later use within the same request -> Option AQuick Check:
pm.variables.set stores local variables [OK]
- Confusing variable setting with sending requests
- Thinking it deletes variables
- Assuming it logs output
token with value abc123 in a Postman test script?Solution
Step 1: Check the correct method signature
The correct syntax usespm.variables.set('variableName', 'value');with the variable name as a string and value as the second argument.Step 2: Identify syntax errors in other options
pm.variables.set(token, 'abc123'); misses quotes around the variable name. pm.variables.set('token' = 'abc123'); uses an invalid assignment inside the method. pm.variables.set['token', 'abc123']; uses incorrect bracket notation.Final Answer:
pm.variables.set('token', 'abc123'); -> Option DQuick Check:
Use quotes for variable name in pm.variables.set [OK]
- Omitting quotes around variable names
- Using assignment inside set method
- Using wrong brackets for method call
pm.variables.set('userId', 42);
const id = pm.variables.get('userId');
console.log(id);What will be printed in the Postman console?
Solution
Step 1: Understand variable setting and getting
The script sets 'userId' to the number 42, then retrieves it withpm.variables.get.Step 2: Check the console output
The retrieved value is 42 (a number), soconsole.log(id);prints 42 without quotes.Final Answer:
42 -> Option AQuick Check:
Set and get return the same stored value [OK]
- Assuming get returns string always
- Expecting undefined if variable not set
- Confusing quotes in console output
pm.variables.set('session', 'abc');
pm.variables.get('session');But the variable
session is not accessible in later requests. What is the likely problem?Solution
Step 1: Understand variable scopes in Postman
pm.variables.setsets a local variable only for the current script execution, not across requests.Step 2: Use environment variables for persistence
To keep variables accessible across requests, usepm.environment.setinstead.Final Answer:
You should usepm.environment.setto make it accessible across requests -> Option BQuick Check:
Local variables are temporary; environment variables persist [OK]
- Expecting pm.variables.set to persist across requests
- Thinking a save method is needed
- Believing variable names can't be strings
authToken in a Pre-request Script that depends on the response of a previous request stored in pm.response.json(). Which approach correctly sets authToken for use in the next request?Solution
Step 1: Identify when response data is available
The response data frompm.response.json()is only available in the Tests script after the request completes, not in the Pre-request Script.Step 2: Set variable for next request
To useauthTokenin the next request, set it as an environment variable in the Tests script of the current request usingpm.environment.set.Step 3: Why not local variables?
Local variables set withpm.variables.setdo not persist across requests, so they won't be available in the next request.Final Answer:
Use pm.environment.set('authToken', pm.response.json().token); in the Tests script of the previous request -> Option CQuick Check:
Set environment variables in Tests to share data between requests [OK]
- Trying to access response in Pre-request Script
- Using pm.variables.set for cross-request data
- Setting variables in wrong script phase
