Aprendendo a utilizar as funcionalidades do Jmeter

Danilo Jose
Nov 15, 2018 · 6 min read
https://jmeter.apache.org/

Links para download:

https://jmeter.apache.org/download_jmeter.cgi

Portal de documentação da API:

https://petstore.swagger.io/#/

Fala ai seus lindões, hoje vamos testar nossas API´s explorando o Jmeter. O nosso objetivo será trabalhar os verbos POST e GET explorando os listeners que o Jmeter nos oferece.

Primeiramente vamos acessar o link da https://petstore.swagger.io/#/, pois lá iremos encontrar a documentação para nossa API, bem como os parâmetros que utilizaremos em nossas requisições, status code do cabeçalho de resposta e mais. Vamos iniciar criando a nossa primeira requisição.

Acessando o portal petstore.swagger.io veremos a estrutura abaixo, o primeiro recurso que vamos trabalhar é o “ Add a new pet to the store”(Adicionar um novo animal a loja)

No Jmeter o primeiro passo é adicionar um grupo de usuários seguindo o caminho Edit > Add > Threads(Users) > Thread Group

Vamos especificar para Number of Threads “5”(Número de usuários virtuais), Ramp-up Period ”1”(Período de inicialização dos usuários no servidor) e Loop Count ”1"(Número de vezes que o Loop será repetido).

Agora precisamos informar o header (“Content-Type: application/json") para isso incluimos o HTTP Header Manager em Edit > Add > Config Element > HTTP Header Manager e os adicionamos clicando em “add”

Nota: Para adicionar os samplers ou config elements sempre mantenha o cursor sobre o group users, pois somente assim essas opções são habilitadas

Especificamos 5 threads, isso significa que temos de enviar 5 requisições alterando as informações do request a cada uma delas? NÃO, tudo o que precisamos fazer é adicionar o nosso data source Edit > Add > Config Element > CSV Data Set Config

Lembrando que em “FileName” vamos precisar especificar o caminho para o nosso arquivo CSV separado por vírgula, abaixo o modelo do arquivo que precisamos inserir.

Agora vamos adicionar uma requisição HTTP, vá para Edit > Add > Sampler> Http Request. Aqui faremos muitos ajustes, o primeiro deles é especificar o protocolo:”http”, Server Name:”petstore.swagger.io”, Method: “POST”, port number: “80” e Path: “/v2/pet”

Nota: Para que os valores do nosso arquivo de dados(CSV Data Set Config) possam ser substituidos no lugar das informações fixas devemos utilizar a sintaxe ${nomeVariavel}

Segundo a documentação da petstore a minha chamada retorna êxito quando retorna o status code 200, então vou criar uma asserção para garantir que houve exito, adicione um Response assertion em Edit > Add > Assertion > Response Assertion, marque o radio box “Main sample only”(Somente amostras principais), marque o radio “Response code”(Código de resposta), no campo Patterns to test(Padrões a serem testados) clique em add(adicionar) e insira o código 200. Mais abaixo existe Custom Failure message que serve para retornar uma mensagem toda vez que não for devolvido o código esperado

Adicione um listener para visualizar os resultados da asserção, Edit > Add > Listeners > Assertion Results

Aqui um listener para verificar os resultados de nossa chamada, Edit > Add > Listener > View Results Tree

Além disso eu quero salvar a requisição em um arquivo XML, então em “Filename” defino o nome do arquivo que será salvo e em “configure” posso selecionar as informações que quero salvar

Agora execute, clicando no ícone do botão play para analisarmos os resultados:

Em Assertion Results caso uma das 5 requisições não tivesse retornado erro, a mensagem que definimos em “Custom Failure message” seria retornada, mas neste caso conseguimos exito na chamada.

em View Results tree está o mais importante, pois conseguimos verificar o Response data, o modo como nossa requisição foi enviada e os dados substituidos em nossa requisição, note que em cada uma das amostras de resultados as variáveis receberam os valores do nosso data source

Resultado 1:

Resultado 2:

O arquivo por padrão é salvo em C:\JMeter\bin , e o resultado ficou da seguinte forma:

Testando com o verbo GET

Já vimos como utilizar o método POST, agora vamos utilizar o método GET consumindo o recurso “Finds Pets by status”(Encontrar um animal pelo status)

Sem segredos, vamos criar um novo grupo de usuários Edit > Add > Threads(Users) > Thread Group

Adicione os Padrões de requisição HTTP em Edit > add > Config Element >http request defaults, vamos informar apenas o Server Name: “petstore.swagger.io”

Adicione uma amostra de requisição HTTP, navegue até Edit > Add > Sampler> Http Request . Basicamente especificamos os parâmetros header, o protocolo de chamada(http), porta(80),método(GET) e path(/v2/pet/findByStatus?status=available) note que aqui existe um parâmetro informado através do Path (status = available)

Vamos adicionar um response assertion(já explicado anteriormente) para validar que o endPoint retornou o status code correto(200) Edit > Add > Assertion > Response Assertion

Precisamos ainda analisar a resposta da nossa asserção e para isso utilizamos o listener chamado resultado das asserções, para adiciona-lo Edit > Add > Listener >assertion results

Aqui adicionamos um listener, onde poderemos consultar o relatório de nosso teste, bem como os dados que foram enviados em nossa requisição e o response body. Siga para Edit > Add > Listener > View Results Tree

Precisamos executar o nosso teste, clique em executar no ícone play(executar), a análise que precisamos fazer neste momento é saber se a nossa asserção passou e se os dados foram retornados corretamente, para isso vá para o listener View Results Tree, em amostra de resultados vemos o código retornado em nossa requisição

Na análise do resultado da asserção vemos o nome da nossa requisição, significando que o resultado esperado foi alcançado, caso contrário veríamos a mensagem configurada em “Custom Failure Message”

Criamos um cenário simples de adição e consulta de animais, agora é hora de exercitar, comece a criar outros cenários utilizando outros métodos lá no portal https://petstore.swagger.io/#/ e crie seus cenários de teste, se houver dúvida não hesite em me chamar.

POST concluído….

Obrigado e até a próxima

Danilo Jose

Written by

Show me a good loser, and I will show you a loser…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade