JMeter dapat menghasilkan sampler Permintaan HTTP dengan bertindak sebagai proxy perekaman lokal antara browser dan aplikasi target yang berwenang. Versi saat ini menyebut komponen ini sebagai Perekam Skrip Uji HTTP(S) . Komponen ini menangkap satu perjalanan browser ke dalam Pengontrol Perekaman, setelah itu skrip harus dibersihkan, dikorelasikan, divalidasi, dan dieksekusi sebagai pengujian tingkat protokol.

Hanya uji sistem yang Anda miliki atau yang secara eksplisit Anda berwenang untuk menilainya. Rekaman dapat berisi kata sandi, cookie, token, dan data pribadi. Lebih baik gunakan akun uji coba, hapus rahasia sebelum berbagi file JMX, dan patuhi batas beban yang telah disetujui.

Apa itu JMeter HTTP Proxy Server?

Perekam tersebut mendengarkan pada port lokal, yang umumnya 8888Browser mengirimkan permintaan HTTP dan HTTPS ke proxy tersebut, dan JMeter mengubah lalu lintas yang cocok menjadi sampler di bawah controller yang dipilih. Selama pemutaran ulang, JMeter mengirimkan permintaan secara langsung; ia tidak meluncurkan browser untuk setiap pengguna virtual.

Mengapa Merekam Alih-alih Membuat Naskah Secara Manual?

  • Merekam urutan permintaan, pengalihan, formulir, dan API latar belakang secara realistis.
  • Mengungkapkan panggilan XHR atau fetch yang mudah terlewatkan.
  • Menciptakan dasar yang cepat untuk perjalanan pengguna yang kompleks.
  • Mengurangi kesalahan transkripsi pada header dan parameter.

Konstruksi manual tetap lebih rapi untuk API kecil yang terdokumentasi. Perekaman membantu ketika perilaku jaringan browser belum dipahami. Untuk terminologi, lihat panduan jenis proxy kami.

Cara Merekam Skrip di JMeter 5.x

  1. Jalankan JMeter dalam mode GUI untuk pembuatan skrip.
  2. Tambahkan Grup Thread ke Rencana Pengujian.
  3. Tambahkan Pengontrol Perekaman di bawah Grup Thread.
  4. Tambahkan Pengaturan Default Permintaan HTTP dan Pengelola Cookie HTTP jika diperlukan.
  5. Tambahkan Perekam Skrip Uji HTTP(S) dan pilih Pengontrol Perekaman sebagai targetnya.
  6. Gunakan pola sertakan/kecualikan untuk membatasi lalu lintas yang tidak relevan.

Panduan perekaman resmi Apache JMeter adalah referensi resmi yang spesifik untuk versi tersebut.

Gunakan profil browser yang bersih: Ekstensi, sinkronisasi, telemetri, dan tab yang tidak terkait menciptakan permintaan yang berisik.

Langkah 1) Mengatur server Proksi HTTP

Perekam: pilih port lokal yang tidak terpakai seperti 8888, atur pengontrol target, dan klik Start.

Konfigurasikan browser pengujian dengan host proxy HTTP dan HTTPS. 127.0.0.1 dan port yang sama. Jika browser berjalan di VM atau kontainer lain, localhost mengacu pada lingkungan tersebut; gunakan alamat pribadi yang dapat dijangkau dan disetujui sebagai gantinya.

Proxy host: 127.0.0.1
Proxy port: 8888

Include: https?://test.example.com/.*
Exclude: .*(.png|.jpg|.gif|.css|.woff2)(?.*)?$

Jangan melakukan penyaringan terlalu agresif pada tahap pertama karena API aplikasi mungkin menggunakan subdomain lain. Rekam sekali, periksa host-nya, lalu perbaiki polanya.

Langkah 2) Catat aktivitas Anda

  1. Jalankan perekam dan percayai sertifikat sementara hanya di peramban uji yang terisolasi.
  2. Buka lingkungan pengujian yang telah diotorisasi.
  3. Lakukan satu perjalanan bersih dengan kecepatan manusia.
  4. Hentikan perekaman segera setelah tindakan bisnis terakhir.
  5. Kembalikan pengaturan proxy browser ke normal.

Ubah nama sampler berdasarkan tindakan bisnis dan kelompokkan permintaan terkait di bawah Pengontrol Transaksi. Hapus analitik, iklan, pembaruan browser, widget obrolan, dan sumber daya statis duplikat kecuali jika secara eksplisit berada dalam cakupan.

Periksa setiap sampler untuk mencari rahasia. Kata sandi harus berasal dari data runtime yang dilindungi, sementara perubahan token memerlukan korelasi.

Langkah 3) Jalankan Rencana Pengujian Anda

Validasi satu pengguna dan satu iterasi sebelum menambahkan beban. Gunakan View Results Tree untuk sementara, periksa pengalihan dan isi respons, dan tambahkan pernyataan untuk hasil bisnis yang diharapkan. HTTP 200 saja tidak membuktikan bahwa login atau checkout berhasil.

Threads: 1
Ramp-up: 1 second
Loop Count: 1

Setelah melakukan debugging, hapus listener yang membebani sistem dan jalankan tanpa GUI:

jmeter -n -t recorded-test.jmx -l results.jtl -e -o html-report

Direktori laporan harus baru atau kosong. Tingkatkan beban secara bertahap dan pantau sistem target serta JMeter.

Langkah 4) Simpan hasil tes Anda

