← Kembali ke Blog

Load Testing dengan k6.io: Beginner's Guide

Load testing adalah skill wajib bagi setiap engineer yang membangun sistem skalabel. Saya menggunakan k6.io untuk semua project di Badr Interactive karena ringan, bisa di-code, dan mudah diintegrasikan ke CI/CD.

Kenapa k6?

  • Scriptable — Test scenario ditulis dalam JavaScript
  • CLI-native — Bisa dijalankan di terminal dan CI/CD pipeline
  • Low resource — Bisa generate ribuan VUs dari satu mesin
  • Integrasi CI/CD — Bisa digabung dengan Jenkins, GitLab CI, GitHub Actions

Contoh Script Dasar

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '2m', target: 100 },  // Ramp-up
    { duration: '5m', target: 100 },  // Stable
    { duration: '2m', target: 0 },    // Ramp-down
  ],
  thresholds: {
    http_req_duration: ['p(95)<2000'], // 95% request < 2s
    http_req_failed: ['rate<0.01'],     // Error rate < 1%
  },
};

export default function () {
  const res = http.get('https://api.example.com/users');
  check(res, {
    'status is 200': (r) => r.status === 200,
  });
  sleep(1);
}

Interpretasi Hasil

Saya selalu fokus pada metrik ini:

  • p95 response time — Waktu response untuk 95% request
  • Error rate — Persentase request yang gagal
  • Throughput — Request per detik yang bisa ditangani

Integration ke CI/CD

Di Jenkins, saya integrasikan k6 dengan threshold check — jika threshold gagal, pipeline otomatis reject build. Ini prevents performance regression sebelum sampai ke production.

Load testing rutin menghemat biaya infrastructure dan mencegah downtime di production.

Butuh Bantuan Implementasi?

Saya membantu tim mendesain dan membangun infrastruktur cloud scalable, pipeline DevOps, dan sistem production-grade.

Konsultasi Gratis