1. Home
  2. ›
  3. Blog
  4. ›
  5. Load Testing with JMeter: 6-Step Tutorial from Install to Report | Frans Training

Load Testing with JMeter: 6-Step Tutorial from Install to Report | Frans Training

Step-by-step JMeter load testing tutorial. From installation, test plan creation, parameterization, to HTML reports and CI/CD integration.

Author: Frans Training — Tim Pelatihan Software Testing

Published: 2026-04-05T10:25:53.000Z

Atasan Anda minta hasil load test minggu depan, tapi Anda belum pernah membuka JMeter. Anda googling "tutorial JMeter" dan menemukan dokumentasi berbahasa Inggris sepanjang 200 halaman yang membuat kepala pusing. Deadline mendekat, tim tidak punya pengalaman, dan Anda butuh hasil yang bisa dipresentasikan ke manajemen.

Tenang ÔÇö Anda tidak sendirian. Ini adalah situasi yang dialami sebagian besar QA engineer ketika pertama kali diminta melakukan performance testing. Artikel ini adalah panduan 6 langkah praktis dalam Bahasa Indonesia yang membawa Anda dari nol hingga menghasilkan HTML report profesional. Dalam 30 menit membaca, Anda akan tahu cara membuat test plan, menjalankan load test 50 concurrent users, dan menginterpretasikan hasilnya.

Jika Anda belum familiar dengan konsep load testing, baca dulu: Apa Itu Load Testing? 7 Jenis Performance Testing Menurut ISTQB.

Apa Itu Apache JMeter?

Apache JMeter adalah aplikasi open-source berbasis Java yang dirancang untuk melakukan performance testing pada aplikasi web, API, dan database. JMeter mensimulasikan banyak pengguna mengakses sistem secara bersamaan (concurrent users) untuk mengukur performa di bawah beban.

Keunggulan JMeter:

  • Open source dan gratis ÔÇö tidak perlu lisensi komersial
  • Multi-protocol ÔÇö HTTP/HTTPS, REST API, SOAP, JDBC, FTP, JMS, LDAP
  • GUI dan CLI ÔÇö GUI untuk membuat test plan, CLI untuk eksekusi di CI/CD pipeline
  • Extensible ÔÇö ratusan plugin tersedia via JMeter Plugins Manager
  • Distributed testing ÔÇö dapat menjalankan test dari multiple machines
  • Standar industri ÔÇö menjadi de facto standard di perbankan Indonesia

Persiapan: Instalasi JMeter

Prasyarat

  • Java JDK 8 atau lebih baru (JDK 11+ direkomendasikan)
  • Minimum RAM 4 GB (8 GB direkomendasikan untuk test besar)
  • Sistem operasi: Windows, macOS, atau Linux

Langkah Instalasi

  1. Install Java JDK ÔÇö Download dari adoptium.net atau oracle.com/java. Pastikan java -version menampilkan versi yang benar di terminal.
  2. Download JMeter ÔÇö Kunjungi jmeter.apache.org, download file .zip atau .tgz dari bagian "Binaries".
  3. Extract ÔÇö Unzip ke folder pilihan Anda (misal: C:jmeter atau /opt/jmeter).
  4. Jalankan JMeter ÔÇö Buka terminal, navigasi ke folder bin/, lalu jalankan:
    • Windows: jmeter.bat
    • macOS/Linux: ./jmeter.sh
  5. Verifikasi ÔÇö JMeter GUI akan terbuka dengan "Test Plan" kosong di panel kiri.

Langkah 1: Membuat Test Plan Pertama

Test Plan adalah blueprint dari load test Anda. Setiap test plan minimal memiliki:

  • Thread Group ÔÇö mengatur jumlah virtual users, ramp-up period, dan durasi
  • Sampler ÔÇö request yang akan dikirim (HTTP, JDBC, dll.)
  • Listener ÔÇö menampilkan dan merekam hasil test

Membuat Thread Group

  1. Klik kanan pada "Test Plan"  Add  Threads (Users)  Thread Group
  2. Konfigurasi:
    • Number of Threads (users): 50 ÔÇö jumlah virtual users
    • Ramp-Up Period (seconds): 30 ÔÇö waktu untuk menaikkan semua users secara bertahap
    • Loop Count: 10 ÔÇö berapa kali setiap user mengulangi skenario

Artinya: 50 users akan mulai secara bertahap selama 30 detik, dan setiap user menjalankan skenario 10 kali.

Menambahkan HTTP Request Sampler

  1. Klik kanan pada Thread Group  Add  Sampler  HTTP Request
  2. Konfigurasi:
    • Protocol: https
    • Server Name or IP: nama-domain-anda.com
    • Port: 443 (untuk HTTPS)
    • Method: GET
    • Path: / (atau endpoint yang ingin ditest)

Menambahkan Listener

  1. Klik kanan pada Thread Group  Add  Listener  View Results Tree
  2. Tambahkan juga: Add  Listener  Summary Report
  3. Tambahkan juga: Add  Listener  Aggregate Report

