Bird
Raised Fist0
Postmantesting~8 mins

Saving responses in Postman - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Saving responses
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
  ├── tests/
  │   └── responseTests.js
  ├── scripts/
  │   └── saveResponse.js
  ├── reports/
  │   └── testResults.json
  └── README.md
  
Test Framework Layers in Postman
  • Collections: Group of API requests organized by feature or endpoint.
  • Environments: Variables for different setups like dev, staging, prod.
  • Tests: Scripts written in JavaScript to validate API responses.
  • Pre-request Scripts: Scripts that run before requests to set up data or headers.
  • Utilities/Scripts: Reusable JavaScript code to save responses or process data.
  • Reports: Output files or dashboards showing test results.
Configuration Patterns for Saving Responses
  • Environment Variables: Use environment variables to store dynamic data like tokens or IDs.
  • Scripts to Save Responses: Use test scripts to save parts of the response to variables for later use.
  • File Export: Use Newman CLI with reporters to export test run results and saved responses to files.
  • Collection Runner: Run collections with different environments to test multiple setups.
Test Reporting and CI/CD Integration
  • Use Newman (Postman CLI) to run collections in CI/CD pipelines.
  • Configure reporters like JSON, HTML, or JUnit to generate readable reports.
  • Save response data as part of test logs for debugging and traceability.
  • Integrate with tools like Jenkins, GitHub Actions, or GitLab CI to automate tests and report results.
Best Practices for Saving Responses in Postman Frameworks
  • Always save only necessary parts of the response to environment or collection variables to keep tests clean.
  • Use descriptive variable names to make scripts easy to understand.
  • Keep test scripts simple and focused on one assertion or save action at a time.
  • Use environment files to separate data from test logic for easy maintenance.
  • Regularly export and back up collections and environments to avoid data loss.
Self Check Question

Where in this folder structure would you add a new script to save a specific API response field for reuse in later requests?

Key Result
Organize Postman tests with collections, environments, scripts, and use test scripts to save API responses for reuse.

Practice

(1/5)
1. What is the main purpose of saving responses in Postman?
easy
A. To speed up the API server
B. To delete old API requests automatically
C. To keep track of API outputs for later use
D. To change the API endpoint URL

Solution

  1. Step 1: Understand the role of saving responses

    Saving responses allows testers to keep the output data from API calls for future reference or validation.
  2. Step 2: Identify the correct purpose

    Among the options, only keeping track of API outputs matches the purpose of saving responses.
  3. Final Answer:

    To keep track of API outputs for later use -> Option C
  4. Quick Check:

    Saving responses = keep API outputs [OK]
Hint: Saving responses means storing API outputs for reuse [OK]
Common Mistakes:
  • Confusing saving responses with deleting requests
  • Thinking it speeds up the server
  • Assuming it changes API URLs
2. Which Postman script command is used to save a value from a response into an environment variable?
easy
A. pm.response.save()
B. pm.environment.set()
C. pm.request.store()
D. pm.variable.get()

Solution

  1. Step 1: Recall Postman scripting commands

    To save data into environment variables, Postman uses the command pm.environment.set(variableName, value).
  2. Step 2: Match the command to the options

    Only pm.environment.set() correctly saves a value into an environment variable.
  3. Final Answer:

    pm.environment.set() -> Option B
  4. Quick Check:

    Save to environment = pm.environment.set() [OK]
Hint: Use pm.environment.set() to save response data [OK]
Common Mistakes:
  • Using pm.response.save() which does not exist
  • Confusing get() with set()
  • Trying to save with pm.request.store() which is invalid
3. Given this Postman test script, what will be the value saved in the environment variable 'userId' if the response JSON is {"id": 42, "name": "Alice"}?
let jsonData = pm.response.json();
pm.environment.set('userId', jsonData.id);
medium
A. 42
B. null
C. undefined
D. "Alice"

Solution

  1. Step 1: Parse the response JSON

    The response JSON has an "id" field with value 42 and a "name" field with "Alice".
  2. Step 2: Check the script saving the value

    The script saves jsonData.id into 'userId', so it saves 42.
  3. Final Answer:

    42 -> Option A
  4. Quick Check:

    jsonData.id = 42 [OK]
Hint: jsonData.id saves the number 42 from response [OK]
Common Mistakes:
  • Saving the name instead of id
  • Assuming undefined if JSON parsing fails
  • Confusing string and number values
4. You wrote this test script to save a token from response but it does not save correctly:
let jsonData = pm.response.json();
pm.environment.set('token', jsonData.token);
What is a likely reason the token is not saved?
medium
A. The response does not contain a 'token' field
B. pm.environment.set() is not a valid function
C. You must use pm.response.save() instead
D. The variable name 'token' is reserved

Solution

  1. Step 1: Check the response JSON fields

    If the response JSON does not have a 'token' field, jsonData.token will be undefined.
  2. Step 2: Understand saving undefined values

    Saving undefined means the environment variable 'token' will not be set correctly.
  3. Final Answer:

    The response does not contain a 'token' field -> Option A
  4. Quick Check:

    Missing field = no saved value [OK]
Hint: Check response fields before saving variables [OK]
Common Mistakes:
  • Thinking pm.environment.set() is invalid
  • Using non-existent pm.response.save()
  • Assuming variable names are reserved
5. You want to save the 'sessionId' from a nested JSON response:
{
  "user": {
    "id": 10,
    "session": {
      "sessionId": "abc123"
    }
  }
}
Which script correctly saves 'sessionId' into an environment variable?
hard
A. let jsonData = pm.response.json(); pm.environment.set('sessionId', jsonData.user.session['id']);
B. let jsonData = pm.response.json(); pm.environment.set('sessionId', jsonData.sessionId);
C. let jsonData = pm.response.json(); pm.environment.set('sessionId', jsonData.user.sessionId);
D. let jsonData = pm.response.json(); pm.environment.set('sessionId', jsonData.user.session.sessionId);

Solution

  1. Step 1: Analyze the JSON structure

    The 'sessionId' is inside user > session > sessionId.
  2. Step 2: Match the correct path in script

    Only jsonData.user.session.sessionId correctly accesses the nested 'sessionId'.
  3. Final Answer:

    let jsonData = pm.response.json(); pm.environment.set('sessionId', jsonData.user.session.sessionId); -> Option D
  4. Quick Check:

    Nested access = jsonData.user.session.sessionId [OK]
Hint: Use full path for nested JSON fields [OK]
Common Mistakes:
  • Accessing sessionId directly from jsonData
  • Using wrong nested keys
  • Confusing sessionId with user id
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