regexp การยืนยันการตอบสนองของ Jmeter

ฉันมีปัญหากับการใช้ regexp ในการยืนยันการตอบสนองใน jmeter เช่นเดียวกับที่ใช้ในตัวแยกนิพจน์ทั่วไป นี่คือตัวอย่างหนึ่งที่ฉันประสบปัญหา

ตัวแยกนิพจน์ทั่วไป - แยก sessionId จากการตอบสนอง JSON "sessionId///(([^"]+)" ที่แยกค่าระหว่าง "" และที่ใช้งานได้ในปัจจุบัน

regexp เดียวกันกับที่ใช้ในการยืนยันการตอบสนองไม่ทำงาน

โดยทั่วไปสิ่งที่ฉันต้องการคือ regexp ที่แยกค่าระหว่างเครื่องหมายคำพูดเพื่อใช้ในการยืนยันการตอบกลับ

แก้ไข

ดูเหมือนว่าฉันอธิบายปัญหาไม่ชัดเจน แย่เลย

ดังนั้น นี่คือ - สามารถใช้ regexp สำหรับการยืนยันการตอบสนองเช่น "sessionId": ([^"]+)" ได้หรือไม่ ซึ่งหมายความว่าฉันสนใจเฉพาะ "sessionId": ค่าบางอย่างที่แตกต่างจาก null" และถ้าใช่ควรทำอย่างไร มีลักษณะเป็น regexp

ขอบคุณ


person Nikolay Marinov    schedule 06.02.2017    source แหล่งที่มา
comment
โดยทั่วไปสิ่งที่ฉันต้องการคือ regexp ที่แยกค่าระหว่างเครื่องหมายคำพูด ใช่ไหม คุณมีเพียง regex เดียวเพื่อจุดประสงค์นี้ใช่ไหม   -  person Shakiba Moshiri    schedule 06.02.2017
comment
โดยทั่วไปแล้วใช่ regexp ที่แยกค่าระหว่างเครื่องหมายคำพูดจากการตอบกลับ JSON แต่นั่นใช้ได้กับการยืนยันการตอบสนอง   -  person Nikolay Marinov    schedule 06.02.2017
comment
ฉันไม่รู้เกี่ยวกับ Jmeter และควรแก้ไขแท็กของคุณและเพิ่ม JSON หากเกี่ยวข้องกับ JSON จะดีกว่า   -  person Shakiba Moshiri    schedule 06.02.2017


คำตอบ (3)


การยืนยันการตอบสนองช่วยให้คุณสามารถเขียนนิพจน์ทั่วไปสไตล์ Perl สำหรับตัวเลือก Contains, Matches

Contains - สำหรับการแข่งขันบางส่วน Matches - สำหรับการแข่งขันที่สมบูรณ์

ลองใช้ regex ต่อไปนี้:

"sessionid":".*?"

หากอักขระพิเศษจำเป็นต้องมีการหลีก ให้ใช้ \ เพื่อหลีกดังนี้

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

ดูแลช่องว่างใน regex

อ้างอิง:

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

ฉันไม่เห็นว่าคุณสามารถใช้นิพจน์ทั่วไปในการยืนยันการตอบกลับได้อย่างไร เนื่องจากคุณควรจะมี "ผลลัพธ์ที่คาดหวัง" ในรูปแบบใดรูปแบบหนึ่ง

เนื่องจากคุณสามารถแยก sessionId ลงในตัวแปร JMeter ได้ เช่น ${sessionId} คุณควรจะสามารถใช้ การยืนยันการตอบสนอง เพื่อตรวจสอบว่ามีค่าว่างหรือไม่ผ่านการกำหนดค่าง่ายๆ ต่อไปนี้:

  • ตั้งค่าฟิลด์ "นำไปใช้กับ" ของการยืนยันการตอบสนองเป็น "ตัวแปร JMeter" และใส่ชื่ออ้างอิงตัวแปรที่นั่นเช่น sessionId

    ตัวแปรยืนยันการตอบสนองของ JMeter

หากนิพจน์ทั่วไปของคุณไม่ตรงกับสิ่งใดเลย ตัวอย่างที่เกี่ยวข้องจะล้มเหลวพร้อมกับข้อความ Response was null:

การยืนยันตัวแปร JMeter เป็นโมฆะ

ดู วิธีใช้ JMeter Assertions ในสามขั้นตอนง่ายๆ บทความสำหรับข้อมูลที่ครอบคลุมเกี่ยวกับการใช้การยืนยัน JMeter เพื่อทำให้คำขอของคุณล้มเหลวตามเงื่อนไขตามเกณฑ์ต่างๆ

person Dmitri T    schedule 07.02.2017

ในการยืนยันการตอบสนอง เพียงเขียน ${referenceName} โดยที่ ReferenceName = ชื่อตัวแปรของค่าที่แยกออกมาด้วยนิพจน์ทั่วไป

person uru917    schedule 06.02.2017