load test
This commit is contained in:
@@ -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
|
||||
@@ -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();
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user