Server Proksi HTTP masuk JMeter: Rekam Contoh Skrip

โšก Ringkasan Cerdas

JMeter HTTP Proxy Server merekam aktivitas browser ke dalam skrip pengujian yang dapat digunakan kembali. Perekam berada di antara browser dan situs web, menangkap setiap permintaan ke dalam Recording Controller, dan rencana yang tersimpan diputar ulang oleh banyak pengguna virtual.

  • ๐ŸŽฌ Tujuan Inti: Proxy tersebut memantau dan merekam aktivitas pengguna saat browser biasa mengakses aplikasi yang sedang diuji.
  • ๐Ÿงฑ Kerangka Rencana: Thread Group, HTTP Request Defaults, dan Recording Controller dibuat sebelum perekaman dimulai.
  • ๐ŸŽฏ Target Controller: Pengaturan ini menentukan di mana sampler yang ditangkap akan ditulis di dalam struktur rencana pengujian.
  • ๐ŸŒ Pengaturan Browser: Browser harus mengarahkan proxy HTTP-nya ke JMeter port, 8888 secara default.
  • ๐Ÿ” Perekaman HTTPS: Impor ApacheJMeterJadikan TemporaryRootCA.crt sebagai otoritas tepercaya, lalu hapus setelahnya.
  • รฐลธยงยน Bersihkan Skrip: Permintaan iklan dan analitik juga direkam dan harus dikecualikan atau dihapus.
  • ๐Ÿ”— Lakukan Korelasi Sebelum Penskalaan: Ganti token sesi yang direkam dengan extracvariabel ted, atau pemutaran ulang gagal.
  • โš ๏ธ Catatan Versi: WorkBench telah dihapus pada JMeter 5.0; elemen tersebut sekarang adalah Perekam Skrip Uji HTTP(S).

JMeter Skrip perekaman server proxy HTTP

Apa JMeter Server Proksi HTTP?

The JMeter HTTP Proxy Server adalah perekam bawaan yang berada di antara browser dan situs web yang sedang diuji. Ia memantau dan merekam aktivitas pengguna saat aplikasi dijelajahi secara normal, dan mengubah setiap permintaan yang ditangkap menjadi sampler Permintaan HTTP di dalam rencana pengujian. Karena JMeter 3.0 elemen tersebut telah diberi nama Perekam Skrip Uji HTTP(S), dan kedua nama tersebut menggambarkan komponen yang sama.

Rekam pengujian Membantu penguji merekam dan memutar ulang aktivitas terhadap target pengujian. Ini adalah jenis pengujian otomatis, tetapi untuk banyak pengguna sekaligus.

Mengapa Merekam Alih-alih Membuat Naskah Secara Manual?

Alur perjalanan pengguna yang realistis di situs modern menghasilkan puluhan permintaan, masing-masing dengan header, cookie, dan parameter formulir sendiri. Typing Memasukkan semua data tersebut ke dalam sampler secara manual itu lambat dan rawan kesalahan. Perekaman menangkap lalu lintas persis yang dikirim oleh browser, yang memberikan tiga keuntungan:

  • Akurasi: Urutan header, cookie, dan kolom formulir tersembunyi ditangkap persis seperti yang diterima server.
  • Kecepatan: Sebuah perjalanan sepanjang sepuluh halaman membutuhkan waktu beberapa menit untuk direkam dan berjam-jam untuk ditulis secara manual.
  • Cakupan: Panggilan AJAX latar belakang yang tidak terlihat di antarmuka tetap muncul dalam rekaman.

Rekaman ini merupakan titik awal, bukan hasil uji yang lengkap. Masih perlu dibersihkan, dikorelasikan, dan diparameterisasi sebelum dapat digunakan. pengujian bebanBagian-bagian di bawah ini mencakup jalur lengkap dari keadaan kosong. JMeter jendela ke skrip yang dapat diputar ulang dengan andal.

Berikut adalah peta jalan contoh praktis ini

Server Proksi HTTP masuk JMeter

Cara Merekam Naskah di JMeter 5.x

Rilis saat ini adalah Apache JMeter 5.6.3, diterbitkan pada 9 Januari 2024, dan ini mensyaratkan Java 8 atau lebih baru, dengan Java 17 direkomendasikan. Siapa pun yang mengikuti panduan bergambar lebih lanjut di halaman ini pada rilis tersebut tidak akan menemukan node WorkBench, karena telah dihapus di versi 5.0. Fungsionalitasnya tidak hilang; melainkan dipindahkan. Perekam sekarang ditambahkan langsung ke Rencana Pengujian dan disebut Perekam Skrip Pengujian HTTP(S).

