import http from "k6/http"; /** * Databases or external resources can sometimes become unavailable for short periods of time. * Make sure the server can recover quickly from periods of unavailability. * This simulation swaps between a hanging and a working server every 10 seconds. */ export const options = { stages: [ { duration: "20s", target: 100 }, { duration: "20s", target: 500 }, { duration: "20s", target: 0 }, ], thresholds: { http_req_failed: ["rate<0.01"], }, }; /* global __ENV */ export default function () { const tenSecondInterval = Math.floor(new Date().getSeconds() / 10); const shouldHang = tenSecondInterval % 2 === 0; // every 10 seconds requests lead to a max_execution-timeout if (shouldHang) { http.get(`${__ENV.CADDY_HOSTNAME}/sleep.php?sleep=50000`); return; } // every other 10 seconds the resource is back http.get(`${__ENV.CADDY_HOSTNAME}/sleep.php?sleep=5&work=30000&output=100`); }