Prosesor masuk JMeter: PraProsesor & PascaProsesor

โšก Ringkasan Cerdas

Prosesor masuk JMeter Memodifikasi permintaan Sampler sebelum atau setelah eksekusi. PreProcessor menyiapkan data permintaan, sedangkan PostProcessor mengeksekusi data permintaan.tracts mengatur nilai dan mengontrol alur pengujian, memungkinkan korelasi, parameterisasi dinamis, dan perilaku pengujian kinerja yang andal.

  • โš™๏ธ Definisi Inti: Sebuah prosesor memodifikasi Sampler di dalam lingkupnya, mengeksekusi baik sebelum permintaan atau setelah respons.
  • ๐Ÿ” Peran Praprosesor: Preprosesor menetapkan variabel, menulis ulang URLs, mengurai tautan HTML, dan menerapkan parameter pengguna sebelum Sampler dijalankan.
  • ๐Ÿ“ค Peran PostProcessor: Postprosesor membaca respons, misalnyatracMengubah nilai dinamis menjadi variabel, dan memutuskan apakah pengujian yang sedang berjalan akan dilanjutkan.
  • ๐Ÿงฉ ExtracPemilihan tor: Ekspresi Reguler, Batasan, JSON, CSS/jQuery, dan XPath extracSetiap tors cocok dengan format respons yang berbeda.
  • ๐Ÿ›‘ Alur kontrol: Result Status Action Handler menghentikan satu thread atau seluruh pengujian ketika Sampler gagal.
  • ๐Ÿงช Panduan Terapan: Enam langkah membentuk rencana yang akan berhenti secara otomatis begitu jalur yang tidak valid menghasilkan kesalahan server.

Prosesor masuk JMeter

Sebuah prosesor di Apache JMeter adalah elemen rencana pengujian yang memodifikasi Sampler di dalam cakupannya. Elemen ini berjalan secara otomatis, baik tepat sebelum permintaan dikirim. JMeter atau segera setelah respons tiba, yang menjadikannya mekanisme utama untuk menangani data dinamis selama proses tersebut. uji kinerja.

Ada 2 Jenis prosesor:

  1. Pra-prosesor
  2. Pasca-prosesor

Jangkauan (scope) menentukan seberapa jauh prosesor dapat menjangkau. Prosesor yang ditempatkan langsung di bawah Rencana Tes atau sebuah Thread Group berlaku untuk setiap Sampler di bawahnya, sementara sebuah prosesor yang bersarang di dalam satu Sampler hanya memengaruhi permintaan tersebut. Memahami aturan ini mencegah kesalahan konfigurasi yang dibahas di bagian pemecahan masalah pada halaman ini.

Pra-prosesor

Pra-prosesor menjalankan beberapa tindakan sebelum membuat Permintaan Sampler.

Perhatikan contoh sederhana: katakanlah Anda menginginkannya JMeter untuk "menjelajahi" melalui situs web yang sedang diuji, parse tautan(periksa semua tautan di halaman) dan kembali HTMLnya. Anda akan menambahkan beberapa tindakan seperti โ€œHTML link parserโ€ ke pengontrol Anda sebelum membuat permintaan HTTP.

Pra-Prosesor

Diagram di atas menunjukkan Pre-processor yang berada di antara controller dan permintaan keluar. Karena berjalan lebih dulu, ini adalah tempat yang tepat untuk membangun data permintaan: menghasilkan stempel waktu, membaca nilai dari kolom CSV, menulis ulang pengidentifikasi sesi ke dalam URLatau memberikan kredensial yang berbeda kepada setiap pengguna virtual.

Pasca-prosesor

Pasca-prosesor menjalankan beberapa tindakan setelah membuat Permintaan Sampler.

Perhatikan contoh sederhana: JMeter mengirimkan permintaan HTTP ke server web yang sedang diuji (dll www.google.com) dan dapatkan jawabannya. Kamu ingin JMeter Untuk menghentikan pengujian jika respons server berupa kesalahan. Anda dapat menggunakan post-processor untuk melakukan tugas di atas sebagai berikut:

