Scroll Top

1. Apa Itu k6?

Sebelum kita mulai, k6 itu apa sih? Jadi, k6 adalah tools open source buat nge-load test aplikasi atau API. Kerennya, k6 ini ringan, cepat, dan bisa dipakai buat ngetes performa aplikasi kamu dengan skala besar. Cocok banget buat developer atau tim yang pengen tahu seberapa kuat aplikasi mereka menghadapi traffic tinggi.

2. Persiapannya

Sebelum install k6, pastiin dulu kamu punya:

  • Linux RHEL, Rocky, atau AlmaLinux (distro RHEL-based lainnya juga bisa).
  • Akses sudo atau root.
  • Aplikasi atau API yang mau di-test (misalnya, endpoint API atau website).

3. Install k6

3.1. Tambahin Repositori k6

Pertama, kita perlu nambahin repositori k6 ke sistem kamu. Caranya gampang, tinggal jalanin ini di terminal:

sudo rpm --install https://dl.k6.io/rpm/repo.rpm

3.2. Install k6

Setelah repositori ditambahin, langsung aja install k6:

sudo yum install -y k6

3.3. Cek Versi k6

Biar yakin k6 udah terinstall dengan benar, cek versinya:

k6 version

Kalau muncul versinya, berarti kamu siap lanjut ke tahap berikutnya!

4. Bikin Skrip Load Test

4.1. Buat File Skrip

k6 pake JavaScript buat nulis skrip load test. Jadi, kita bisa bikin file JavaScript buat ngetes aplikasi kamu. Misalnya, bikin file loadtest.js:

nano loadtest.js

4.2. Contoh Skrip Sederhana

Ini contoh skrip buat ngetes API atau website:

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

export let options = {
  stages: [
    { duration: '30s', target: 20 }, // Naikin ke 20 user dalam 30 detik
    { duration: '1m', target: 20 },  // Pertahankan 20 user selama 1 menit
    { duration: '30s', target: 0 },  // Turunin ke 0 user dalam 30 detik
  ],
};

export default function () {
  let res = http.get('https://example.com/api'); // Ganti dengan URL API/website kamu
  check(res, { 'status was 200': (r) => r.status == 200 });
  sleep(1); // Jeda 1 detik antara setiap request
}

Skrip ini bakal ngetes endpoint API atau website dengan 20 user virtual selama 2 menit.

5. Jalankan Load Test

5.1. Run Skrip

Untuk menjalankan skripnya, tinggal ketik:

k6 run loadtest.js

5.2. Lihat Hasilnya

Setelah selesai, k6 bakal kasih laporan kayak gini:

data_received........: 1.2 MB
data_sent............: 150 kB
http_req_duration....: avg=200ms min=100ms max=500ms
http_req_failed......: 0.00%
http_reqs............: 1000
iteration_duration...: avg=1.2s min=1s max=2s
iterations...........: 1000
vus..................: 20
vus_max..............: 20

Dari sini, kamu bisa liat berapa lama rata-rata respons API, berapa request yang gagal, dan berapa banyak request yang berhasil dikirim.

6. Mau Stress Test? Gampang!

Kalau pengen ngetes aplikasi kamu dengan beban yang lebih berat, tinggal naikin aja jumlah usernya. Misalnya, gini:

export let options = {
  stages: [
    { duration: '1m', target: 100 }, // Naikin ke 100 user dalam 1 menit
    { duration: '5m', target: 100 }, // Pertahankan 100 user selama 5 menit
    { duration: '1m', target: 0 },   // Turunin ke 0 user dalam 1 menit
  ],
};

Dengan skrip ini, aplikasi kamu bakal diuji dengan 100 user virtual selama 7 menit. Siap-siap aja kalau aplikasi kamu nge-lag atau error!

7. Tips & Trick

  • Grafik Hasil: Kamu bisa ekspor hasil load test ke format JSON atau CSV buat dianalisis lebih lanjut.
  • Integrasi CI/CD: k6 bisa diintegrasikan ke pipeline CI/CD buat otomasi testing.
  • Cloud Testing: Kalau pengen ngetes dengan skala besar, k6 juga punya layanan cloud.

Nah, itu dia cara install k6 dan nge-load test aplikasi kamu. Dengan k6, kamu bisa tahu seberapa kuat aplikasi kamu menghadapi traffic tinggi. Jadi, nggak perlu khawatir lagi kalau tiba-tiba aplikasi kamu kebanjiran user!

Selamat mencoba, dan semoga aplikasi kamu makin tangguh! 🚀