Regexp pernyataan respons Jmeter

Saya memiliki masalah dengan menggunakan regexp dalam pernyataan respons di jmeter seperti yang digunakan dalam ekstraktor ekspresi reguler. Ini adalah salah satu contoh yang bermasalah dengan saya

Ekstraktor ekspresi reguler - mengekstrak sessionId dari respons JSON "sessionId":"([^"]+)", yang mengekstrak nilai antara "" dan yang saat ini berfungsi.

regexp yang sama yang digunakan dalam Response Assertion tidak berfungsi.

Umumnya yang saya perlukan adalah regexp yang mengekstrak nilai di antara tanda kutip untuk digunakan dalam pernyataan Respons

EDIT

Sepertinya saya tidak menjelaskan masalahnya dengan jelas, salahku

jadi, ini dia - bisakah regexp digunakan untuk pernyataan Respons seperti "sessionId":"([^"]+)", artinya saya hanya peduli pada "sessionId":"somevalue berbeda dari null" dan jika ya apa yang harus jadilah tampilan regexpnya

Terima kasih


person Nikolay Marinov    schedule 06.02.2017    source sumber
comment
Secara umum yang saya butuhkan adalah regexp yang mengekstrak nilai di antara tanda kutip itu saja? Anda hanya satu regex untuk tujuan ini?   -  person Shakiba Moshiri    schedule 06.02.2017
comment
Secara umum ya, regexp yang mengekstrak nilai antara tanda kutip dari respons JSON, tetapi berfungsi untuk Pernyataan Respons   -  person Nikolay Marinov    schedule 06.02.2017
comment
Saya tidak tahu tentang Jmeter, DAN lebih baik mengedit tag Anda dan menambahkan JSON jika berhubungan dengan JSON   -  person Shakiba Moshiri    schedule 06.02.2017


Jawaban (3)


Response Assertion memungkinkan Anda menulis ekspresi reguler gaya Perl untuk opsi Contains, Matches.

Contains - untuk kecocokan sebagian Matches - untuk kecocokan lengkap

Coba ekspresi reguler berikut:

"sessionid":".*?"

Jika karakter khusus memerlukan escape, gunakan \ untuk escape sebagai berikut.

\"sessionid\":\".*?\"

Jaga spasi di regex.

Referensi:

  1. http://jmeter.apache.org/usermanual/component_reference.html#Response_Assertion
person Naveen Kumar R B    schedule 07.02.2017

Saya gagal memahami bagaimana Anda dapat menggunakan ekspresi reguler dalam pernyataan respons karena Anda seharusnya mendapatkan semacam "hasil yang diharapkan".

Mengingat Anda dapat mengekstrak sessionId ke dalam Variabel JMeter, yaitu ${sessionId} Anda seharusnya dapat menggunakan Pernyataan Respons untuk memeriksa apakah null atau tidak melalui konfigurasi sederhana berikut:

  • Setel bidang "Terapkan ke" pada Pernyataan Respons ke "Variabel JMeter" dan masukkan nama referensi variabel di sana seperti sessionId

    Variabel Pernyataan Respons JMeter

Jika Regular Expression Anda tidak cocok dengan apa pun, sampler yang relevan akan gagal dengan pesan Response was null:

Pernyataan Variabel JMeter Null

Lihat Cara Menggunakan Pernyataan JMeter dalam Tiga Langkah Mudah artikel untuk informasi komprehensif tentang penggunaan pernyataan JMeter untuk menggagalkan permintaan Anda secara bersyarat berdasarkan berbagai kriteria

person Dmitri T    schedule 07.02.2017

Dalam pernyataan respons, tulis saja ${referenceName}, di mana referenceName = nama variabel dari nilai yang diekstrak dengan ekspresi reguler.

person uru917    schedule 06.02.2017