Teste de Software, QA, DevOps

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.
  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 http://vanilton.net/jmeter/teste_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!

Compartilhe:

Deixe uma resposta

O seu endereço de email não será publicado