en es
Sobre a Matera
  • Sobre a Matera
  • Mercados
  • Soluções
  • Parcerias
  • Sustentabilidade
  • Conteúdos
  • Carreira
  • Contato
  • en es
Blog Notícias E-books Podcasts Webinars Cases

Blog

Imagem com degrade rosa escrito testes

Simplificando o uso do JMeter em testes de Performance - API - Parte 1

O JMeter é uma ferramenta que pode ser sua aliada nos testes de performance. A ideia dessa série de postagens é dar algumas dicas da aplicação da ferramenta com foco em testes de performance para API. 

Mas vamos passo a passo, para que todos os níveis acompanhem e consigam montar uma estrutura na ferramenta, com dicas desde quem nunca teve contato, até os recursos mais avançados que podemos extrair dela.

Performance

Tão importante quanto conhecer o JMeter é você entender os conceitos que envolvem Performance.

Fluxo: o que é performance?; o que é teste de performance?; quais são os tipos de teste de performance; principais métricas.
Esse não é o foco do post, tenho algum material sobre o tema, inclusive em outras postagens do Blog, deixarei nas referências no final do artigo, mas vale a pena compartilhar nesse post alguns exemplos de acordo com cada tipo de teste de performance:

Fluxograma tipos de teste de performance: carga ou volume; capacidade; stress

O que é Jmeter

JMETER: o que é; estrutura; gerar Token Oauth; Trabalhando com mais de um grupo de usuário; trabalhando com data driven, plus.

O JMeter é uma ferramenta Open Source da Apache com foco nos testes de performance, mas pode ser utilizada para testes funcionais também, apesar de não ser comum até por existirem outras ferramentas com melhor aderência a esse propósito.

Instalação

Poderá ser baixada no site da Apache Jmeter, e basta descompactar o zip em sua máquina.

Pré-requisitos

O JMeter é uma aplicação Java e para ser executado precisa da JVM. É necessário que você tenha o Java instalado em sua máquina, poderá fazer o download do pacote JDK e que também tenha o JAVA_HOME configurado.

Estrutura/Organização no JMeter

Estrutura do JMETER: plano de teste; elementos de configuração; threads (users)

No site da ferramenta também existe uma documentação que sugiro que utilize de apoio em casos de dúvidas.

Plano de Teste

Print da ferramenta: plano de teste

Obs: Estou usando como base desse post a última versão disponível para download, 5.3.

O plano de teste será a base de todo o seu teste: informe um nome sugestivo com relação ao cenário que está criando, por exemplo: Nome Empresa/Projeto - Nome da Funcionalidade.

Aqui também será definido a forma de execução dos Grupos de usuários:

Print da ferramenta: executar grupos de usuários consecutivamente

“Executar Grupos de Usuários consecutivamente (ex: executar um grupo de cada vez)”
Se na sua estratégia para execução fizer sentido que um grupo de usuário seja executado por vez , então deixe essa opção marcada.

Através do Plano de Teste, com um clique com o botão direito do mouse, as opções para montagem de sua estrutura serão retornadas.

Elementos de Configuração 

Clique no botão direito em Plano de Testes -> Adicionar -> Elementos de Configuração.

Observe que em "Elementos de Configuração", encontrará as opções de acordo com cada tipo de requisição. Nesse caso, como vamos trabalhar com API, focaremos em 3 elementos de configuração:

Print da ferramenta: elemento de configuração

  • Padrões de Requisição HTTP
  • Variáveis Definidas pelo Usuário
  • Gerenciador de Cabeçalhos HTTP

Padrões de Requisição HTTP

Clique com o botão direito em Plano de Testes -> Adicionar -> Elementos de Configuração -> Padrões de Requisição HTTP.

Essa estrutura deixará o seu script mais organizado, centralizando algumas informações utilizadas que podemos definir como default no request:

Print da ferramenta: protocolo; nome do servidor IP; número da porta

  • Protocolo [http]: se o protocolo que estiver utilizando for diferente de http, preencher, https, por exemplo, do contrário pode deixar em branco que o default é http.
  • Nome do Servidor ou IP: aqui será informado o nome ou IP do servidor onde está sua aplicação. Uma boa prática é passar esses valores em variáveis para facilitar na manutenção quando aplicado em diferentes ambientes 
  • Número da Porta: informar o número da porta utilizada para sua aplicação
  • Perceba que não comentei sobre o campo “Caminho”, já pensando na linha que pode trabalhar com mais de um grupo de usuário, é indicado que o preencha quando for realizar a chamada do request.

Variáveis Definidas pelo Usuário

Botão direito em Plano de Testes -> Adicionar -> Elementos de Configuração -> Variáveis Definidas pelos Usuários.

A definição de variáveis no JMeter é através da sintaxe ${nomeVariavel}.

Print da ferramenta: variáveis definidas pelo usuário

Aqui serão informadas todas as variáveis globais a serem utilizadas em seu script.

Uma dica, pensando em reutilização em ambientes diferentes, tudo que for de parâmetro que pode mudar de um ambiente para o outro, ao invés de passar hard code, centralizar nessas variáveis, facilitará a alteração/manutenção.

Gerenciador de Cabeçalhos HTTP

Clique com o botão direito do mouse em Plano de Testes -> Adicionar -> Elementos de Configuração -> Gerenciador de Cabeçalhos HTTP.

Print da ferramenta: gerenciador de cabeçalho HTTP

Basicamente nesse elemento você passará os parâmetros do Header de sua request. Através do botão “Adicionar”, informará o campo “Nome” do parâmetro e “Valor”.

