jMeter - Extraer valor de variable

Aug 17 2020

Estoy usando jMeter para realizar una prueba de esfuerzo de un sitio web. Necesito pasar el valor de una variable a la siguiente solicitud.

El valor se puede ver de la siguiente manera en el cuerpo de la respuesta:

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

¿Cómo debo usar el Extractor de expresiones regulares para obtener este valor?

Respuestas

UBIKLOADPACK Aug 17 2020 at 15:13

La forma más sencilla es utilizar el extractor de límites:

Establecer a la izquierda en:

datos ["_ as_csrf_token"] = "

Y derecho a:

";

Si desea utilizar el extractor de expresiones regulares, utilice:

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

DmitriT Aug 17 2020 at 23:04

La expresión regular relevante sería:

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

Manifestación:

  • primero necesitas escapar de los metacaracteres
  • \wes una clase de carácter para caracteres de palabra (alfanumérico, no distingue entre mayúsculas y minúsculas)
  • + es la repetición

Más información:

  • Usando RegEx (Extractor de expresiones regulares) con JMeter
  • Hoja de referencia de Perl 5 Regex
AbhishekPuri Aug 18 2020 at 20:07

Utilice la siguiente cadena para extraer los datos mediante ReEx Extractor.

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

Como se muestra en la captura de pantalla a continuación,

en caso de que esté preocupado por los datos que se extraerán. Sugeriría usarhttps://regexr.com/ La razón por la que prefiero este sitio es porque también te ayuda con la hoja de trucos.

Segunda pregunta, ¿por qué (. +?) ¿Por qué no otra cosa? La razón es que coincide con todo tipo de texto dentro del patrón. No hay necesidad de preocuparse por los caracteres especiales.