Load test for /transfers at 1k rps (k6)#97
Conversation
|
@githoboman Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Miracle656
left a comment
There was a problem hiding this comment.
The k6 load test itself (tests/load/transfers.k6.js + .github/workflows/load.yml) looks good and is exactly what #75 needs. One blocker before merge:
This branch also includes tests/decoder.amount.fuzz.test.ts, which is the deliverable from your other PR #96 — that PR has now been merged to main. As-is this PR will conflict on that file (and on package-lock.json).
Please rebase on the latest main and drop tests/decoder.amount.fuzz.test.ts from this branch so it contains only the load-test files. Once it's just the load test + workflow, I'll merge it.
✅ Script runs locally — k6 v2.0.0 installed; smoke-ran tests/load/transfers.k6.js against a local stub: 201 iterations, all checks passed, all 3 thresholds green (p95 = 1.78ms).
Closes #75
✅ CI scheduled weekly — .github/workflows/load.yml runs on cron: "0 6 * * 1" (Mondays 06:00 UTC) plus manual workflow_dispatch.
Both files are written and on disk:
tests/load/transfers.k6.js — 1k-RPS constant-arrival-rate test of GET /transfers/address/:address, with p(95)<100 enforced as a hard threshold; parameterized via BASE_URL/ADDRESS/RPS/DURATION env vars.
.github/workflows/load.yml — installs k6, resolves staging target from the STAGING_BASE_URL secret, runs the script weekly.