Bird
Raised Fist0
Postmantesting~5 mins

Why Postman supports non-functional testing

Choose your learning style10 modes available
Introduction

Postman helps check how well an API works under different conditions, not just if it gives the right answers. This is called non-functional testing.

When you want to see how fast an API responds under heavy use.
When you need to check if an API stays stable over time.
When you want to test how an API handles many users at once.
When you want to verify the security of an API by testing access controls.
When you want to ensure the API works well on different devices or networks.
Syntax
Postman
Postman uses collections and environments to create tests.
You can write scripts in JavaScript to check response time, status, and more.
You write tests in the 'Tests' tab using JavaScript.
You can run collections repeatedly to simulate load or check stability.
Examples
This test checks if the API responds quickly, which is a non-functional aspect.
Postman
// Check if response time is less than 200ms
pm.test('Response time is fast', () => {
  pm.expect(pm.response.responseTime).to.be.below(200);
});
This test checks if the API returns the correct status code, a functional test but often combined with non-functional checks.
Postman
// Check if response status is 200
pm.test('Status is 200', () => {
  pm.response.to.have.status(200);
});
Sample Program

This Postman test script checks two things: the API responds quickly and returns a success status.

Postman
// Test to check response time and status
pm.test('Response time is under 300ms', () => {
  pm.expect(pm.response.responseTime).to.be.below(300);
});
pm.test('Status code is 200', () => {
  pm.response.to.have.status(200);
});
OutputSuccess
Important Notes

Non-functional tests help ensure the API is reliable and user-friendly.

Postman's scripting lets you automate these checks easily.

Summary

Postman supports non-functional testing to check API speed, stability, and security.

You write simple JavaScript tests to measure these qualities.

Running these tests helps catch problems before users do.

Practice

(1/5)
1. Why does Postman support non-functional testing like checking API speed and stability?
easy
A. To write complex backend code
B. To only test the API's user interface design
C. To replace functional testing completely
D. To ensure APIs work well under different conditions and meet quality standards

Solution

  1. Step 1: Understand non-functional testing purpose

    Non-functional testing checks qualities like speed, stability, and security, not just if the API works.
  2. Step 2: Relate to Postman's role

    Postman helps test these qualities to ensure APIs perform well and are reliable before users use them.
  3. Final Answer:

    To ensure APIs work well under different conditions and meet quality standards -> Option D
  4. Quick Check:

    Non-functional testing = Quality checks [OK]
Hint: Non-functional means quality, not just function [OK]
Common Mistakes:
  • Confusing non-functional with functional testing
  • Thinking Postman only tests UI
  • Believing Postman replaces all testing
2. Which JavaScript code snippet correctly measures API response time in Postman tests?
easy
A. pm.test('Response time is less than 200ms', () => pm.expect(pm.response.responseTime).to.be.below(200));
B. pm.test('Response time check', () => pm.response.responseTime < 200);
C. pm.expect(pm.response.time).to.be.above(200);
D. pm.test('Check time', () => pm.responseTime < 200);

Solution

  1. Step 1: Identify correct Postman test syntax

    Postman tests use pm.test with a description and a function containing assertions using pm.expect.
  2. Step 2: Check property and assertion correctness

    The correct property for response time is pm.response.responseTime, and to check below 200ms use .to.be.below(200).
  3. Final Answer:

    pm.test('Response time is less than 200ms', () => pm.expect(pm.response.responseTime).to.be.below(200)); -> Option A
  4. Quick Check:

    Correct syntax + property = pm.test('Response time is less than 200ms', () => pm.expect(pm.response.responseTime).to.be.below(200)); [OK]
Hint: Use pm.test with pm.expect and correct property [OK]
Common Mistakes:
  • Using wrong property names like pm.response.time
  • Missing pm.test wrapper
  • Incorrect assertion methods
3. Given this Postman test code, what will be the test result if responseTime is 150ms?
pm.test('API is fast', () => {
  pm.expect(pm.response.responseTime).to.be.below(200);
});
medium
A. Test fails because 150ms is not below 200ms
B. Test throws an error due to syntax
C. Test passes because 150ms is below 200ms
D. Test is skipped automatically

Solution

  1. Step 1: Understand the assertion condition

    The test checks if responseTime is below 200ms using .to.be.below(200).
  2. Step 2: Compare given responseTime value

    150ms is less than 200ms, so the condition is true and the test passes.
  3. Final Answer:

    Test passes because 150ms is below 200ms -> Option C
  4. Quick Check:

    150 < 200 = Pass [OK]
Hint: Check if value meets condition literally [OK]
Common Mistakes:
  • Misreading 'below' as 'above'
  • Assuming syntax error without checking code
  • Thinking test skips automatically
4. Identify the error in this Postman test code for checking API security headers:
pm.test('Security headers present', () => {
  pm.expect(pm.response.headers.has('Content-Security-Policy')).to.equal(true
});
medium
A. Missing closing parenthesis in pm.expect statement
B. Incorrect header name used
C. pm.response.headers.has is not a function
D. pm.test requires a callback function

Solution

  1. Step 1: Check syntax of pm.expect statement

    The pm.expect call is missing a closing parenthesis after .to.equal(true).
  2. Step 2: Verify other parts

    Header name and pm.response.headers.has function are correct, and pm.test has a callback function.
  3. Final Answer:

    Missing closing parenthesis in pm.expect statement -> Option A
  4. Quick Check:

    Syntax error = Missing parenthesis [OK]
Hint: Count parentheses carefully in assertions [OK]
Common Mistakes:
  • Assuming wrong header name
  • Thinking pm.response.headers.has doesn't exist
  • Ignoring missing parenthesis
5. You want to use Postman to check API stability by running a test multiple times and measuring if response times stay below 300ms consistently. Which approach best fits this non-functional testing goal?
hard
A. Manually send one request and check response time once
B. Use Postman Collection Runner to run the test repeatedly and write a test script to assert responseTime < 300ms each time
C. Write a test that only checks if status code is 200
D. Use Postman to test only API functionality, not response times

Solution

  1. Step 1: Understand stability testing requirements

    Stability means consistent performance over multiple runs, so repeated tests are needed.
  2. Step 2: Choose Postman feature and test script

    Collection Runner allows running tests multiple times; writing a script to check responseTime < 300ms each time fits the goal.
  3. Final Answer:

    Use Postman Collection Runner to run the test repeatedly and write a test script to assert responseTime < 300ms each time -> Option B
  4. Quick Check:

    Repeated tests + response time check = Use Postman Collection Runner to run the test repeatedly and write a test script to assert responseTime < 300ms each time [OK]
Hint: Use Collection Runner for repeated tests [OK]
Common Mistakes:
  • Testing only once for stability
  • Ignoring response time in tests
  • Confusing functional with non-functional testing
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