Simpan rencana yang dapat digunakan kembali sebagai .jmx Simpan data yang dihasilkan secara terpisah:

  • JMX: sampler, controller, assertion, timer, variabel, dan konfigurasi.
  • JTL: hasil sampel mentah untuk analisis.
  • Dasbor HTML: persentil, throughput, kesalahan, dan thread aktif.
  • Metrik server: Telemetri CPU, memori, basis data, antrian, dan layanan.

Buat versi rencana dengan properti non-rahasia dan data uji. Catat versi JMeter dan Java, target build, lingkungan, jumlah pengguna, tahapan pengembangan, dan durasi.

Jangan menjalankan beban berat dari GUI. Pendengar GUI mengonsumsi memori dan dapat mendistorsi hasil.

Merekam Lalu Lintas HTTPS dan Sertifikat

Untuk HTTPS, JMeter menghasilkan otoritas sertifikat sementara saat perekam dimulai. Impor hanya ke browser pengujian khusus, rekam situs yang diotorisasi, lalu hapus.

  1. Mulai Perekam Skrip Uji HTTP(S).
  2. Temukan sertifikat ApacheJMeterTemporaryRootCA yang telah dibuat.
  3. Impor sebagai otoritas tepercaya di profil terisolasi.
  4. Rekam perjalanan HTTPS yang telah disetujui.
  5. Hapus sertifikat setelah selesai.

Pengikatan sertifikat (certificate pinning), TLS bersama (mutual TLS), peramban terkelola (managed browsers), aplikasi seluler (mobile apps), dan protokol transport yang lebih baru dapat memblokir penyadapan. Jangan melemahkan kontrol keamanan produksi. Gunakan build staging, spesifikasi API, atau metode pengambilan data alternatif yang disetujui.

Korelasi: Membuat Naskah yang Direkam Dapat Diputar Ulang

ID sesi, token CSRF, status OAuth, tanda tangan permintaan, dan ID sumber daya berubah antar eksekusi. Korelasi mengekstrak nilai baru dari satu respons dan menggantinya ke dalam permintaan berikutnya.

  1. Temukan respons yang pertama kali berisi nilai dinamis.
  2. Tambahkan Ekstraktor JSON, CSS, XPath, atau Ekspresi Reguler.
  3. Simpan hasilnya dalam variabel JMeter bernama.
  4. Ganti nilai yang dikodekan secara langsung di bagian selanjutnya dengan referensi variabel.
  5. Gagal total jika ekstraksi tidak menghasilkan kecocokan.
JSON Extractor
Variable: csrfToken
JSON Path: $.csrf.token
Default: NOT_FOUND

Later header:
X-CSRF-Token: ${csrfToken}

Parameterisasi menyediakan data pengguna independen, seringkali dari CSV. Korelasi menangkap data yang dihasilkan server selama eksekusi. Rencana yang realistis biasanya membutuhkan keduanya.

Penyelesaian masalah

MasalahKemungkinan penyebabMemperbaiki
Tidak ada permintaan yang tercatat.Proxy salah, perekam berhenti, konflik port, atau aturan bypass.Konfirmasikan host dan port, mulai perekam, dan hapus pengecualian target.
Peringatan HTTPSCA sementara hilang atau kedaluwarsaBuat sertifikat perekam baru dan impor hanya ke profil pengujian.
Terlalu banyak lalu lintasEkstensi, telemetri, tab lain, atau pola umum.Gunakan profil yang bersih dan perbaiki filter penyertaan/pengecualian.
Upaya login ulang gagal.Cookie, token, alur OAuth, atau korelasi yang hilangTambahkan Pengelola Cookie, ekstrak nilai dinamis, dan periksa pengalihan.
Setelah itu, buka browser secara offline.Ini masih mengarah ke proxy lokal yang dihentikan.Pulihkan pengaturan otomatis atau tanpa proxy.
Kesalahan memori JMeterpendengar GUI atau penyimpanan respons besarGunakan mode non-GUI dan batasi data respons yang tersimpan.
Berbeda dengan browserJMeter tidak merender atau mengeksekusi JavaScript halaman.Uji API yang mendasarinya dan gunakan alat bantu peramban untuk menampilkan metrik.

JMeter adalah alat pengukur kinerja protokol. Alat ini tidak dapat mengukur peristiwa visual seperti Largest Contentful Paint secara mandiri.

Pertanyaan Umum Demo Slot

Apa yang menggantikan nama HTTP Proxy Server di JMeter?

Komponen tersebut sekarang disebut Perekam Skrip Uji HTTP(S).

Port perekam mana yang harus saya gunakan?

Port lokal mana pun yang tidak terpakai dapat digunakan. Port 8888 adalah port umum, dan browser harus menggunakan nilai yang sama.

Bisakah JMeter merekam lalu lintas HTTPS?

Ya, ketika peramban uji terisolasi tersebut mempercayai sertifikat perekaman sementara JMeter.

Mengapa skrip yang direkam gagal saat diputar ulang?

Token dinamis, cookie, alur autentikasi, perbedaan host, dan data yang hilang umumnya memerlukan korelasi dan parameterisasi.

Bisakah JMeter merekam Chrome?

Ya. Konfigurasikan profil Chrome yang bersih untuk menggunakan perekam lokal JMeter.

Apakah saya perlu menjalankan uji beban dari GUI JMeter?

Tidak. Bangun dan debug dalam mode GUI, lalu jalankan pemuatan dalam mode non-GUI.

Apakah JMeter berperilaku seperti browser sungguhan?

Tidak. Ini mengirimkan permintaan protokol tetapi tidak merender HTML atau menjalankan JavaScript browser.

Apakah aman merekam login produksi?

Lebih disukai menggunakan akun staging dan pengujian. Pengambilan data untuk produksi memerlukan otorisasi eksplisit dan penanganan rahasia yang ketat.