Olá galera!
Neste post irei deixar uma dica de como extrair valores de um json com o plugin Json Path Extractor do Jmeter.
Pré-requisitos
- Possuir o JMeter configurado, realizei testes na versão 2.11 e 2.13 ambas funcionando da mesma forma.
- Atualização na versão 5.5 não há mais necessidade de instalar o plugin do pré-requisito 2, a lib já foi integrada ao JMeter.
- Estar com o plugin do JMeter Json Path Extractor configurado. Para baixá-lo acesse http://jmeter-plugins.org/downloads/all/
-
- Neste post utilizei a versão 1.3.1 no link http://jmeter-plugins.org/downloads/file/JMeterPlugins-ExtrasLibs-1.3.1.zip
- Abra o arquivo .zip e extraia todo o conteúdo da pasta lib para a pasta lib de sua instalação do JMeter. Abaixo uma figura de exemplo.
- Reinicie/Abra o JMeter para ele identificar as atualizações das libs.
-
Json Modelo
Abaixo está o Json que estarei utilizando para os exemplo deste post, ele estará disponível em https://vanilton.net/web-test/json/
Exemplo 1 – Recuperando Json completo
Para recuperar todo o json retornando de uma requisição precisamos inicialmente no Plano de Teste criar um grupo de usuários e uma requisição HTTP, conforme a imagem abaixo.
Após criar a requisição devemos criar um Pós-Processador do tipo JSON Path Extractor conforme a imagem abaixo. (se esta opção não existir a configuração da lib não foi feita corretamente)
Com a opção JSON Path Extractor aberta devemos preencher o nome da variável que utilizaremos no teste, a expressão que irá recuperar o json, e opcionalmente uma mensagem caso ocorra algum erro na busca.
A imagem abaixo mostra os campos já preenchidos.
Pode-se observar que foi utilizado a expressão $.[*] que recupera todos o conteúdo do json.
Para testar se a expressão está recuperando o json utilizaremos um elemento do tipo Testador chamado “Debug testador” na imagem abaixo podemos visualizar, lembrando que devemos adicionar abaixo da requisição feita no mesmo nível, não é necessários alterar nada na configuração do Debug.
Mas ainda não é o suficiente para testar o resultado, para visualizar a resposta devemos criar um elemento do tipo Ouvinte, para visualizar os detalhes da resposta utilizarei o ouvinte “Ver Árvore de Resultados”. Feito isto podemos executar a requisição criada e observar o resultado conforme a imagem abaixo.
Pode-se observar que a variável (val) criada no JSON PATH Extractor agora recebe o valor do json retornado na Requisição HTTP.
Exemplo 2 – Recuperando valor de chave
Como já exemplificado no exemplo 1, para recuperar um valor específico de uma chave no json, podemos utilizar o nome da chave e índice. Logo se quisermos por exemplo recuperar o título do filme os vingadores utilizaremos a expressão;
$.[*].titulo[0]
O que é feito neste comando é a recuperação do json e um filtro pelo titulo com o índice 0, ou seja, a primeira chave com o nome título contido no json do nosso exemplo, retornando assim o valor “Os Vingadores”.
Outros exemplos
- Retornar o nome do segundo diretor (Sam)
$.[*].diretor[1].nome
- Retornar o primeiro diretor com nome igual a “Sam”
$.[*].diretor[?(@.nome=='Sam')][0]
- Retornar a última produtora na ordem no caso (Sony Pictures Entertainment)
$.[*].produtora[(@.length-1)] ou $.[*].produtora[-1:][0]
Então é isso galera espero que estes exemplos ajudem vocês. Qualquer dúvida ou sugestão coloquem nos comentários.
Arquivo .jmx do projeto para quem quiser utilizar como base clique aqui.
Até mais!