jMeter - ดึงค่าจากตัวแปร

Aug 17 2020

ฉันใช้ jMeter เพื่อทำการทดสอบความเครียดของเว็บไซต์ ฉันต้องการส่งค่าตัวแปรไปยังคำขอถัดไป

ค่าสามารถเห็นได้ดังต่อไปนี้ในเนื้อหาการตอบสนอง:

var _data = {};
_data["_as_csrf_token"] = "64da5d341c253c2a181796d2524e57c6502d906b";
jQuery.ajaxSetup({ data: _data, type: "POST" });

ฉันจะใช้ Regular Expression Extractor เพื่อรับค่านี้ได้อย่างไร

คำตอบ

UBIKLOADPACK Aug 17 2020 at 15:13

วิธีที่ง่ายที่สุดคือใช้ตัวแยกขอบเขต:

ตั้งค่าทางซ้ายเป็น:

ข้อมูล ["_ as_csrf_token"] = "

และขวาไปที่:

";

หากคุณต้องการใช้ตัวแยก regex ให้ใช้:

ข้อมูล \ ["_ as_csrf_token" \] = "[^"] +? ";

DmitriT Aug 17 2020 at 23:04

นิพจน์ทั่วไปที่เกี่ยวข้องจะเป็น:

_data\["_as_csrf_token"\] = "(\w+)";

การสาธิต:

  • คุณต้องหลีกเลี่ยงอักขระเมตาก่อน
  • \wเป็นคลาสอักขระสำหรับอักขระคำ (ตัวอักษรและตัวเลขไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่)
  • + คือการตอบกลับ

ข้อมูลมากกว่านี้:

  • การใช้ RegEx (Regular Expression Extractor) กับ JMeter
  • แผ่นโกง Perl 5 Regex
AbhishekPuri Aug 18 2020 at 20:07

โปรดใช้สตริงต่อไปนี้เพื่อดึงข้อมูลโดยใช้ ReEx Extractor

_data\[\"_as_csrf_token\"\] \= \"(.+?)\"\;

ดังแสดงในภาพหน้าจอด้านล่าง

ในกรณีที่คุณกังวลเกี่ยวกับข้อมูลที่จะดึงออกมา ฉันขอแนะนำให้ใช้https://regexr.com/ เหตุผลที่ฉันชอบไซต์นี้ก็เพราะว่ามันช่วยคุณในเรื่องกลโกงด้วย

คำถามที่สองทำไม (. +?) ทำไมไม่เป็นอย่างอื่น? เหตุผลก็คือตรงกับข้อความทุกประเภทในรูปแบบ ไม่ต้องกังวลเกี่ยวกับอักขระพิเศษ