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

Institucional Matera

Realizando Testes de Carga utilizando autenticação Basic Auth com a Ferramenta Jmeter

Em uma era de experiências, testar softwares apenas pela segurança não é suficiente,  é preciso testá-los para também entender sua eficiência. 

Por RAIANY SILVA

Aplicações que trabalham com grande volume de dados, múltiplos acessos simultâneos e que dependem de uma infra-estrutura íntegra, demandam a utilização de ferramentas que simulem e acompanhem os resultados esperados. Diante disso, o JMeter se destaca por sua facilidade de uso e versatilidade.

Quando se fala sobre testes não funcionais, além da preocupação com a performance, é essencial levar em consideração a segurança. Pensando nisso, este post irá ensinar como utilizar a ferramenta Jmeter com Basic Auth.

Recomenda-se as leituras abaixo para complementar o conhecimento:

O que é Jmeter?

 

O que é Basic Auth?

Nos exemplos apresentados a seguir, está sendo utilizado o Apache Jmeter 4.0 r1823414 que pode ser baixado

aqui.

1 - Crie seu Plano de Testes

O Plano de Teste é onde os N grupos de usuários são inseridos, nos quais executam  diferentes testes, podendo acontecer simultaneamente, ou não.

Figura 1 - Plano de Testes

2 - Crie um Grupo de Usuários

Abaixo do thread group é onde ficarão todos os controladores e testadores do nosso plano de testes. Através dele, é possível configurar o número de usuários, tempo de intervalo de cada um deles e o número de vezes que a requisição será executada.

Figura 2 - Grupo de Usuários

Após criarmos um grupo, é preciso indicar o número de usuários virtuais, tempo de inicialização de cada um e a quantidade de interações.

Figura 3 - Configuração de Usuários

3 - Insira uma Requisição HTTP

Logo em seguida, vamos inserir uma Requisição HTTP e informar os dados necessários para que a chamada seja realizada com sucesso.

Figura 4 - Inclusão de Requisição HTTP Figura 5 - Requisição HTTP

Nome: Identificação da Requisição HTTP.

Protocolo[http]: Protocolo de comunicação.

Nome do Servidor ou IP: IP da máquina onde a aplicação será executada.

Número da Porta: Número da porta de acesso onde a aplicação será executada.

Método: Método de execução da API.

Caminho: Caminho de acesso para a chamada da API.

Observação: Nos parâmetros eu informei usuário, senha e grant_type para execução da requisição pois esses valores são exigidos pelo serviço.

Figura 6 - Client_Credentials

4 - Adicione um Gerenciador de Cabeçalhos HTTP

O Gerenciador de Cabeçalhos HTTP armazena o cabeçalho da requisição. Neste cenário, iremos utilizá-lo para armazenar os dados básicos para realizar a autenticação da API nos campos Authorization e

Content-Type.

Figura 7 - Inclusão de Gerenciador de Cabeçalhos HTTP Figura 8 - Gerenciador de Cabeçalhos HTTP as variáveis Authorization e Content-Type, são utilizadas neste momento

5 - Utilizando Extractor de Expressão Regular

Abaixo do Gerenciador de Cabeçalhos HTTP insira o relatório de resultados “Ver Árvore de Resultados”. Em seguida, clique em TestPlan e execute o teste clicando no ícone destacado na imagem a seguir.

Figura 9 - Inclusão Relatório Árvore de Resultados

Ao clicar na Árvore de Resultados e ir na aba Dados da Resposta, é possível ver a resolução do Json enviada pelo servidor. Neste cenário, o token é apresentado pela variável chamada 'access_token', conforme imagem abaixo:

Figura 10 - Resposta do Json Enviado pelo Servidor

Agora, vamos inserir o Extractor de Expressão Regular:

Figura 11 - Inclusão de Extractor de Expressão Regular É importante saber!

Nome de Referência: nome da variável que irá armazenar o valor extraído da requisição.

Expressão Regular: neste campo é informado uma expressão regular que é utilizado para encontrar determinadas combinações de caracteres, palavras ou padrões.

A expressão utilizada no exemplo, "access_token" : "\s*([^",\n\r]*)", significa que o Jmeter irá extrair tudo o que for encontrado para os dados de resposta 'access_token'.

Os demais campos podem ser preenchidos conforme exemplo:

Figura 12 - Extractor de Expressão Regular

6 - Executando a Requisição de Autenticação Auth

Após configurar o Extractor de Expressão Regular e executar o teste, é possível verificar na Árvore de Resultados se a requisição foi realizada com sucesso.

Figura 13 - Execução de Autenticação Auth

Para confirmar o sucesso da autenticação, é necessário acionar outra API que depende do token para ser executada:

A chamada é como a anterior. Incluímos uma Requisição HTTP e informamos os valores de acesso, o caminho da API e, logo abaixo, inserimos um Gerenciador de Cabeçalhos HTTP. Neste caso, a diferença é de que no Gerenciador de Cabeçalhos HTTP iremos informar uma variável com Bearer concatenado com o conteúdo extraído do 'access_token', conforme imagem abaixo:

Figura 14 - Execução de API com Autenticação Auth

Olhando para a Árvore de Resultados podemos ver que a API foi executada com sucesso.

Figura 15 - Execução de API com Autenticação Auth

IMPORTANTE: Repare que tanto a API que realiza a autenticação, quanto a que utiliza o token gerado, estão no mesmo Grupo de Usuários. Se colocarmos as requisições em grupos diferentes, a requisição que utiliza o token não irá funcionar, pois o Jmeter entende que cada thread funciona de forma independente.

Para garantir que os usuários tenham uma boa experiência ao navegar em uma aplicação, não tenham problemas de lentidão e, consequentemente, não saiam do site em busca de outras alternativas, é de extrema importância considerar nos planejamentos testes de performance.

Com este tipo de teste, submetemos a aplicação à condições específicas, com o objetivo de verificar comportamentos que podem ser causados no processo. Sendo assim, pode-se validar todos os aspectos do sistema, desde problemas de tempo de respostas inaceitáveis, inconsistência de dados, até dados corrompidos.

Saber utilizar o Jmeter com o Basic Auth é essencial, uma vez que esta é uma das possíveis formas de testar um software, pensando não só na segurança dos dados, mas também na experiência do usuário com a sua aplicação.

Categorias:
  • Institucional
  • Tecnologia
  • 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