Bird
Raised Fist0
Postmantesting~20 mins

Status code assertion in Postman - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Status Code Assertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
assertion
intermediate
2:00remaining
Check for successful status code 200
You want to write a Postman test to verify the response status code is exactly 200. Which code snippet correctly asserts this?
Apm.test('Status code is 200', () => { pm.response.statusCode(200); });
Bpm.test('Status code is 200', () => { pm.response.to.be.status(200); });
Cpm.test('Status code is 200', () => { pm.response.status === 200; });
Dpm.test('Status code is 200', () => { pm.response.to.have.status(200); });
Attempts:
2 left
💡 Hint
Use the Postman built-in assertion syntax for status codes.
assertion
intermediate
2:00remaining
Assert status code is in 2xx range
Which Postman test code correctly asserts that the response status code is any 2xx success code?
Apm.test('Status code is 2xx', () => { pm.expect(pm.response.code).to.be.within(200, 299); });
Bpm.test('Status code is 2xx', () => { pm.response.to.have.status(2xx); });
Cpm.test('Status code is 2xx', () => { pm.expect(pm.response.status).to.be.above(199).and.below(300); });
Dpm.test('Status code is 2xx', () => { pm.response.statusCode >= 200 && pm.response.statusCode < 300; });
Attempts:
2 left
💡 Hint
Use numeric range assertions with pm.expect.
Predict Output
advanced
2:00remaining
Identify the test result for status code assertion
Given this Postman test code and a response with status code 404, what will be the test result?
Postman
pm.test('Status code is 200', () => { pm.response.to.have.status(200); });
ATest fails because the response status is 404, not 200.
BTest passes because 404 is a valid HTTP status code.
CTest throws a runtime error due to invalid assertion syntax.
DTest is skipped because status code assertions only run on 2xx codes.
Attempts:
2 left
💡 Hint
The assertion expects exactly 200 but response is 404.
🔧 Debug
advanced
2:00remaining
Find the error in this status code assertion
This Postman test code is intended to check for status 201 but it does not work as expected. What is the error?
Postman
pm.test('Status code is 201', () => { pm.response.to.have.status == 201; });
AThe status code 201 is invalid for HTTP responses.
BUsing '==' instead of calling the function causes no assertion to run.
Cpm.response.to.have.status requires a string, not a number.
DThe test should use pm.expect instead of pm.response.
Attempts:
2 left
💡 Hint
Check the syntax for calling assertion methods.
🧠 Conceptual
expert
2:00remaining
Understanding status code assertion behavior in Postman
Which statement best describes how Postman handles status code assertions in tests?
APostman automatically retries requests if status code assertions fail.
BStatus code assertions in Postman only check if the code is a string, not a number.
CPostman assertions for status codes use Chai.js syntax and fail the test if the assertion is false.
DPostman ignores status code assertions if the response body is empty.
Attempts:
2 left
💡 Hint
Think about how assertion libraries work in Postman tests.

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