Pasca-Prosesor

Seperti yang diilustrasikan pada diagram kedua, Post-processor membaca respons setelah Sampler selesai. Ini juga merupakan jawaban standar untuk korelasi. Ketika server mengembalikan token, ID sesi, atau nomor pesanan yang berubah pada setiap eksekusi, Post-processor menangkap nilai tersebut ke dalam sebuah JMeter variabel sehingga Sampler berikutnya dapat menggunakannya kembali.

Jenis-jenis Preprosesor dalam JMeter

Apache JMeter Dilengkapi dengan serangkaian PreProcessor yang ringkas. Masing-masing mempersiapkan Sampler dengan cara yang berbeda, sehingga memilih elemen yang tepat membuat rencana pengujian tetap mudah dibaca dan dipelihara.

  • Contoh Batas Waktu: Menentukan durasi maksimum untuk sebuah permintaan. Setiap Sampler yang berjalan lebih lama dari nilai yang dikonfigurasi akan ditandai sebagai gagal.
  • Parameter Pengguna: Memberikan nilai spesifik pada variabel untuk setiap pengguna virtual, sehingga setiap thread mengirimkan kumpulan datanya sendiri.
  • Pengurai Tautan HTML: Mesin pencari tersebut menelusuri halaman yang sedang diuji, menguraikan tautan yang ditemukannya, dan memasukkannya ke dalam Permintaan HTTP berikutnya.
  • HTTP URL Pengubah Penulisan Ulang: Menyuntikkan pengidentifikasi sesi ke dalam URL untuk aplikasi yang tracsesi k tanpa cookie.
  • Parameter Pengguna RegEx: Mengisi parameter permintaan menggunakan nilai yang diambil oleh ekspresi reguler dari respons sebelumnya.
  • Praprosesor JDBC: Menjalankan pernyataan SQL sebelum Sampler, yang berguna untuk mengisi atau mengatur ulang catatan basis data.
  • Praprosesor JSR223: Menjalankan a Groovy or Java Skrip untuk logika persiapan kustom apa pun. Ini menggantikan BeanShell PreProcessor yang lebih lama dan berkinerja jauh lebih baik di bawah beban.

๐Ÿ’ก Kiat: Lebih baik menggunakan PreProcessor JSR223 dengan Groovy bahasa melalui BeanShell. Groovy Skrip dikompilasi dan disimpan dalam cache, sehingga mengonsumsi CPU jauh lebih sedikit ketika ribuan thread berjalan secara paralel.

Jenis-jenis Postprosesor dalam JMeter

Postprosesor terbagi menjadi dua kelompok: misalnyatracTor yang mengambil nilai dari respons, dan handler yang bereaksi terhadap hasil Sampler. Tabel di bawah ini memetakan setiap elemen ke format respons yang paling sesuai.

Pemroses Pasca Cocok Untuk Penggunaan Khas
Ekspresi Reguler Extractor Balasan teks apa pun Mengambil token atau ID dari HTML dan teks biasa.
Batas Extractor Balasan teks apa pun Mengambil nilai menggunakan batas kiri dan kanan, bukan ekspresi reguler lengkap.
JSON Extractor Respons JSON Membaca kolom dari muatan REST selama Pengujian API
Contoh CSS/jQuerytractor Respons HTML Memilih elemen menggunakan selektor CSS
XPath Extractor Respons XML dan XHTML Menavigasi struktur pohon dokumen
Pemroses Pasca JDBC Hasil basis data Memverifikasi atau membersihkan baris setelah permintaan
Pemroses Pasca JSR223 Tanggapan apa pun Penguraian dan pernyataan berbasis skrip khusus
Penangan Tindakan Status Hasil Tanggapan apa pun berhentiping suatu thread atau seluruh pengujian ketika Sampler gagal

