load test

This commit is contained in:
2026-05-13 15:11:35 +08:00
commit f1b53ad9b3
2 changed files with 56 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
config:
target: "http://localhost:8080"
phases:
- duration: 50
arrivalRate: 20
name: "Ramp to ~1000 concurrent users" # 20 * 50 = 1000 users created
- pause: 120
maxVusers: 1000
http:
timeout: 30
scenarios:
- name: "Fetch University References"
flow:
- loop:
- get:
url: "/v1/references/univ"
headers:
Accept-Encoding: identity
capture:
- json: "$[0].code"
as: "first_univ_code"
- think: 2
count: 60
+32
View File
@@ -0,0 +1,32 @@
let requestCount = 0;
let startTime = Date.now();
module.exports = {
setup: function (context, ee, next) {
console.log("🚀 Test started\n");
ee.on(
"response",
function (latency, statusCode, requestParams, response, startTime) {
requestCount++;
const elapsedSeconds = (Date.now() - startTime) / 1000;
const reqPerSec = (requestCount / elapsedSeconds).toFixed(2);
console.log(
`[${new Date().toLocaleTimeString()}] Requests sent: ${requestCount} | Rate: ${reqPerSec} req/s | Status: ${statusCode}`,
);
},
);
return next();
},
cleanup: function (context, ee, next) {
const totalTime = (Date.now() - startTime) / 1000;
const avgRate = (requestCount / totalTime).toFixed(2);
console.log(`\n✅ Test completed`);
console.log(`Total requests: ${requestCount}`);
console.log(`Average rate: ${avgRate} req/s`);
return next();
},
};