Summary Report menampilkan rata-rata response time, throughput, dan error rate ÔÇö metrik utama yang Anda butuhkan.

Langkah 2: Menambahkan Elemen Penting

Think Time (Timer)

Pengguna nyata tidak mengklik tanpa jeda. Tambahkan jeda antar request:

  1. Klik kanan pada Thread Group  Add  Timer  Constant Timer
  2. Set Thread Delay: 1000 (1 detik) ÔÇö atau gunakan Gaussian Random Timer untuk variasi yang lebih realistis

Assertions (Validasi Response)

Pastikan server mengembalikan response yang benar, bukan error page:

  1. Klik kanan pada HTTP Request  Add  Assertions  Response Assertion
  2. Set Field to Test: Response Code
  3. Set Pattern: 200

Ini memastikan setiap response yang bukan HTTP 200 dicatat sebagai failure.

HTTP Header Manager

Beberapa API memerlukan header khusus:

  1. Klik kanan pada Thread Group  Add  Config Element  HTTP Header Manager
  2. Tambahkan header yang diperlukan, misal:
    • Content-Type: application/json
    • Authorization: Bearer {token}

Langkah 3: Parameterisasi dan Data-Driven Testing

Test yang realistis menggunakan data yang bervariasi ÔÇö bukan request yang sama berulang-ulang.

CSV Data Set Config

  1. Buat file CSV dengan data test, misal users.csv:
    username,password
    user001,pass001
    user002,pass002
    user003,pass003
  2. Klik kanan pada Thread Group  Add  Config Element  CSV Data Set Config
  3. Set Filename: path ke file CSV
  4. Set Variable Names: username,password
  5. Dalam HTTP Request, gunakan variabel: ${username} dan ${password}

Setiap virtual user akan menggunakan baris data yang berbeda ÔÇö mensimulasikan pengguna riil dengan kredensial unik.

Langkah 4: Eksekusi Load Test

Eksekusi via GUI (Development)

Klik tombol hijau ÔûÂ (Play) di toolbar. GUI akan menampilkan hasil secara real-time di Listener.

ÔÜá Penting: GUI mengonsumsi banyak resource. Untuk test dengan 100+ users, selalu gunakan CLI mode.

Eksekusi via CLI (Production)

Mode non-GUI adalah cara yang benar untuk menjalankan load test sesungguhnya:

jmeter -n -t test-plan.jmx -l results.jtl -e -o report-output/

Parameter:

  • -n ÔÇö non-GUI mode
  • -t ÔÇö path ke file test plan (.jmx)
  • -l ÔÇö path untuk menyimpan hasil (.jtl)
  • -e ÔÇö generate HTML report setelah test selesai
  • -o ÔÇö folder output untuk HTML report

JMeter akan menghasilkan HTML dashboard report yang lengkap dengan grafik response time, throughput, dan error rate.

Langkah 5: Membaca dan Menganalisis Hasil

Setelah test selesai, buka Aggregate Report atau HTML dashboard. Metrik utama yang perlu diperhatikan:

MetrikArtiTarget Umum
Average Response TimeRata-rata waktu response< 2 detik
90th Percentile (P90)90% request selesai dalam waktu ini< 3 detik
ThroughputRequest per detik yang berhasil diprosesSesuai kebutuhan bisnis
Error RatePersentase request yang gagal< 1%
Min/Max Response TimeRentang response timeMax < 5 detik

Tanda-Tanda Masalah Performa

  • Response time naik seiring bertambahnya users ÔÇö sistem mencapai kapasitas maksimum
  • Error rate melonjak di atas threshold tertentu ÔÇö ada bottleneck (connection pool, memory, CPU)
  • Throughput tidak naik meskipun users ditambah ÔÇö sistem sudah saturasi (saturation point)
  • Response time tidak stabil (fluktuatif) ÔÇö kemungkinan garbage collection, disk I/O, atau network issue

Langkah 6: Skenario Lanjutan

Test API REST

Untuk menguji API backend (bukan web page):

  1. Gunakan HTTP Request dengan method POST/PUT
  2. Tambahkan Body Data dalam format JSON
  3. Set Header Content-Type: application/json
  4. Gunakan JSON Extractor untuk mengambil data dari response (misalnya token) untuk request berikutnya

Correlation: Dynamic Data

Banyak aplikasi web menggunakan token dinamis (CSRF token, session ID). JMeter harus mengekstrak dan meneruskan token ini:

  1. Tambahkan Regular Expression Extractor atau JSON Extractor pada response yang mengandung token
  2. Simpan ke variabel: ${csrf_token}
  3. Gunakan variabel tersebut di request berikutnya

Distributed Load Testing

Untuk menghasilkan beban yang sangat besar (ribuan concurrent users), gunakan distributed testing:

  1. Siapkan beberapa mesin JMeter sebagai "slave"
  2. Pada mesin master, edit jmeter.properties: remote_hosts=slave1_ip,slave2_ip
  3. Jalankan: jmeter -n -t test.jmx -r -l results.jtl (flag -r untuk remote)

