Bird
Raised Fist0
Postmantesting~5 mins

Status code assertion in Postman - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is a status code assertion in API testing?
It is a check to confirm that the API response returns the expected HTTP status code, like 200 for success or 404 for not found.
Click to reveal answer
beginner
How do you write a status code assertion in Postman test scripts?
Use pm.response.to.have.status(expectedCode), for example: pm.response.to.have.status(200) checks if the response status is 200.
Click to reveal answer
beginner
Why is checking the status code important in API testing?
Because it quickly tells if the request was successful, failed, or if there was an error, helping to catch problems early.
Click to reveal answer
beginner
What does a 404 status code mean in API response?
It means the requested resource was not found on the server.
Click to reveal answer
beginner
Show a simple Postman test script to assert the status code is 201.
pm.test('Status code is 201', function () { pm.response.to.have.status(201); });
Click to reveal answer
Which Postman method checks the response status code?
Apm.response.to.have.status()
Bpm.request.to.have.status()
Cpm.response.statusCode()
Dpm.test.status()
What does a 200 status code usually mean?
ARequest successful
BServer error
CResource not found
DUnauthorized access
If you want to check that the API response status is 404, which assertion is correct?
Apm.response.to.have.status(200)
Bpm.response.to.have.status(201)
Cpm.response.to.have.status(500)
Dpm.response.to.have.status(404)
What happens if the status code assertion fails in Postman?
ATest passes silently
BTest fails and shows an error
CPostman crashes
DStatus code changes automatically
Which status code indicates a successful resource creation?
A200
B400
C201
D404
Explain how to write a status code assertion in Postman and why it is useful.
Think about the Postman test script syntax and the purpose of status codes.
You got /4 concepts.
    List common HTTP status codes you might assert in API testing and what they mean.
    Focus on codes that indicate success, client error, and server error.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the status code 200 usually mean in a Postman response?
      easy
      A. The request was successful
      B. The server could not find the requested resource
      C. There was a server error
      D. The request was unauthorized

      Solution

      1. Step 1: Understand HTTP status codes

        Status code 200 means the request was processed successfully by the server.
      2. Step 2: Match code to meaning

        200 is the standard code for success, unlike 404 (not found) or 500 (server error).
      3. Final Answer:

        The request was successful -> Option A
      4. Quick Check:

        Status 200 = Success [OK]
      Hint: 200 means success, always check for it first [OK]
      Common Mistakes:
      • Confusing 200 with error codes like 404 or 500
      • Thinking 200 means unauthorized access
      • Assuming 200 means redirect
      2. Which of the following is the correct syntax to assert a status code of 404 in a Postman test script?
      easy
      A. pm.response.assert.status(404);
      B. pm.response.to.have.status(404);
      C. pm.response.status(404);
      D. pm.test.status(404);

      Solution

      1. Step 1: Recall Postman assertion syntax

        The correct way to check status code is using pm.response.to.have.status(code).
      2. Step 2: Verify each option

        Only pm.response.to.have.status(404); matches the correct syntax exactly.
      3. Final Answer:

        pm.response.to.have.status(404); -> Option B
      4. Quick Check:

        Use pm.response.to.have.status() [OK]
      Hint: Use pm.response.to.have.status(code) for status checks [OK]
      Common Mistakes:
      • Omitting 'to.have' in the assertion
      • Using pm.response.status() which is invalid
      • Trying pm.test.status() which does not exist
      3. Given this Postman test code:
      pm.test('Check status', () => {
        pm.response.to.have.status(201);
      });

      What will be the test result if the server responds with status code 200?
      medium
      A. Test will pass
      B. Test will be skipped
      C. Test will error out
      D. Test will fail

      Solution

      1. Step 1: Understand the assertion

        The test expects status code 201 (Created) exactly.
      2. Step 2: Compare actual response code

        The server returned 200 (OK), which does not match 201, so assertion fails.
      3. Final Answer:

        Test will fail -> Option D
      4. Quick Check:

        Expected 201 but got 200 = Fail [OK]
      Hint: Exact status code must match to pass assertion [OK]
      Common Mistakes:
      • Assuming 200 and 201 are interchangeable
      • Thinking test errors instead of fails
      • Believing test skips on mismatch
      4. You wrote this Postman test:
      pm.test('Status is 200', () => {
        pm.response.to.have.status = 200;
      });

      What is wrong with this test?
      medium
      A. Status code 200 is invalid
      B. Missing semicolon at the end
      C. Incorrect use of assignment instead of function call
      D. pm.test syntax is wrong

      Solution

      1. Step 1: Check assertion syntax

        The code uses = which assigns a value instead of calling status(200) as a function.
      2. Step 2: Identify correct usage

        The correct syntax is pm.response.to.have.status(200); to assert status code.
      3. Final Answer:

        Incorrect use of assignment instead of function call -> Option C
      4. Quick Check:

        Use parentheses for function calls, not assignment [OK]
      Hint: Use parentheses () to call status function, not = [OK]
      Common Mistakes:
      • Using = instead of calling status()
      • Ignoring syntax errors thinking test runs
      • Confusing semicolon importance
      5. You want to write a Postman test that passes only if the response status code is either 200 or 201. Which code snippet correctly asserts this?
      hard
      A. pm.test('Status is 200 or 201', () => { pm.expect(pm.response.code === 200 || pm.response.code === 201).to.be.true; });
      B. pm.test('Status is 200 or 201', () => { pm.response.to.have.status(200 || 201); });
      C. pm.test('Status is 200 or 201', () => { pm.response.to.have.status(200) || pm.response.to.have.status(201); });
      D. pm.test('Status is 200 or 201', () => { pm.response.to.have.status([200, 201]); });

      Solution

      1. Step 1: Understand how to check multiple status codes

        Postman does not support passing multiple codes directly to status().
      2. Step 2: Use logical OR with pm.expect

        pm.test('Status is 200 or 201', () => { pm.expect(pm.response.code === 200 || pm.response.code === 201).to.be.true; }); uses pm.expect with a boolean expression checking if code is 200 or 201, which is correct.
      3. Final Answer:

        pm.test('Status is 200 or 201', () => { pm.expect(pm.response.code === 200 || pm.response.code === 201).to.be.true; }); -> Option A
      4. Quick Check:

        Use pm.expect with OR condition for multiple codes [OK]
      Hint: Use pm.expect with OR to check multiple status codes [OK]
      Common Mistakes:
      • Passing multiple codes directly to status()
      • Using logical OR outside pm.expect
      • Assuming status() accepts arrays