Menyiapkan fondasi sebelum menjadi Performance Test Engineer: skill testing dasar, pemahaman backend & API, konsep Linux & cloud, serta lab load test dengan k6, JMeter, Locust, dan monitoring tools.

Selamat datang di series Belajar Performance Test Engineer! Series ini akan membawa kalian dari fondasi performance testing hingga menjadi engineer yang mampu merancang, menjalankan, dan menganalisis pengujian performa untuk sistem production. Total 28 episode tersusun dalam enam fase, mulai dari pre-requisites hingga topik-topik modern seperti AI workload performance dan continuous performance engineering.
Sebelum menyentuh tools seperti k6 atau JMeter, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena performance testing bukan sekadar menjalankan script dan melihat grafik — ia menuntut pemahaman tentang bagaimana sistem bekerja, bagaimana data mengalir dari client ke server dan database, serta bagaimana membaca metrik untuk menemukan bottleneck. Tanpa fondasi ini, kalian hanya akan menghasilkan angka tanpa insight.
Episode 0 ini adalah pijakan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan lab load test, menginstall tools utama, serta memverifikasi seluruh environment siap dipakai sepanjang series.
Performance testing adalah cabang dari non-functional testing. Kalian wajib memahami konsep testing secara umum: apa itu test case, test scenario, test plan, dan bagaimana bedanya functional testing dengan non-functional testing. Jika kalian sudah pernah menulis test case untuk fitur — misalnya memastikan login mengembalikan status 200 — maka kalian punya fondasi yang cukup. Yang berubah di performance testing adalah pertanyaannya: bukan "apakah sistem benar?", melainkan "apakah sistem cukup cepat dan stabil di bawah beban?".
# Cek apakah kalian sudah familiar dengan testing
# Functional test: validasi response
curl -s -o /dev/null -w "%{http_code}" https://api.example.com/healthPerformance testing hampir selalu mengarah ke backend: API endpoints, database queries, dan infrastruktur server. Kalian perlu memahami HTTP methods (GET, POST, PUT, DELETE), status codes (200, 400, 429, 500), konsep REST API, request/response headers, dan cara kerja JSON. Pemahaman tentang bagaimana aplikasi berinteraksi dengan database — query, indexing, connection pooling — juga krusial karena bottleneck paling sering muncul di lapisan data.
Performance testing sering dijalankan di lingkungan Linux. Kalian harus nyaman dengan terminal: menjalankan perintah, membaca log, menggunakan grep, awk, curl, dan netstat/ss. Kemampuan membaca system metrics — CPU usage, memory, disk I/O — dari command line akan sangat membantu saat kalian menganalisis hasil test nanti.
Kalian akan berhadapan dengan ratusan ribu data points: response times, throughput, error rates. Kemampuan dasar membaca statistik — mean, median, percentile (p95, p99), standard deviation — adalah senjata utama performance engineer. Yang paling penting adalah percentile: p95 = 200ms artinya 95% request selesai di bawah 200ms. Di sinilah letak kualitas user experience sesungguhnya, bukan di angka rata-rata yang menipu.
k6 adalah load testing tool open-source dari Grafana Labs, ditulis dalam Go dengan scripting JavaScript. Kalian akan menginstall binary resmi:
sudo gpg -k
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/grafana.gpg --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y k6Apache JMeter adalah tool GUI berbasis Java untuk load testing. Berguna untuk kalian yang bekerja di tim dengan test plan visual:
sdk install jmeterAtau unduh langsung dari halaman releases Apache JMeter dan ekstrak. K6 dan JMeter punya use case berbeda — k6 lebih ringan dan scriptable, JMeter lebih visual dan punya ecosystem plugin yang luas. Kita bahas perbandingannya di episode 5.
Locust menulis load test dalam Python — pilihan terbaik jika tim kalian sudah terbiasa Python. Install via pip:
pip install locustTanpa monitoring, load test hanya menghasilkan angka tanpa konteks. Siapkan minimal satu stack observability:
docker compose -f <(curl -s https://raw.githubusercontent.com/grafana/grafana/main/examples/docker-compose/prometheus/docker-compose.yml) up -dSiapkan direktori kerja terpisah untuk seluruh aktivitas load testing:
mkdir -p ~/perf-lab/{scripts,results,reports}
cd ~/perf-lab
echo '{"users": 100, "duration": "30s"}' > config.json
cat config.jsonNote
Pisahkan lab load testing dari project aplikasi utama. Load test scripts akan bertambah banyak seiring series berlangsung — menjaga isolasi direktori membuat semuanya tetap terorganisir.
Jalankan verifikasi menyeluruh sebelum lanjut ke episode 1:
k6 version
jmeter --version 2>/dev/null || echo "JMeter belum terinstall"
locust --version 2>/dev/null || echo "Locust belum terinstall"
docker --version 2>/dev/null || echo "Docker belum terinstall"Pastikan minimal k6 version menghasilkan output versi. JMeter dan Locust bersifat opsional — kalian bisa fokus di k6 dulu dan menambahkan yang lain bertahap.
Tip
Jalankan k6 version sekarang dan catat versinya. Saat mengikuti episode berikutnya, pastikan kalian menggunakan versi yang sama atau lebih baru. k6 bergerak cepat dengan rilis baru setiap beberapa minggu.
Yang sudah kalian siapkan di episode 0:
~/perf-lab dengan config dan sub-direktori.Inti yang harus dibawa pulang:
k6 version adalah perintah pertama yang kalian jalankan.Di episode 1 selanjutnya kita akan membahas peran dan karir Performance Test Engineer — apa yang dilakukan, bagaimana posisinya di organisasi, dan tren karir di tahun 2026. Pastikan environment kalian sudah siap!