Harness Uji Kapasitas dengan k6
Alat baris perintah yang menaikkan beban permintaan secara bertahap sampai sebuah situs melewati ambang kritis, lalu mengukur waktu pemulihannya dan melaporkan perkiraan jumlah pengguna yang masih aman.
Harness load testing berbasis Grafana k6 yang mencari batas aman sebuah sistem secara otomatis dan melaporkannya dalam bahasa yang mudah dipahami. Satu perintah menaikkan beban bertahap, berhenti saat sistem mulai jebol, lalu memeriksa apakah ia pulih kembali.
Sorotan
- Ia menjawab pertanyaan yang benar-benar ditanyakan orang — bukan "berapa latensi p95", melainkan "situs saya masih aman sampai berapa pengguna bersamaan, kapan mulai melambat, kapan error muncul, dan apakah setelah itu ia pulih". Ringkasan akhirnya ditulis persis dengan istilah-istilah itu.
- Kenaikan bebannya berhenti sendiri — beban naik bertahap sampai satu run melewati ambang kritis yang didefinisikan di profil, sehingga operator tidak perlu memelototi dasbor dan memutuskan kapan harus berhenti. Aturan berhentinya berupa data, bukan penilaian subjektif.
- Pemulihan diukur, bukan diandaikan — probe pemulihan berjalan otomatis setelah titik kritis, sebab sistem yang menurun dan tidak pernah kembali adalah kegagalan yang berbeda dari sistem yang menyerap lonjakan lalu tenang lagi.
- Preflight sebelum pembebanan — satu tahap validasi ringan memastikan target dan definisi journey sudah sahih sebelum lalu lintas sungguhan dibangkitkan, sehingga journey yang rusak gagal dalam hitungan detik, bukan di tengah-tengah kenaikan beban.
- Pagar pengaman menjadi bagian perkakasnya — ia secara tegas dibuat untuk mencari batas pada lingkungan yang memang berhak Anda uji, bukan untuk menjatuhkan target publik, dan profil itulah tempat batasan tersebut ditegakkan.
- Setiap run bisa ditelusuri ulang dari artefaknya — tiap run menulis folder bertanda waktu berisi hasil preflight, satu JSON per tahap beban, probe pemulihan, ringkasan akhir, dan log per run, dengan ringkasan terbaru juga disalin ke jalur yang tetap.
Fitur Utama
- Uji kapasitas satu perintah — pembungkus PowerShell menjalankan preflight, kenaikan bertahap, penghentian kritis, dan probe pemulihan dari ujung ke ujung.
- Tiga mode eksekusi dalam satu skrip k6 —
preflight,capacity_step, danrecovery_probeberbagi definisi journey yang sama alih-alih terpecah di berkas terpisah yang lama-lama tidak sinkron. - Journey campuran — profil menggambarkan beberapa jalur pengguna sekaligus, sehingga bebannya menyerupai lalu lintas nyata alih-alih satu endpoint yang digebuk sendirian.
- Kebijakan kritis dan pemulihan yang bisa diatur — ambang untuk apa yang dianggap kritis, dan apa yang dianggap pulih, dideklarasikan di JSON, bukan ditanam di kode.
- Keluaran yang mudah dibaca — pengguna bersamaan yang masih aman, titik mulai kritis, beban aman yang disarankan, rata-rata waktu respons saat aman dan saat kritis, masalah utama di titik kritis, apakah sistem pulih, dan berapa lama waktunya.
- Hasil terstruktur — JSON per tahap plus ringkasan akhir yang terbaca mesin, cocok untuk membandingkan satu run dengan run lainnya.
Tech Stack
- Grafana k6 (pembangkit beban dan ambang batas)
- JavaScript (
loadtest.js— skrip mesin k6) - PowerShell (
run-capacity.ps1— pembungkus orkestrasi) - Konfigurasi JSON (
capacity-profile.json) +.envuntuk target dan rahasia
Status & Kematangan
Selesai untuk tujuannya dan dipakai untuk menakar deployment sungguhan. Tidak ada lapisan unit test terpisah, karena skrip k6-nya sendiri sudah merupakan test yang dieksekusi — yang diuji adalah sistem lain, dan kebenaran di sini berarti ambang serta journey-nya menggambarkan kenyataan. Pembungkusnya ditulis dengan PowerShell, jadi ia mengutamakan Windows; skrip k6-nya sendiri portabel.
Metrik Terukur
| Commit | 5 |
| Rentang Tanggal | 7 Jun 2026 – 12 Jun 2026 |
| Baris kode | 1.420 |
| Test otomatis | suite test k6 yang berdiri sendiri |