Bird
Raised Fist0
Postmantesting~5 mins

Status codes reading in Postman

Choose your learning style10 modes available
Introduction

Status codes tell us if a web request worked or not. They help us understand the result quickly.

Checking if a website page loads successfully.
Verifying if a login API accepted the username and password.
Confirming if data was saved correctly after sending it to a server.
Detecting if a requested resource was not found.
Testing if a server is down or unreachable.
Syntax
Postman
pm.response.code

This code gets the numeric status code from the response.

Common codes: 200 means OK, 404 means Not Found, 500 means Server Error.

Examples
This test checks if the response status code is exactly 200 (OK).
Postman
pm.test("Status code is 200", () => {
    pm.response.to.have.status(200);
});
This code prints a message if the status code is 404 (Not Found).
Postman
if(pm.response.code === 404) {
    console.log("Page not found");
}
This test checks if the status code is any success code between 200 and 299.
Postman
pm.test("Status code is success", () => {
    pm.expect(pm.response.code).to.be.within(200, 299);
});
Sample Program

This Postman test script checks if the response status is 200. It also logs a message if the status is 404.

Postman
pm.test("Check if response status is 200", () => {
    pm.response.to.have.status(200);
});

pm.test("Log message for 404 status", () => {
    if(pm.response.code === 404) {
        console.log("Resource not found");
    }
});
OutputSuccess
Important Notes

Always check status codes before reading response data.

Use status codes to decide next test steps or error handling.

Summary

Status codes show if a request worked or failed.

Use pm.response.code to read the status code in Postman.

Write tests to check for expected status codes.

Practice

(1/5)
1. What does the status code 200 usually mean in Postman response testing?
easy
A. The request was successful and the server returned the expected data.
B. The requested resource was not found on the server.
C. The server encountered an internal error.
D. The client is not authorized to access the resource.

Solution

  1. Step 1: Understand HTTP status codes

    Status code 200 means OK, indicating success in HTTP responses.
  2. Step 2: Interpret 200 in Postman context

    In Postman, a 200 status means the request succeeded and data was returned.
  3. Final Answer:

    The request was successful and the server returned the expected data. -> Option A
  4. Quick Check:

    Status code 200 = Success [OK]
Hint: 200 means success, like a green light [OK]
Common Mistakes:
  • Confusing 200 with error codes like 404 or 500
  • Thinking 200 means unauthorized access
  • Assuming 200 means no data returned
2. Which of the following is the correct way to check for a 404 status code in a Postman test script?
easy
A. pm.test('Status is 404', () => pm.response.code === 404);"
B. pm.test('Status is 404', () => pm.response.code == 404);
C. pm.test('Status is 404', () => pm.response.code === 404);
D. pm.test('Status is 404', () => pm.response.code = 404);

Solution

  1. Step 1: Understand Postman test syntax

    Postman tests use pm.test with a callback function containing an assertion.
  2. Step 2: Use correct assertion method

    While pm.expect(pm.response.code).to.eql(404) is preferred, the direct comparison requires strict ===, proper arrow function syntax, and no extra characters or assignment operators.
  3. Final Answer:

    pm.test('Status is 404', () => pm.response.code === 404); -> Option C
  4. Quick Check:

    Use triple equals and arrow function in pm.test [OK]
Hint: Use arrow function and triple equals for status check [OK]
Common Mistakes:
  • Using single equals (=) instead of comparison
  • Missing arrow function syntax
  • Using double quotes inconsistently
3. Given this Postman test script:
pm.test('Check status', () => {
  pm.expect(pm.response.code).to.be.oneOf([200, 201]);
});

What will happen if the response status code is 201?
medium
A. The test will fail because 201 is not in the list.
B. The test will be skipped automatically.
C. The test will throw a syntax error.
D. The test will pass because 201 is included in the allowed codes.

Solution

  1. Step 1: Understand the oneOf assertion

    pm.expect(...).to.be.oneOf([200, 201]) passes if the response code matches any value in the array.
  2. Step 2: Check if 201 is in the array

    201 is included in [200, 201], so the assertion passes.
  3. Final Answer:

    The test will pass because 201 is included in the allowed codes. -> Option D
  4. Quick Check:

    201 in [200, 201] = pass [OK]
Hint: oneOf passes if code matches any listed status [OK]
Common Mistakes:
  • Thinking 201 is not allowed
  • Confusing oneOf with equals
  • Assuming syntax error from array
4. You wrote this Postman test:
pm.test('Status is 200', () => {
  pm.expect(pm.response.code = 200);
});

Why does this test always pass even if the response code is not 200?
medium
A. Because the single equals sign assigns 200 instead of comparing, so assertion is always true.
B. Because pm.response.code is read-only and cannot be changed.
C. Because Postman ignores the test function if syntax is wrong.
D. Because the test is missing a semicolon.

Solution

  1. Step 1: Identify the use of single equals in assertion

    The code uses pm.response.code = 200, which is assignment, not comparison.
  2. Step 2: Understand effect of assignment in assertion

    Assignment returns 200 (truthy), so pm.expect always receives a truthy value, making the test pass regardless of actual status.
  3. Final Answer:

    Because the single equals sign assigns 200 instead of comparing, so assertion is always true. -> Option A
  4. Quick Check:

    Use '===' for comparison, not '=' [OK]
Hint: Use triple equals (===) for comparison, not single equals (=) [OK]
Common Mistakes:
  • Confusing assignment (=) with comparison (===)
  • Ignoring that assignment returns a truthy value
  • Assuming syntax error instead of logic error
5. You want to write a Postman test that passes only if the response status code is between 200 and 299 inclusive. Which code snippet correctly implements this?
hard
A. pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.equal(2));
B. pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.be.within(200, 299));
C. pm.test('Status is 2xx', () => pm.expect(pm.response.code >= 200 && pm.response.code <= 299));
D. pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.be.oneOf([200, 201, 202, 203, 204, 205]));

Solution

  1. Step 1: Identify the correct assertion for range check

    pm.expect(...).to.be.within(min, max) checks if value is between min and max inclusive.
  2. Step 2: Evaluate each option

    pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.be.within(200, 299)); uses .within(200, 299) correctly. pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.be.oneOf([200, 201, 202, 203, 204, 205])); lists only some codes, incomplete for full 2xx range. pm.test('Status is 2xx', () => pm.expect(pm.response.code >= 200 && pm.response.code <= 299)); uses invalid syntax inside pm.expect. pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.equal(2)); checks for exact 2, which is wrong.
  3. Final Answer:

    pm.test('Status is 2xx', () => pm.expect(pm.response.code).to.be.within(200, 299)); -> Option B
  4. Quick Check:

    Use .within(200, 299) for range checks [OK]
Hint: Use .within(200, 299) to check 2xx status codes [OK]
Common Mistakes:
  • Listing all codes instead of using range
  • Using invalid boolean inside pm.expect
  • Checking for exact number 2 instead of range
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