Batas Extractor tiba di JMeter 4.0 dan seringkali merupakan pilihan tercepat untuk ditulis, karena hanya meminta teks yang berada tepat di sebelah kiri dan kanan nilai tersebut. Ekspresi Reguler ExtracTor tetap menjadi pilihan yang lebih fleksibel ketika markup di sekitarnya bervariasi antar respons.

Perbedaan Antara PreProcessor dan PostProcessor

Kedua elemen tersebut memiliki aturan cakupan yang sama, namun mereka menyelesaikan masalah yang berlawanan. Perbandingan di bawah ini merangkum perbedaan tersebut sebelum contoh yang telah dikerjakan.

Parameter Praprosesor Pemroses Pasca
Waktu eksekusi Berjalan sebelum Sampler mengirimkan permintaannya Berjalan setelah Sampler menerima responsnya
Tujuan utama Mempersiapkan dan memodifikasi data permintaan. Membaca data respons dan memberikan reaksi terhadapnya.
Elemen-elemen umum Parameter Pengguna, Pengurai Tautan HTML, Praprosesor JSR223 Ekspresi Reguler Extractor, JSON Extractor, Penanganan Aksi Status Hasil
Efek pada aliran Tidak dapat menghentikan pengujian, hanya membentuk permintaan. Dapat menghentikan thread atau seluruh jalankan pengujian.
Tujuan bersama Parameterisasi Korelasi dan penanganan kesalahan

Dalam praktiknya, keduanya bekerja berpasangan. Sebuah PostProcessor menangkap token sesi dari respons login, dan sebuah PreProcessor pada permintaan berikutnya menyuntikkan token tersebut sebelum panggilan dikirim. Contoh berikut menunjukkan bagian PostProcessor dari pola tersebut.

Contoh Pasca Prosesor

Tutorial ini akan menunjukkan petunjuk langkah demi langkah tentang cara menggunakan Post-processor di JMeter. Mari kita mulai dengan skrip pengujian sederhana.

  1. JMeter mengirimkan permintaan HTTP ke server web yang sedang diuji www.google.com.
  2. JMeter mendapat respons dari Google Server.
  3. Jika respons server adalah sebuah kesalahan, JMeter akan berhenti ujian.
  4. Jika respons server OK (tidak ada kesalahan), JMeter akan terus ujian.

Berikut adalah peta jalan dari contoh ini:

Contoh Pasca Prosesor

Prasyarat:

We penggunaan kembali Langkah 1 dan Langkah 2 dalam artikel JMeter Pengujian Kinerja. Jika JMeter belum terpasang, ikuti petunjuknya. JMeter petunjuk pemasangan pertama.

Langkah 1) Tambahkan Grup Thread

Klik kanan pada Rencana Tes dan tambahkan grup utas baru: Add -> Thread (Pengguna) -> Grup Benang

Namun di panel kontrol Grup Thread, masukkan Properti Thread sebagai berikut:

Tambahkan Grup Utas

Pengaturan ini memungkinkan JMeter membuat 10 permintaan pengguna ke http://www.google.com 10 kali.

Langkah 2) Tambahkan JMeter elemen

  • Tambahkan permintaan HTTP default
  • Tambahkan permintaan HTTP

Kami masih membuat JMeter kirim permintaan http://www.google.com untuk Google Server.

Langkah 3) Tambahkan Elemen Pasca-Prosesor

Klik Kanan Grup Benang -> Add -> Pasca Prosesor -> Penangan Tindakan Status Hasil

Penangan Tindakan Status Hasil memungkinkan pengguna menghentikan thread atau keseluruhan pengujian jika permintaan pengguna gagal.

Tambahkan Elemen Pasca-Prosesor

Di Panel Pegangan Tindakan Status Hasil, pilih Hentikan Tes Sekarang. Pilihan ini akan menghentikan pengujian jika JMeter dapatkan kesalahan dari respons server.

Tambahkan Elemen Pasca-Prosesor

Langkah 4) Konfigurasikan Permintaan HTTP

