jmeter_json

Extraindo valores de json com JMeter + Json Path Extractor

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

  1. Possuir o JMeter configurado, realizei testes na versão 2.11 e 2.13 ambas funcionando da mesma forma. 
    1. 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.
  2. Estar com o plugin do JMeter Json Path Extractor configurado. Para baixá-lo acesse http://jmeter-plugins.org/downloads/all/
      1. Neste post utilizei a versão 1.3.1 no link http://jmeter-plugins.org/downloads/file/JMeterPlugins-ExtrasLibs-1.3.1.zip
      2. 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.confLibJmeter
      3. 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.
debugtestador

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!

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.