Integrasi JMeter dengan CI/CD Pipeline

Untuk mengotomasi load testing sebagai bagian dari deployment pipeline:

Jenkins

  1. Install Performance Plugin di Jenkins
  2. Tambahkan build step: Execute shell  jalankan JMeter CLI
  3. Tambahkan post-build action: Publish Performance test result
  4. Set threshold: jika error rate > 1% atau P90 > 3s, build FAILED

GitLab CI

performance_test:
  stage: test
  image: justb4/jmeter:latest
  script:
    - jmeter -n -t tests/load-test.jmx -l results.jtl -e -o report/
  artifacts:
    paths:
      - report/
    when: always

Kesalahan Umum yang Harus Dihindari

  1. Menjalankan test dari GUI mode ÔÇö GUI mengonsumsi resource berlebih dan menghasilkan hasil yang tidak akurat. Selalu gunakan CLI untuk test sesungguhnya.
  2. Tidak menggunakan think time ÔÇö Tanpa jeda, JMeter mengirim request secepat mungkin ÔÇö tidak merepresentasikan perilaku pengguna riil.
  3. Test environment tidak mirip production ÔÇö Hasil test hanya valid jika environment sebanding dengan production (hardware, data volume, network).
  4. Tidak melakukan warmup ÔÇö Mulai dengan beban rendah selama 1-2 menit sebelum menaikkan ke target beban.
  5. Mengabaikan resource monitoring ÔÇö Monitor CPU, memory, dan disk I/O di server target selama test berlangsung.
  6. Tidak melakukan baseline test ÔÇö Selalu jalankan test dengan 1 user terlebih dahulu untuk memastikan script berjalan benar.

Load Testing untuk Industri Teregulasi

Untuk sektor perbankan dan fintech Indonesia, load testing memiliki konteks tambahan:

  • POJK 11/2022 mewajibkan pengujian performa sistem TI secara berkala
  • Audit trail ÔÇö Simpan semua hasil test (file .jtl dan HTML report) untuk dokumentasi audit
  • Test data compliance ÔÇö Gunakan data sintetis, bukan data nasabah riil (UU PDP)
  • SLA validation ÔÇö Pastikan target performa sesuai SLA yang ditetapkan regulator

Baca juga: 7 Jenis Performance Testing Menurut ISTQB

Mulai Belajar JMeter Secara Hands-On

Tutorial ini memberikan fondasi untuk memulai load testing. Untuk menguasai JMeter secara mendalam dengan skenario industri riil, Frans Training menyediakan program Performance & Load Testing dengan JMeter yang mencakup:

  • Hands-on lab dengan skenario perbankan dan e-commerce
  • Distributed load testing untuk ribuan concurrent users
  • Integrasi JMeter dengan Jenkins dan GitLab CI/CD
  • Analisis bottleneck dan performance tuning
  • Penyusunan test report yang memenuhi standar audit OJK

Lihat juga: Perbedaan Stress Testing dan Load Testing | Konsultasi gratis

Referensi

  • Apache JMeter User Manual
  • ISTQB Glossary ÔÇö Load Testing
  • ISTQB CT-PT Syllabus

FAQ: Pertanyaan Pemula tentang JMeter

Apakah JMeter bisa digunakan untuk test API REST?

Ya, JMeter sangat capable untuk API testing. Gunakan HTTP Request sampler dengan method POST/PUT, tambahkan Body Data dalam format JSON, dan set header Content-Type: application/json. Gunakan JSON Extractor untuk mengambil data dari response.

Berapa maksimal concurrent users yang bisa disimulasikan JMeter?

Pada satu mesin dengan 8GB RAM, JMeter bisa mensimulasikan 500-1.000 virtual users untuk HTTP testing. Untuk beban lebih besar, gunakan distributed testing (master-slave) yang bisa mencapai puluhan ribu users.

Apakah JMeter bisa diintegrasikan dengan Jenkins?

Ya, install Performance Plugin di Jenkins, tambahkan build step untuk menjalankan JMeter CLI, dan set threshold (error rate, response time) untuk menentukan pass/fail otomatis.

JMeter GUI vs CLI ÔÇö kapan menggunakan yang mana?

GUI untuk membuat dan debug test plan. CLI (non-GUI mode) untuk eksekusi test sesungguhnya. Jangan pernah menjalankan test beban besar dari GUI ÔÇö hasilnya tidak akurat karena GUI mengonsumsi resource berlebih.

Sudah Bisa Jalankan Test Plan Pertama?

Tutorial ini baru permulaan. Langkah selanjutnya: kuasai distributed testing untuk ribuan concurrent users, integrasi dengan CI/CD pipeline, dan analisis bottleneck dengan skenario core banking riil.

Program Performance & Load Testing dengan JMeter membawa Anda dari pemula ke level yang diterima auditor OJK ÔÇö dengan hands-on lab menggunakan skenario industri riil.

Konsultasi gratis: ceritakan kebutuhan tim Anda, kami bantu pilih jadwal dan program yang tepat.

Home | Schedule | Pricing | Trainers | Consultation | Blog