Rute tercepat adalah menggunakan template yang sudah dikemas. Pilih File > template > Rekaman ke JMeter Menghasilkan rencana lengkap yang berisi Thread Group, HTTP Request Defaults, Recording Controller, dan perekam itu sendiri, yang sudah terhubung. Membangun struktur yang sama secara manual membutuhkan langkah-langkah di bawah ini.

  1. Buat kerangka rencana. Tambahkan Thread Group, lalu tambahkan Recording Controller di bawahnya. Di sinilah sampler yang direkam akan ditempatkan.
  2. Tambahkan perekam ke Rencana Pengujian. Klik kanan pada node Rencana Pengujian dan pilih Add > Elemen Non-Ujian > Perekam Skrip Uji HTTP(S)Ini adalah saudara dari Thread Group, bukan anak.
  3. Atur portnya. Port default adalah 8888. Port apa pun yang tersedia dapat digunakan, asalkan browser dikonfigurasi agar sesuai.
  4. Pilih Target Pengendali. Pilih Pengontrol Perekaman yang dibuat pada langkah pertama, sehingga permintaan dikelompokkan di tempat yang Anda harapkan, bukan tersebar di akar rencana.
  5. Add URL pola pengecualian. Pada tab Penyaringan Permintaan, kecualikan sumber daya statis dengan pola seperti .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Hal ini menghilangkan sebagian besar pembersihan manual yang dijelaskan nanti.
  6. Nyalakan perekam. Klik Start di bagian atas panel perekam. JMeter menulis ApacheJMeterSaat ini, TemporaryRootCA.crt dipindahkan ke folder bin-nya, yang memungkinkan perekaman HTTPS.
  7. Arahkan browser ke proxy. Gunakan localhost dan port yang dipilih, lalu navigasikan aplikasi seperti biasa.
  8. Berhenti dan bereskan. Tekan Berhenti, hapus semua panggilan pihak ketiga yang tersisa, dan simpan paketnya.
  9. Lakukan validasi sebelum melakukan penskalaan. Klik kanan pada Grup Utas dan pilih MengesahkanIni menjalankan rencana tersebut sekali dengan satu thread, sehingga kegagalan akan muncul sebelum beban apa pun diterapkan.

Satu kebiasaan lagi membedakan skrip yang berfungsi dari skrip yang andal. Gunakan antarmuka grafis hanya untuk membangun dan men-debug, lalu jalankan pengujian sebenarnya dari baris perintah dengan jmeter -n -t plan.jmx -l results.jtl -e -o report, yang juga menghasilkan dasbor HTML. Perintah yang sama merupakan dasar dari pengujian terdistribusi di beberapa generator beban. Instalasi dibahas dalam JMeter petunjuk pemasangan, dan prosedur lengkapnya didokumentasikan pada Apache JMeter halaman perekam.

โš ๏ธ Catatan versi: Tangkapan layar dalam panduan di bawah ini diambil dari perangkat yang lebih lama. JMeter rilis yang masih memiliki node WorkBench. WorkBench dihapus pada JMeter 5.0. Setiap konsep masih berlaku; hanya lokasi perekam yang berubah, dan prosedur saat ini adalah yang diberikan di atas.

Langkah 1) Mengatur server Proksi HTTP

Ini adalah panduan langkah demi langkah untuk menyiapkan proxy

  1. Start JMeter
  2. Pilih Rencana Tes di pohon
  3. Add Grup BenangKlik kanan pada Rencana Tes dan tambahkan grup utas baru: Add > Thread (Pengguna) > Grup Benang

Mengatur server Proksi HTTP

  1. Add Permintaan HTTPPilih Grup Utas; klik kanan Add > Elemen Konfigurasi > Default Permintaan HTTP

Mengatur server Proksi HTTP

Di elemen Default Permintaan HTTP baru: Di Nama server atau IP, masukkan โ€œgoogle.comโ€. Anda harus mengosongkan bidang lainnya

Mengatur server Proksi HTTP

  1. Add Pengontrol PerekamanKlik kanan pada โ€œGrup Threadโ€ dan tambahkan pengontrol perekaman: Add > Pengontrol Logika > Pengontrol Perekaman

Mengatur server Proksi HTTP

  1. Add Proxy Server ke WorkBench. Klik kanan pada Workbench dan tambahkan proxy http: Add > Elemen Non-Ujian > Server Proksi HTTP. Di JMeter 5.x, klik kanan Rencana Tes node sebagai gantinya dan pilih Perekam Skrip Uji HTTP(S).

Mengatur server Proksi HTTP

  1. set Target pengawas di mana skrip rekaman Anda akan ditambahkan

Mengatur server Proksi HTTP

  1. Start Server Proksi. Kembali ke Server Proksi HTTP, dan klik Start tombol di bagian bawah. Sekarang milikmu JMeter server proksi dimulai

