jMeter - Extrair valor da variável

Aug 17 2020

Estou usando o jMeter para realizar um teste de estresse de um site. Preciso passar o valor de uma variável para a próxima solicitação.

O valor pode ser visto como segue no corpo da resposta:

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

Como devo usar o Regular Expression Extractor para obter esse valor?

Respostas

UBIKLOADPACK Aug 17 2020 at 15:13

A maneira mais fácil é usar o extrator de limite:

Definir à esquerda para:

dados ["_ as_csrf_token"] = "

E direito a:

";

Se você quiser usar o extrator regex, use:

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

DmitriT Aug 17 2020 at 23:04

A expressão regular relevante seria:

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

Demo:

  • você precisa escapar dos metacaracteres primeiro
  • \wé uma classe de caracteres para caracteres de palavras (alfanuméricos, não diferencia maiúsculas de minúsculas)
  • + é a repetição

Mais Informações:

  • Usando RegEx (Regular Expression Extractor) com JMeter
  • Folha de dicas do Perl 5 Regex
AbhishekPuri Aug 18 2020 at 20:07

Use a seguinte string para extrair os dados usando o ReEx Extractor.

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

Conforme mostrado na imagem abaixo,

caso você esteja preocupado com os dados a serem extraídos. Eu sugeriria usarhttps://regexr.com/ A razão pela qual eu prefiro este site é porque ele também ajuda você com o cheatsheet.

Segunda pergunta, por que (. +?) Por que nada mais? O motivo é que ele corresponde a todos os tipos de texto dentro do padrão. Não precisa se preocupar com os caracteres especiais.