Skip to content

Commit

Permalink
add signup loadTest
Browse files Browse the repository at this point in the history
  • Loading branch information
kahlstrm committed May 19, 2024
1 parent 792e430 commit 6bb7787
Showing 1 changed file with 39 additions and 3 deletions.
42 changes: 39 additions & 3 deletions packages/ilmomasiina-backend/loadTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ const individualEventsMetrics = {
http_req_failed: new Rate("http_req_failed_individual_events"),
http_reqs: new Counter("http_reqs_individual_events"),
};
const signUpToQuotaMetrics = {
http_req_duration: new Trend("http_req_duration_sign_up_to_quota", true),
http_req_failed: new Rate("http_req_failed_sign_up_to_quota"),
http_reqs: new Counter("http_reqs_sign_up_to_quota"),
};

// Fetch the dynamic routes in the setup function
export function setup() {
Expand All @@ -22,7 +27,11 @@ export function setup() {
(event) => `http://localhost:3000/api/events/${event.slug}`
);

return { eventsList: "http://localhost:3000/api/events", eventRoutes };
return {
eventsList: "http://localhost:3000/api/events",
eventRoutes,
signupQuotaId: eventsList[0].quotas[0].id,
};
}

export const options = {
Expand All @@ -43,6 +52,14 @@ export const options = {
duration: "30s",
tags: { my_custom_tag: "individual_events" },
},
sign_up_to_quota: {
executor: "constant-vus",
exec: "signUpToQuota",
vus: 100,
startTime: "60s",
duration: "30s",
tags: { my_custom_tag: "sign_up_to_quota" },
},
},
};

Expand All @@ -52,7 +69,7 @@ export function eventsList(data) {

check(res, {
"status was 200": (r) => r.status == 200,
"transaction time OK": (r) => r.timings.duration < 200,
"transaction time was below 200ms": (r) => r.timings.duration < 200,
});

// Record custom metrics
Expand All @@ -68,11 +85,30 @@ export function individualEvents(data) {

check(res, {
"status was 200": (r) => r.status == 200,
"transaction time OK": (r) => r.timings.duration < 200,
"transaction time was below 200 ms": (r) => r.timings.duration < 200,
});

// Record custom metrics
individualEventsMetrics.http_req_duration.add(res.timings.duration);
individualEventsMetrics.http_req_failed.add(res.status !== 200);
individualEventsMetrics.http_reqs.add(1);
}
export function signUpToQuota(data) {
const url = `http://localhost:3000/api/signups`;
const payload = JSON.stringify({
quotaId: data.signupQuotaId,
});
const params = {
headers: {
"Content-Type": "application/json",
},
};
const res = http.post(url, payload, params);
check(res, {
"status was 201": (r) => r.status == 201,
"transaction time was below 200 ms": (r) => r.timings.duration < 200,
});
signUpToQuotaMetrics.http_req_duration.add(res.timings.duration);
signUpToQuotaMetrics.http_req_failed.add(res.status !== 201);
signUpToQuotaMetrics.http_reqs.add(1);
}

0 comments on commit 6bb7787

Please sign in to comment.