Mengatur server Proksi HTTP

  1. Mulai Browser Anda (saya menggunakan Firefox), pilih Alat Bantu > pilihan > Advanced > jaringan > Pengaturan > Masukkan proxy HTTP seperti gambar di bawah ini. Saat ini Firefox merilis dialog yang sama yang dicapai melalui Pengaturan > Umum > Pengaturan Jaringan.

Mengatur server Proksi HTTP

Langkah 2) Catat aktivitas Anda

  1. Sekarang Luncurkan http://www.google.com di peramban web Anda (JMeter masih buka)
  2. Lakukan kegiatan mencari kata kunci โ€œguru99".
  3. Kembali ke JMeter, di Server Proksi HTTP, klik berhenti saat selesai

Rekam Aktivitas

  1. Setelah selesai merekam, Anda akan melihatnya JMeter secara otomatis membuat permintaan HTTP baru seperti gambar di bawah ini

Rekam Aktivitas

JMeter telah mencatat permintaan pengguna ke Halaman Beranda of Google website. http://www.google.com/

Permintaan HTTP lainnya ditampilkan pada gambar di atas, Anda harus menghapusnya. Karena suatu saat JMeter juga merekam beberapa tautan iklan saat Anda mencari kata kunci di GoogleKita sebaiknya mengabaikan hal-hal tersebut dalam Rencana Pengujian kita.

  1. Klik File > Simpan Rencana Pengujian Anda sebagai

Rekam Aktivitas

  1. Sebuah kotak dialog akan muncul > masukkan nama rencana pengujian Anda di kolom Nama File > Klik Simpan. Sekarang Rencana Pengujian Anda telah tersimpan dengan nama RecordingTestPlan.jmx

Rekam Aktivitas

Langkah 3) Jalankan Rencana Pengujian Anda

  1. Pilih Grup Thread > Tambah > Pendengar > Laporan Ringkasan

Jalankan Rencana Tes

  1. Laporan Ringkasan akan menunjukkan beberapa statika dasar

Jalankan Rencana Tes

  1. Pilih Thread Group, masukkan informasi seperti gambar di bawah ini

Jalankan Rencana Tes

Anda dapat merujuk pada artikel tersebut. JMeter Pengujian Kinerja untuk mengetahui detail tentang konfigurasi Thread Group.

  1. Sebelum memulai pengujian, pilih โ€œLaporan Ringkasanโ€. Saat Anda siap menjalankan pengujian, pilih Jalankan > Mulai (Ctrl+R). JMeter Aktivitas Anda akan diputar ulang sebanyak 100 kali. Selama pengujian berlangsung, statistik akan berubah hingga pengujian selesai.

Jalankan Rencana Tes

Langkah 4) Simpan hasil tes Anda

  1. Klik Simpan Data Tabel untuk menyimpan hasil tes ke file

Simpan Hasil Tes

  1. Masukkan nama hasil tes dan klik Simpan. Hasil Tes di JMeter disimpan dalam format *.csv sebagai default

Simpan Hasil Tes

Unduh Rencana Tes Perekaman File

Unduh File Server Proksi HTTP

Merekam Lalu Lintas HTTPS dan Sertifikat

Hampir setiap situs sekarang menggunakan HTTPS, yang mana panduan awal sudah ada sebelum hal itu terjadi. Proxy tidak dapat membaca lalu lintas terenkripsi kecuali browser mempercayainya, jadi diperlukan satu langkah tambahan.

Saat perekam mulai beroperasi, JMeter menghasilkan sertifikat root sementara bernama ApacheJMeterTemporaryRootCA.crt di direktori bin-nya. Impor file tersebut ke browser sebagai otoritas sertifikat tepercaya, lalu mulai ulang browser. JMeter kini dapat menampilkan sertifikatnya sendiri untuk setiap situs dan mendekripsi sesi untuk direkam.

Ada tiga poin yang perlu diketahui:

  • Sertifikat tersebut kedaluwarsa setelah tujuh hari. Ini disengaja. Hapus saja dan biarkan. JMeter Membuat versi baru daripada memperpanjang masa berlakunya.
  • Lepaskan setelah selesai. Membiarkan sertifikat root tepercaya terpasang pada mesin yang sedang beroperasi merupakan risiko keamanan nyata, bukan sekadar teori.
  • Beberapa aplikasi menolaknya. Situs yang menggunakan certificate pinning atau mutual TLS sama sekali tidak dapat direkam melalui proxy, dan skrip harus dibuat secara manual dari alat pengembang browser.

Korelasi: Membuat Naskah yang Direkam Dapat Diputar Ulang

