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! 🚀