Buka Panel Permintaan HTTP. Memasuki "abc" ke bidang Jalur.

Konfigurasikan Permintaan HTTP

Saat Anda masuk "abc" ke jalan setapak, JMeter akan membuat URL meminta untuk Google Server: http://www.google.com/abc. Ini URL tidak ada di Google server. Ini adalah salah URL meminta demikian Google Server akan mengembalikan kesalahan.

Langkah 5) Tambahkan Lihat Pohon Hasil

Klik Kanan Grup Benang -> Add -> Pendengar -> Lihat Pohon Hasil

Tambahkan Lihat Pohon Hasil

Langkah 6) Jalankan Tes

Pilih Lihat Pohon Hasil, tekan tombol Jalankan pada bilah Menu. Anda akan melihat kesalahan tanggapan dari Google server dan pengujian akan berhenti tanpa menyelesaikan 100 thread.

Jalankan Tes

Sekarang kembali ke langkah 4, buka panel Permintaan HTTP, masukkan โ€œkalenderโ€ ke panel. Itu berhasil JMeter membuat URL permintaan https://calendar.google.com/calendar/u/0/r ke Google server. Ini adalah benar URL meminta demikian Google Server akan mengembalikan OK (tidak ada kesalahan).

Jalankan Tes

Pilih Lihat Pohon Hasil, tekan tombol Jalankan pada bilah Menu. Anda akan melihat OK tanggapan dari Google server dan pengujian akan berlanjut hingga semua 100 thread selesai.

Jalankan Tes

Menambahkan sebuah pernyataan Penggunaan Result Status Action Handler membuat pengecekan menjadi lebih ketat, karena sebuah pernyataan dapat menyebabkan Sampler yang mengembalikan HTTP 200 tetapi mengirimkan konten yang salah menjadi gagal.

Penyelesaian masalah

Jika Anda menghadapi 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 ProsesorTestPlan.jmx di Jmeter
  4. Double-klik pada Grup Utas -> Lihat Pohon Hasil
  5. Jalankan Tes

Jika sebuah Post-processor tampak tidak melakukan apa pun, periksa posisinya terlebih dahulu. Post-processor yang ditempatkan di luar jangkauan Sampler yang ditargetkannya tidak akan pernah berjalan, yang merupakan penyebab paling sering terjadinya output kosong.tracvariabel ted. Elemen terkait seperti pengendali ke pengujian terdistribusi mengikuti logika cakupan yang sama.

Pertanyaan Umum Demo Slot

PreProcessor mengubah isi permintaan sebelum dikirim. Timer hanya menghentikan sementara thread untuk interval waktu tertentu. Keduanya berjalan sebelum Sampler, tetapi Timer tidak pernah memodifikasi data permintaan.

Sang mantantracTor menyimpan nilai tersebut ke dalam sebuah JMeter Nama variabel yang Anda definisikan. Sampler berikutnya dalam thread yang sama akan merujuknya dengan sintaks ${variableName}, dalam jalur, header, atau isi permintaan.

Ya. Beberapa asisten AI sekarang membaca respons yang direkam dan menyarankan ekspresi reguler atau pasangan batas untuk korelasi. Saran tersebut masih perlu ditinjau, karena AI tidak dapat mengetahui nilai mana yang benar-benar dinamis.

Ya. Asisten AI membandingkan respons mentah dengan respons yang telah ada.tracekspresi tor dan menunjukkan ketidaksesuaian dalam escaping, kelompokping, atau cakupan. Verifikasi perbaikan di dalam View Results Tree sebelum mempercayainya dalam proses pemuatan.

Prosesor berjalan sekali untuk setiap eksekusi Sampler di dalam lingkupnya. Dengan sepuluh thread,ping Lima kali, sebuah prosesor yang terhubung ke Sampler tersebut mengeksekusi sebanyak lima puluh kali, dan setiap thread menyimpan nilai variabelnya masing-masing.

Ringkaslah postingan ini dengan: