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.

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:
- Pra-prosesor
- 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.
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:
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.
- JMeter mengirimkan permintaan HTTP ke server web yang sedang diuji www.google.com.
- JMeter mendapat respons dari Google Server.
- Jika respons server adalah sebuah kesalahan, JMeter akan berhenti ujian.
- Jika respons server OK (tidak ada kesalahan), JMeter akan terus ujian.
Berikut adalah peta jalan dari contoh ini:
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:
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.
Di Panel Pegangan Tindakan Status Hasil, pilih Hentikan Tes Sekarang. Pilihan ini akan menghentikan pengujian jika JMeter dapatkan kesalahan dari respons server.
Langkah 4) Konfigurasikan Permintaan HTTP
Buka Panel Permintaan HTTP. Memasuki "abc" ke bidang Jalur.
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
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.
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).
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.
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:
- Periksa apakah Anda terhubung ke internet melalui proxy. Jika ya, hapus proxy tersebut.
- Buka contoh baru Jmeter
- Buka ProsesorTestPlan.jmx di Jmeter
- Double-klik pada Grup Utas -> Lihat Pohon Hasil
- 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.









.gif)

.gif)