jMeter - Trích xuất giá trị từ biến

Aug 17 2020

Tôi đang sử dụng jMeter để thực hiện kiểm tra độ căng của một trang web. Tôi cần chuyển giá trị của một biến cho Yêu cầu tiếp theo.

Giá trị có thể được nhìn thấy như sau trong phần nội dung phản hồi:

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

Làm cách nào để sử dụng Trình trích xuất Cụm từ Thông dụng để nhận giá trị này?

Trả lời

UBIKLOADPACK Aug 17 2020 at 15:13

Cách dễ nhất là sử dụng trình trích xuất ranh giới:

Đặt bên trái thành:

data ["_ as_csrf_token"] = "

Và quyền:

";

Nếu bạn muốn sử dụng trình giải nén regex thì hãy sử dụng:

data \ ["_ as_csrf_token" \] = "[^"] +? ";

DmitriT Aug 17 2020 at 23:04

Biểu thức chính quy có liên quan sẽ là:

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

Bản giới thiệu:

  • bạn cần phải thoát khỏi nhân vật meta đầu tiên
  • \wlà một lớp ký tự cho các ký tự từ (chữ và số, không phân biệt chữ hoa chữ thường)
  • + là sự thay đổi

Thêm thông tin:

  • Sử dụng RegEx (Trình trích xuất biểu thức chính quy) với JMeter
  • Perl 5 Regex Cheat tờ
AbhishekPuri Aug 18 2020 at 20:07

Vui lòng sử dụng chuỗi sau để trích xuất dữ liệu bằng ReEx Extractor.

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

Như trong ảnh chụp màn hình bên dưới

Trong trường hợp bạn lo lắng về dữ liệu sẽ được trích xuất. Tôi sẽ đề nghị sử dụnghttps://regexr.com/ Lý do tại sao tôi thích trang web này là vì nó cũng giúp bạn với bảng gian lận.

Câu hỏi thứ hai, tại sao (. +?) Tại sao không phải là gì khác? Lý do là nó phù hợp với mọi loại văn bản trong mẫu. Không cần phải lo lắng về các ký tự đặc biệt.