Skrip yang direkam mereproduksi persis apa yang terjadi sekali, yang jarang terjadi pada kali kedua. Pengidentifikasi sesi, token, dan kunci yang dihasilkan yang ditangkap selama perekaman menjadi nilai mati pada saat skrip diputar ulang, dan eksekusi gagal dengan cara yang tampak seperti kesalahan aplikasi.

Korelasi adalah solusinya. A pascaprosesor seperti Ekspresi Reguler Extractor atau JSON ExtracTor menangkap nilai terbaru dari respons login, menyimpannya dalam sebuah variabel, dan permintaan selanjutnya merujuk pada variabel tersebut, bukan literal yang telah direkam.

Alur kerjanya singkat:

  1. Putar ulang skrip sekali dengan listener View Results Tree dan temukan permintaan pertama yang gagal.
  2. Bandingkan permintaan yang gagal dengan rekaman. Setiap nilai yang berbeda antara dua kali percobaan perlu dikorelasikan.
  3. Tambahkan mantantracUntuk mengakses respons yang menghasilkan nilai tersebut, ganti literal yang dikodekan secara langsung dengan referensi variabel.
  4. Tambahkan sebuah pernyataan Jadi, halaman yang mengembalikan HTTP 200 dengan pesan kesalahan tetap gagal dalam pengujian.

Skrip baru aman untuk ditingkatkan skalanya setelah dilakukan korelasi. Menjalankan perekaman tanpa korelasi pada seratus pengguna mengukur penanganan kesalahan, bukan... prestasiElemen-elemen selanjutnya dibahas di bagian selanjutnya. JMeter tutorial.

Penyelesaian masalah

Jika Anda mengalami masalah saat menjalankan skenario di atas, lakukan hal berikut:

  1. Periksa apakah Anda terhubung ke internet melalui proxy. Jika ya, hapus proxy tersebut.
  2. Buka contoh baru JMeter.
  3. Buka file RecordingTestPlan.jmx di JMeter.
  4. Klik kanan pada Workbench > Gabungkan > Pilih HTTP Proxy Server.jmx. Pada JMeter 5.x, gabungkan ke node Test Plan saja, karena WorkBench sudah tidak ada lagi.
  5. Klik pada Grup Thread > Laporan Ringkasan.
  6. Jalankan Tes.

Dua gejala tambahan menjelaskan sebagian besar kegagalan yang tersisa. Jika browser melaporkan bahwa ia tidak dapat terhubung, perekam tidak pernah dimulai, atau port yang diatur di browser tidak sesuai dengan port yang diatur di JMeterJika halaman dimuat secara normal tetapi tidak ada yang muncul di pohon, berarti lalu lintasnya adalah HTTPS dan sertifikat belum diimpor.

Pertanyaan Umum Demo Slot

Itu dihapus pada JMeter 5.0. Elemen non-pengujian seperti Perekam Skrip Pengujian HTTP(S) sekarang ditambahkan langsung di bawah node Rencana Pengujian.

Add URL Pola yang akan dikecualikan pada tab Penyaringan Permintaan di perekam. Pola yang mencakup ekstensi file statis umum akan menghilangkan sebagian besar gangguan sebelum mencapai skrip.

AI mengklasifikasikan sampel yang direkam ke dalam langkah-langkah bisnis dan gangguan pihak ketiga, kemudian menyarankan mana yang perlu dihapus dan nilai mana yang perlu dikorelasikan, mengubah tangkapan mentah menjadi skrip yang dapat digunakan dengan lebih cepat.

Ya. Berdasarkan isi respons dan nilai yang ingin ditangkap, AI akan membuat ekspresi reguler atau pasangan batas. Verifikasi di View Results Tree, karena suatu pola dapat cocok di satu respons tetapi tidak di respons lainnya.

Browser tidak mempercayai JMeter Proxy. Impor ApacheJMeterTemporaryRootCA.crt dari JMeter Jadikan folder bin sebagai otoritas tepercaya, mulai ulang browser, dan rekam lagi.

Ya. Atur proxy Wi-Fi perangkat ke IP dan port mesin perekam, lalu instal JMeter Sertifikat pada perangkat. Aplikasi yang menggunakan certificate pinning masih belum dapat direkam.

Tidak. Antarmuka grafis hanya untuk membangun dan melakukan debugging. Jalankan pengujian sebenarnya dalam mode baris perintah, yang menggunakan memori jauh lebih sedikit dan menghasilkan laporan HTML pada akhirnya.

Rencana pengujian disimpan sebagai .jmx, format XML yang cocok untuk kontrol versi. Hasil ditulis sebagai .jtl, yang secara default adalah CSV dan juga dapat disimpan sebagai XML.

Ringkaslah postingan ini dengan: