O que é o K6? K6 é uma ferramenta de código aberto para testes de carga e desempenho. É uma ferramenta escrita em Go, o que a torna rápida e eficiente. É amplamente utilizada para testar APIs e sites em larga escala, ajudando a identificar gargalos e problemas de desempenho.
Protocolos Suportados - HTTP Cada requisição é tratada de forma individual É composto por uma requisição e uma resposta É o protocolo que normalmente é utilizado em aplicações WEB
Protocolos Suportados - WebSocket Comunicação bidirecional em tempo real Comumente utilizado em aplicações como : chat, jogos online e notificações em tempo real Menor consumo de recursosem comparação com HTTP
Protocolos Suportados - gRPC É baseado no protocolo HTTP/2 Tem maior performance em relação ao HTTP devido ao Protocol Buffer Comunicação bidirecional Código cliente e código servidor facilitam desenvolvimento
Principais recursos do K6 Scripts de teste em JavaScript : O K6 permite escrever scripts de teste em JavaScript , tornando fácil e acessível a criação de cenários de teste complexos. Cenários de teste: O K6 permite definir cenários de teste com várias etapas, simulando diferentes fluxos de usuários em seu site ou API. Monitoramento em tempo real: O K6 oferece monitoramento em tempo real durante a execução dos testes, permitindo acompanhar o desempenho e identificar problemas em tempo real. Métricas detalhadas: O K6 fornece uma ampla gama de métricas detalhadas, incluindo tempo de resposta, taxa de erro, latência, utilização de recursos do sistema e muito mais. Integração com Grafana : O K6 pode ser integrado com o Grafana , uma popular plataforma de monitoramento e visualização de dados, para criar painéis de monitoramento personalizados e visualizar os resultados dos testes de carga de forma gráfica.
Conceitos Principais
O que é um teste? Um teste pode ser tão simples quanto:
Usuários Virtuais ( VUs ) Uma entidade que executa um teste Simular uma sessão de utilizador real Eles podem trabalhar de forma concorrente, e continuarem repetindo o teste até que uma condição seja cumprida Simular cenários específicos como horário de pico e/ou dias com tráfego anormal Cálculo para saber quantos usuários virtuais são necessários: VUs = ( qtd_visitas * media_duracao_visita ) / 3600
Tipos de testes
Smoke Testing O Smoke Testing tem o objetivo de verificar se seu sistema pode suportar uma carga mínima sem problemas.
Load Testing O Load Testing tem o objetivo de garantir a estabilidade do sistema em termos de usuários concorrentes
Stress Testing / Spike Testing O Stress Testing / Spike Testing tem o objetivo de garantir a estabilidade do sistema sob condições extremas
Soak Testing O Soak Testing tem o objetivo de garantir a estabilidade do sistema sob períodos prolongados
Métricas
Checks Os checks são validações feitas para garantir que a requisição esteja retornando o conteúdo esperado
Thresholds Os thresholds são critérios que definem uma expectativa mínima para os testes, como tempo de resposta e quantidade de falhas