Rate limit testing checks if a system stops too many requests in a short time. This helps keep the system safe and fair for everyone.
When you want to protect an API from too many requests that can slow it down.
When you want to make sure users cannot overload a service by sending too many requests quickly.
When you want to test if the system shows a proper error message after too many requests.
When you want to check if the system blocks requests after a limit is reached.
When you want to verify that the system resets the limit after some time.
Syntax
Postman
1. Create a new Postman collection.
2. Add a request to the collection with the API endpoint.
3. Use the 'Pre-request Script' tab to write a loop or use Postman Runner to send multiple requests.
4. Check the response status code and body for rate limit messages (e.g., 429 Too Many Requests).
5. Use tests tab to add assertions like pm.response.code === 429.
Postman does not have built-in rate limit testing, so you simulate it by sending many requests quickly.
Look for HTTP status code 429 which means 'Too Many Requests'.
Examples
This script sends 5 requests before the main request runs. It helps simulate multiple calls quickly.
Postman
// Pre-request Script example to send 5 requests
for (let i = 0; i < 5; i++) {
pm.sendRequest(pm.request, function (err, res) {
console.log(`Request ${i + 1} status: ${res.status}`);
});
}
This test checks if the response is either success (200) or rate limited (429). If rate limited, it checks the message.
Postman
// Test script to check rate limit response
pm.test('Check if rate limited', function () {
pm.expect(pm.response.code).to.be.oneOf([200, 429]);
if(pm.response.code === 429) {
pm.expect(pm.response.json().message).to.include('rate limit');
}
});
Sample Program
This Postman test sends 10 quick requests to the API. It checks if the server allows the requests or blocks them with a rate limit error.
Postman
POST https://api.example.com/data
// Pre-request Script
for (let i = 0; i < 10; i++) {
pm.sendRequest(pm.request, function (err, res) {
console.log(`Request ${i + 1} status: ${res.status}`);
});
}
// Tests
pm.test('Status code is 200 or 429', function () {
pm.expect(pm.response.code).to.be.oneOf([200, 429]);
});
pm.test('If rate limited, message contains "rate limit"', function () {
if(pm.response.code === 429) {
pm.expect(pm.response.json().message.toLowerCase()).to.include('rate limit');
}
});
OutputSuccess
Important Notes
Rate limit errors usually return HTTP status 429.
Use Postman Runner to send many requests easily.
Check API documentation for exact rate limit rules.
Summary
Rate limit testing ensures the system blocks too many requests.
Use Postman to send multiple requests quickly and check responses.
Look for status code 429 and proper error messages.
Practice
(1/5)
1. What is the main purpose of rate limit testing in Postman?
easy
A. To validate user input forms
B. To verify the UI layout of the application
C. To test database connection speed
D. To check if the system blocks too many requests in a short time
Solution
Step 1: Understand rate limit testing goal
Rate limit testing checks if the system prevents too many requests sent quickly.
Step 2: Match purpose with options
Only To check if the system blocks too many requests in a short time describes blocking too many requests, which is the goal of rate limit testing.
Final Answer:
To check if the system blocks too many requests in a short time -> Option D
Confusing rate limit testing with UI or database testing
Thinking it tests input validation
Ignoring the request frequency aspect
2. Which Postman feature helps simulate multiple rapid requests for rate limit testing?
easy
A. Collection Runner
B. Monitor Scheduler
C. Environment Variables
D. Pre-request Script Editor
Solution
Step 1: Identify features for sending multiple requests
Collection Runner allows running a set of requests repeatedly and quickly.
Step 2: Compare with other options
Monitor Scheduler runs tests on schedule, Environment Variables store data, Pre-request Script Editor runs scripts before requests. Only Collection Runner sends many requests fast.
Final Answer:
Collection Runner -> Option A
Quick Check:
Multiple rapid requests = Collection Runner [OK]
Hint: Use Collection Runner to send many requests fast [OK]
Common Mistakes:
Choosing Monitor Scheduler which runs slower
Confusing environment variables with request sending
Thinking pre-request scripts send requests
3. In Postman, you send 10 requests quickly to an API with a rate limit of 5 requests per minute. What status code do you expect for the 6th request?
medium
A. 200 OK
B. 429 Too Many Requests
C. 404 Not Found
D. 500 Internal Server Error
Solution
Step 1: Understand API rate limit behavior
The API allows only 5 requests per minute; requests beyond that get blocked.
Step 2: Identify expected status code for blocked requests
HTTP status 429 means "Too Many Requests", used when rate limit is exceeded.
Final Answer:
429 Too Many Requests -> Option B
Quick Check:
Exceeded requests = 429 status [OK]
Hint: 429 means rate limit exceeded [OK]
Common Mistakes:
Expecting 200 OK for all requests
Confusing 404 with rate limit errors
Thinking server error 500 means rate limit
4. You wrote a Postman test script to check for status 429 after rapid requests but it always passes even when the server returns 200. What is the likely error?
medium
A. Checking 'pm.response.code' but comparing with string '429' instead of number 429
B. Using 'pm.response.status' but comparing with number 429 instead of string '429 Too Many Requests'
C. Not sending enough requests to exceed the rate limit
D. Using 'pm.response.code' instead of 'pm.response.status'
Solution
Step 1: Understand Postman response code type
pm.response.code returns a number, so comparisons must be with numbers, not strings.
Step 2: Identify comparison mistake
Comparing pm.response.code (number) with string '429' always fails, so test passes incorrectly.
Final Answer:
Checking 'pm.response.code' but comparing with string '429' instead of number 429 -> Option A
Quick Check:
Compare status code as number, not string [OK]
Hint: Compare status codes as numbers, not strings [OK]
Common Mistakes:
Comparing number with string in assertions
Not sending enough requests to trigger rate limit
Confusing pm.response.code and pm.response.status
5. You want to test an API's rate limit of 10 requests per minute using Postman. Which approach best ensures you detect the limit accurately?
hard
A. Send 10 requests slowly over 2 minutes and check for status 429
B. Send 5 requests spaced 10 seconds apart and check for status 200
C. Send 20 requests rapidly using Collection Runner and check for status 429 after 10th request
To detect rate limit, send more requests than allowed quickly to trigger limit.
Step 2: Evaluate options for detecting limit
Send 20 requests rapidly using Collection Runner and check for status 429 after 10th request sends 20 rapid requests exceeding 10 limit, so status 429 should appear after 10th request. Others send fewer or slower requests, unlikely to trigger limit.
Final Answer:
Send 20 requests rapidly using Collection Runner and check for status 429 after 10th request -> Option C
Quick Check:
Exceed limit quickly to detect 429 [OK]
Hint: Send more than limit requests fast to catch 429 [OK]
Common Mistakes:
Sending requests too slowly to trigger limit
Sending fewer requests than limit
Checking wrong status codes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.