Bird
Raised Fist0
Postmantesting~15 mins

Defining mock responses in Postman - Build an Automation Script

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Create and verify a mock response for a GET user API
Preconditions (2)
Step 1: Open the Postman app and select the collection containing GET /user
Step 2: Click on the 'Mocks' tab in the collection view
Step 3: Click 'Create a mock server'
Step 4: Set the mock server name to 'User API Mock'
Step 5: Select the GET /user request to mock
Step 6: Define the mock response with status 200 and JSON body: {"id":1,"name":"John Doe"}
Step 7: Save the mock server
Step 8: Send a GET request to the mock server URL for /user
Step 9: Verify the response status is 200
Step 10: Verify the response body matches {"id":1,"name":"John Doe"}
✅ Expected Result: The mock server returns the defined JSON response with status 200 when GET /user is called
Automation Requirements - Postman test scripts
Assertions Needed:
Response status code is 200
Response body JSON matches the mock data
Best Practices:
Use Postman built-in pm.test and pm.response APIs for assertions
Keep mock response JSON simple and clear
Use environment variables for mock server URL
Validate both status code and response body
Automated Solution
Postman
pm.test('Status code is 200', () => {
    pm.response.to.have.status(200);
});

pm.test('Response body matches mock data', () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.eql({ id: 1, name: 'John Doe' });
});

The first test checks that the response status code is exactly 200, which means success.

The second test parses the response body as JSON and compares it to the expected mock object with id 1 and name 'John Doe'.

Using pm.test groups assertions with clear names, making test reports easy to understand.

This script runs automatically after sending the request to the mock server, verifying the mock response is correct.

Common Mistakes - 3 Pitfalls
Not verifying the response status code
Comparing response body as a string instead of JSON object
Hardcoding mock server URL in tests
Bonus Challenge

Now add data-driven testing by defining three different mock responses for GET /user with different user data and verify each response.

Show Hint

Practice

(1/5)
1. What is the main purpose of defining mock responses in Postman?
easy
A. To permanently replace the real API endpoints
B. To speed up the actual server response time
C. To encrypt the API responses for security
D. To simulate server replies for testing without a real server

Solution

  1. Step 1: Understand mock response purpose

    Mock responses simulate server replies so you can test your app without needing the real server ready.
  2. Step 2: Eliminate incorrect options

    The incorrect options describe unrelated or incorrect uses: permanently replacing the real API endpoints, speeding up the actual server response time, or encrypting the API responses for security.
  3. Final Answer:

    To simulate server replies for testing without a real server -> Option D
  4. Quick Check:

    Mock responses = simulate server replies [OK]
Hint: Mocks simulate server replies for testing without real servers [OK]
Common Mistakes:
  • Thinking mocks speed up real servers
  • Confusing mocks with permanent API changes
  • Assuming mocks encrypt data
2. Which of the following is the correct way to define a mock response in Postman?
easy
A. Use the Postman console to manually type responses each time
B. Write JavaScript code in the request body to simulate response
C. Create a mock server and add example responses to requests
D. Change the API URL to a mock URL without setting up a server

Solution

  1. Step 1: Recall how mocks are defined in Postman

    Postman lets you create a mock server and attach example responses to requests to simulate replies.
  2. Step 2: Check other options for correctness

    Write JavaScript code in the request body to simulate response is incorrect because JavaScript in request body doesn't define mock responses. Use the Postman console to manually type responses each time is manual and not practical. Change the API URL to a mock URL without setting up a server is incomplete without mock server setup.
  3. Final Answer:

    Create a mock server and add example responses to requests -> Option C
  4. Quick Check:

    Mock response setup = mock server + examples [OK]
Hint: Mocks need a server plus example responses, not code in body [OK]
Common Mistakes:
  • Trying to write mock logic inside request body
  • Typing responses manually each time
  • Skipping mock server creation
3. Given a mock server with an example response for GET /users returning status 200 and body {"name": "Alice"}, what will Postman return when you send a GET request to /users on this mock server?
medium
A. Status 200 with body {"name": "Alice"}
B. Status 404 with empty body
C. Status 500 with error message
D. No response, request times out

Solution

  1. Step 1: Understand mock server behavior

    When a mock server has an example response for a request, it returns that response exactly when the request matches.
  2. Step 2: Match request and response

    The GET /users request matches the example with status 200 and body {"name": "Alice"}, so that response is returned.
  3. Final Answer:

    Status 200 with body {"name": "Alice"} -> Option A
  4. Quick Check:

    Mock returns example response = status 200 + body [OK]
Hint: Mock returns example response matching request path and method [OK]
Common Mistakes:
  • Expecting error or timeout instead of example response
  • Confusing status codes returned by mock
  • Assuming mock returns empty or default response
4. You created a mock server but when sending requests, you get 404 errors. What is the most likely reason?
medium
A. Postman does not support mock servers for GET requests
B. No example response matches the request method and URL
C. Your internet connection is down
D. The mock server URL is misspelled in the request

Solution

  1. Step 1: Analyze 404 error cause in mock servers

    404 means not found. In mocks, this usually means no example response matches the request method and URL.
  2. Step 2: Check other options

    The mock server URL is misspelled in the request could cause errors but 404 specifically means no matching example. Your internet connection is down causes no response, not 404. Postman does not support mock servers for GET requests is false; Postman supports GET mocks.
  3. Final Answer:

    No example response matches the request method and URL -> Option B
  4. Quick Check:

    404 in mock = no matching example response [OK]
Hint: 404 means no matching example response for request [OK]
Common Mistakes:
  • Assuming 404 means internet or URL typo always
  • Thinking Postman mocks don't support GET
  • Ignoring example response matching
5. You want to test how your app handles different user roles using Postman mock responses. Which approach is best to define mock responses for this scenario?
hard
A. Create multiple example responses for the same request with different response bodies and use request headers to select them
B. Create one example response and manually edit it each time you test a different role
C. Use a single example response with all roles combined in one body
D. Change the mock server URL for each user role

Solution

  1. Step 1: Understand testing multiple scenarios with mocks

    To test different user roles, you need different responses for the same request that vary by role.
  2. Step 2: Use multiple examples with header matching

    Postman allows multiple example responses for one request. You can use request headers to select which example to return, simulating different roles.
  3. Step 3: Eliminate other options

    Create one example response and manually edit it each time you test a different role is manual and inefficient. Use a single example response with all roles combined in one body mixes roles confusingly. Change the mock server URL for each user role is unnecessary and complex.
  4. Final Answer:

    Create multiple example responses for the same request with different response bodies and use request headers to select them -> Option A
  5. Quick Check:

    Multiple examples + headers = role-based mock responses [OK]
Hint: Use multiple examples with headers to simulate roles [OK]
Common Mistakes:
  • Editing one example repeatedly
  • Combining all roles in one response
  • Changing mock server URL unnecessarily