Test Overview
This test checks if a delay is correctly applied between two API requests in Postman. It verifies that the second request waits for the specified time before sending using a busy-wait loop in the pre-request script.
This test checks if a delay is correctly applied between two API requests in Postman. It verifies that the second request waits for the specified time before sending using a busy-wait loop in the pre-request script.
pm.test("Delay between requests", function () { const startTime = new Date().getTime(); pm.environment.set("startTime", startTime); }); // In the second request's Pre-request Script: const startTime = parseInt(pm.environment.get("startTime")); const delay = 3000; // 3 seconds delay const targetTime = startTime + delay; console.log(`Target send time: ${targetTime}`); while (new Date().getTime() < targetTime) { // Busy-wait loop to delay request sending } console.log(`Delay applied. Sending request after at least ${delay} ms.`); // In the second request's Tests script: pm.test("Request sent after delay", function () { const responseTime = new Date().getTime(); const startTime = parseInt(pm.environment.get("startTime")); const delay = 3000; pm.expect(responseTime - startTime).to.be.at.least(delay); });
| Step | Action | System State | Assertion | Result |
|---|---|---|---|---|
| 1 | First request's Tests script records current time in environment variable 'startTime'. | Postman environment variable 'startTime' set to timestamp after first request completes. | - | PASS |
| 2 | Second request's Pre-request Script reads 'startTime' and calculates targetTime = startTime + 3000ms. | Pre-request script prepares for busy-wait delay. | - | PASS |
| 3 | Script enters while loop, busy-waiting until current time >= targetTime. | Request sending blocked until exactly 3 seconds from startTime. | - | PASS |
| 4 | After busy-wait completes, second request is sent. | Request sent to API endpoint after enforced delay. | - | PASS |
| 5 | Second request's Tests script verifies total time elapsed. | Test confirms at least 3000ms passed since startTime (includes delay + response time). | Assert that (responseTime - startTime) >= 3000 ms. | PASS |