Testing pagination helps ensure that data is split correctly across pages. It checks that users can see all items without missing or repeating any.
Testing pagination in Postman
GET /items?page=1&limit=10
Use query parameters like page and limit to control pagination.
Check response fields for total items, current page, and links to next/previous pages.
GET /products?page=2&limit=5
GET /users?page=1&limit=20
This Postman test script checks that the pagination response has the correct current page, the number of items does not exceed the limit, total items is positive, and the next page link is present if there are more pages.
// Postman test script to check pagination // Parse JSON response const response = pm.response.json(); // Check current page is 1 pm.test('Current page is 1', () => { pm.expect(response.page).to.eql(1); }); // Check number of items returned is less or equal to limit pm.test('Items count is correct', () => { pm.expect(response.items.length).to.be.at.most(10); }); // Check total items is a positive number pm.test('Total items is positive', () => { pm.expect(response.total).to.be.above(0); }); // Check next page link exists if more pages pm.test('Next page link exists if not last page', () => { if (response.page * response.limit < response.total) { pm.expect(response.next).to.be.a('string').and.not.empty; } else { pm.expect(response.next).to.be.null; } });
Always check both the data and the pagination metadata in the response.
Test edge cases like the first page, last page, and pages beyond the last.
Use Postman environment variables to automate testing multiple pages.
Pagination testing ensures users can navigate through data pages correctly.
Check page number, item count, total items, and navigation links.
Use Postman scripts to automate and validate pagination behavior.
Practice
Solution
Step 1: Understand pagination purpose
Pagination testing ensures users can move through pages and see correct data on each page.Step 2: Identify key verification points
We check page numbers, item counts, and total items to confirm correct navigation.Final Answer:
To verify that users can navigate through pages and see correct data counts -> Option AQuick Check:
Pagination = navigation + correct data [OK]
- Confusing pagination with sorting
- Focusing only on response time
- Ignoring total item count
Solution
Step 1: Access response JSON correctly
Use pm.response.json() to parse the response body as JSON.Step 2: Use correct assertion syntax
pm.expect(...).to.eql(3) checks if the page value equals 3.Final Answer:
pm.test('Page is 3', () => pm.expect(pm.response.json().page).to.eql(3)); -> Option CQuick Check:
Use pm.response.json() + pm.expect() [OK]
- Using undefined variables like response or json
- Accessing pm.response.page directly
- Using to.equal instead of to.eql in Postman
pm.test('Check page and items', () => {
const json = pm.response.json();
pm.expect(json.page).to.eql(2);
pm.expect(json.data.length).to.eql(json.per_page);
pm.expect(json.total).to.be.above(10);
});Solution
Step 1: Check page number assertion
json.page is 2, expected 2, so this passes.Step 2: Check data length equals per_page
json.data.length is 5, json.per_page is 5, so this passes.Step 3: Check total is above 10
json.total is 12, which is above 10, so this passes.Final Answer:
All tests pass -> Option DQuick Check:
All assertions true = pass [OK]
- Assuming total must equal per_page
- Confusing page number with index
- Ignoring data array length
pm.test('Page is 1', () => {
const json = pm.response.json();
pm.expect(json.page).to.equal(1);
});
The response JSON is {"page":1,"per_page":10,"total":50}. What is the likely error?Solution
Step 1: Check assertion method
to.equal and to.eql behave similarly for primitives; this is not the cause.Step 2: Verify response JSON keys
Response has page key with value 1, so JSON access is correct.Step 3: Consider response mismatch
If test fails, likely the actual response page value differs or test runs on wrong response.Final Answer:
The assertion syntax is correct; failure is due to response mismatch -> Option AQuick Check:
Assertion syntax correct; check response data [OK]
- Confusing to.equal and to.eql for primitives
- Assuming JSON parsing failed
- Ignoring actual response content
Solution
Step 1: Calculate last page number
Last page = ceiling of total / per_page = ceil(23/5) = 5.Step 2: Calculate expected items on last page
Items on last page = total % per_page = 23 % 5 = 3 (if 0, use per_page).Step 3: Verify page number and data length
Check json.page equals lastPage and json.data.length equals expected items.Final Answer:
pm.test('Last page check', () => { const json = pm.response.json(); const lastPage = Math.ceil(json.total / json.per_page); pm.expect(json.page).to.eql(lastPage); pm.expect(json.data.length).to.eql(json.total % json.per_page || json.per_page); }); -> Option BQuick Check:
Last page = ceil(total/per_page), items = remainder or per_page [OK]
- Using division without ceiling for last page
- Expecting full per_page items on last page always
- Confusing modulo result with page number
Ready to prove it?
Pass the test and this pattern moves unknown
