minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Parâmetros de usuário de expressão regular (Parâmetros de usuário RegEx) é um pré-processador (Pré-processador) que permite aos usuários extrair valores de dados de resposta com base em expressões regulares e aplicá-los, e passar esses valores como parâmetros para subseqüentesSolicitação HTTP ou outros lugares necessários. Este recurso é altamente flexível para lidar com conteúdo dinâmico, IDs de sessão, tokens, etc. e é um componente chave para implementar scripts de teste automatizados.
Usamos SpringBoot para escrever o seguinte código de interface
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
Então escrevemos o seguinte script
Grupo de tópicos: manter padrão
Solicitação HTTP 1: protocolo http, nome do servidor ou IP127.0.0.1, número da porta 8091, método POST, caminho/login, codificação de conteúdo utf-8, dados do corpo da mensagem
{
"username": "admin",
"password": "password"
}
Extração de expressão regular器:设置的参数为引用名称var,正则表达式"id"😦.?),"nome":"(.?)", "email" (pode ser conhecido pelo conteúdo do código de exemplo), e nosso objetivo é extrair o id e o nome, o número correspondente é definido como -1 e o valor padrão é NotFound
Neste ponto, podemos primeiro desabilitar a solicitação HTTP 2 e os parâmetros do usuário de expressão regular, depois executar o script e visualizar o amostrador de depuração da árvore de resultados. Você pode ver os seguintes resultados no corpo da resposta dos dados de resposta.
Variáveis JMeter:
JMeterThread.last_sample_ok=falso
JMeterThread.pack=org.apache.jmeter.threads.PacoteDeSample@4fa1cf1
INÍCIO.HMS=165132
INÍCIO.MS=1720515092259
INÍCIO.YMD=20240709
TESTESTART.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T= grupo de tópicos 1-1
var=NãoEncontrado
var_1=
var_1_g=2
var_1_g0=“id”:123,“nome”:“John Doe”,“e-mail”
var_1_g1=123
var_1_g2=João Ninguém
var_2=
var_2_g=2
var_2_g0=“id”:456,“nome”:“Jane Smith”,“e-mail”
var_2_g1=456
var_2_g2=Jane Smith
var_matchNr=2
A partir do conteúdo acima, podemos ver o valor da variável var extraída pela expressão regular correspondente. Neste momento, podemos continuar a verificar a aplicação do pré-processador de parâmetros do usuário da expressão regular e continuar a definir outros parâmetros do componente.
Solicitação HTTP 2: protocolo http, nome do servidor ou IP127.0.0.1, número da porta 8091, método POST, caminho/login, codificação de conteúdo utf-8, em seguida, adicione dois parâmetros aos parâmetros, preencha os nomes 123, 456 respectivamente, não os use agora. Independentemente do significado específico, vamos tentar primeiro.
Parâmetros do usuário de expressão regular: O nome de referência da expressão regular é definido como var, o nome do parâmetro aqui deve ser consistente com o nome do parâmetro na expressão regular acima, o número do grupo regexp dos nomes dos parâmetros é definido como 1, o número do grupo regex dos valores dos parâmetros é definido para 2, por que Como configurar assim? Podemos entender desta forma. Não definimos 123 e 456 na solicitação HTTP 2? Definir o número do grupo regexp dos nomes dos parâmetros como 1 pode ser entendido como usar os parâmetros var_1_g1 e var_2_g1 nos parâmetros var. na solicitação HTTP 2 Depois que os parâmetros forem consistentes com os parâmetros aqui, corresponderemos ao relacionamento entre parâmetros e dados, abrindo caminho para que o número do grupo regex dos valores dos parâmetros seja definido como 2. Podemos entender bem que quando os valores dos parâmetros o número do grupo regex é definido como 2, o que é obtido Os parâmetros se tornam var_1_g2 e var_2_g2.
A próxima etapa é verificar nossos resultados. Execute o script para visualizar os dados postados do corpo da solicitação na solicitação HTTP 2 na árvore de resultados. No geral, nossa solicitação falhou, mas isso não importa. para verificar. O resultado é irrelevante.
POSTAR http://127.0.0.1:8091/login
Dados de postagem:
123=João+Silva&456=Jane+Smith
[nada de biscoitos]
A partir dos dados POST acima, você pode ver que os dados correspondentes foram refletidos na solicitação.
● Escopo: Os parâmetros do usuário de expressão regular só têm efeito na solicitação HTTP ou amostrador a seguir. Se você precisar aplicá-los globalmente, considere usar o "extrator de expressão regular" em conjunto com variáveis.
● Depuração: Use o ouvinte "View Result Tree" para verificar a correspondência de expressões regulares e garantir a extração correta de dados.
Os parâmetros do usuário de expressão regular são um recurso poderoso do JMeter, que simplifica o processamento de dados dinâmicos e melhora a flexibilidade e automação de scripts de teste. Configurada e utilizada adequadamente, esta função pode lidar com eficácia com as necessidades de teste de desempenho de sistemas complexos.