Obs: Nesse exemplo o token foi passado como parâmetro, teremos um exemplo adiante para mostrar uma estrutura que gera o token e armazena em uma variável para reutilização em seu request, não se preocupe com ele nesse momento.

Grupos de Usuários (Threads(Users))

Também com o botão direito, clique em Plano de Testes -> Adicionar -> Threads(Users).

Print da ferramenta: plano de teste -> grupo de usuários

Nos grupos de usuários é que serão configurados as quantidades de Threads, conhecidas também por usuários virtuais que serão trabalhados na execução de seu script.

Alguns campos que vale a pena ressaltarmos nessa estrutura são: 

Nome: Informar o nome do teste para aquela request ou conjunto de requests.

Ação a ser tomada depois do erro do testador:

Print da ferramenta: ação a ser tomada depois do erro do testador

Podemos deixar a opção“Continuar”, que é default, pois no caso de API’s e principalmente para testar volume poderemos tomar alguns erros que poderão ser analisados no final do teste se tem relação com a degradação da aplicação por conta do volume, por exemplo.

  • Número de Usuários Virtuais (threads): Informar a quantidade de Threads ou usuários virtuais que serão utilizados quando o script for executado.
  • Contador de Iteração: Informar a quantidade de chamadas que cada Thread executará no teste.

Exemplo:

Print da ferramenta: propriedade do usuário virtual; nº de usuários virtuais (thread); tempo de inicialização; contador de iteração.

Nessa configuração trabalharemos com 4 Threads, onde cada uma será executada, simultaneamente, 3 vezes, resultando no total 12 execuções, veja:

fluxo de threads

Se marcar a opção "Infinito", significa que a quantidade de Threads que for configurada será executada dentro de um espaço de tempo que você definirá.

Então, nesse caso, será necessário marcar a opção “Agendador” e informar o campo “Duração (segundos)” o tempo que deverá ser executado:

print da ferramenta: propriedades do usuário virtual

Nesse exemplo, serão executadas 4 Threads por 300 segundos (5 minutos), a quantidade de interações ou vezes, dependerá do tempo de resposta de sua API.

Veja que quando a Opção "Infinito" é marcada o campo “Contador de Execução” fica desabilitado.

Até aqui já podemos ter uma noção da importância de entender os conceitos,  os tipos de testes de performance existentes e qual atenderá sua necessidade de forma que estruture seu script corretamente.

Para o post não ficar muito longo, na próxima série vamos focar em como aplicar a estrutura setUp Thread Group e TearDown Thread Group e mostrar como estruturar a request dentro do grupo de usuário, com mais um plus. Aguarde!

Conclusão

Esse foi um “resumão” dos conceitos que precisa saber para começar a trabalhar com JMeter. 

Um outro ponto importante é que apesar de ter algumas métricas, gostaria de frisar que não conseguimos testar performance somente com o uso do JMeter. Ele nos ajudará muito na execução, mas para analisar os possíveis gaps existentes na aplicação você precisará trabalhar em conjunto com outras ferramentas, APM, Application Performance Manager.

Mas vamos passo a passo, combinado?

Te vejo no próximo post?

Referências para Contextualização sobre Performance

Introdução a Testes de Performance:
http://www.matera.com/blog/post/introducao-a-testes-de-performance

Testes de Performance - A Estratégia:
http://www.matera.com/blog/post/testes-de-performance-a-estrategia

Palestra apresentada no GDG - Quality Fest - O que eu deveria saber antes de testar performance? 
https://www.youtube.com/watch?v=19phkW3rZ70

https://pt.slideshare.net/ArianeIzac/o-que-eu-deveria-saber-antes-de-testar-performance-116989859?qid=45f4a15e-54e0-4fcb-8833-43837f8b97eb&v=&b=&from_search=3

Por ARIANE IZAC

Apaixonada por testes e qualidade de software, colecionadora de viagens! Filha de peixe (jornalista) peixinho (blogueira) é. Diário de uma paixão: teste de Software é meu grupo.

Categorias:
  • Testes
Tags:
  • teste de performance
  • JMETER
  • testes
Compartilhe:
emailfacebooklinkedintwitter

Categorias


  • → Agil
  • → Carreira
  • → Design e UX
  • → e-Commerce
  • → Fintech
  • → Frontend
  • → Gestão de Riscos
  • → Gestão Empresarial
  • → Infra
  • → Inovação
  • → Institucional
  • → Inteligência Artificial
  • → Mercado Financeiro
  • → Mobile
  • → Nuvem
  • → Pagamentos Instantâneos
  • → Programação (Backend)
  • → Responsabilidade Social
  • → Serviços
  • → Tecnologia
  • → Testes
  • → Varejo
  • → Sustentabilidade

Newsletter


Siga-nos nas redes sociais

Política de privacidade Suporte
  • • Sobre a Matera
  • • Historia
  • • Manifesto
  • • Código de Ética
  • • Mercados
  • • Banking
  • • Bens de consumo
  • • Fintech
  • • Risk
  • • Shopping | Franquia
  • • Transporte e Postos de Combustível
  • • Varejo | E-commerce
  • • Soluções
  • • Fintech Embarcada
  • • Matera Digital Bank
  • • Matera Fintech SaaS e BaaS
  • • Matera Instant Payments
  • • Matera Retail
  • • Matera Risk
  • • Parcerias
  • • Sustentabilidade
  • • Ações
  • • Instituições Apoiadas
  • • Relatórios Anuais
  • • Conteúdos
  • • Blog
  • • E-Books
  • • Notícias
  • • Carreira
  • • Bootcamp
  • • Vagas abertas
  • • Contato
  • • Fale conosco
  • • Imprensa
  • • Nossos Escritórios

Copyright © 2020 Matera