Newsletter #046 - Teste de Performance com K6
Seu newsletter semanal voltado para tecnologia e qualidade de software
Olá pessoal, mais uma semana de newsletter voltado para tecnologia e qualidade de software.
Estamos há algumas semanas conhecendo um pouco sobre testes de performance, na semana passada conhecemos sobre como planejar os testes de performance, caso não tenha lido segue o link. Nesta semana vamos conhecer a ferramenta de testes de performance K6, bora lá?
Teste de Performance com K6
Como vemos conversando durante as semanas, cada vez mais com a concorrência e vários produtos e players no mercado, a performance e a estabilidade das aplicações web são cruciais, o k6 surge como uma ferramenta robusta e eficiente para a realização de testes de carga e performance. Desenvolvido pela Load Impact e mantida pela Grafana, o k6 é uma ferramenta open-source que se destaca pela facilidade de uso, integração contínua e foco em desenvolvedores e engenheiros de performance.
O que é o k6?
O k6 é uma ferramenta de teste de performance e carga que permite simular uma grande quantidade de usuários interagindo com uma aplicação web para avaliar seu desempenho sob diferentes condições de carga. A ferramenta é escrita em Go e utiliza JavaScript como linguagem para definir os scripts de teste, o que facilita a criação de cenários complexos e a integração com outras ferramentas e pipelines de CI/CD.
Principais Características do k6
Desempenho: Graças à sua arquitetura baseada em Go, o k6 é capaz de simular milhares de usuários virtuais com eficiência, consumindo menos recursos do que muitas ferramentas concorrentes.
Foco em desenvolvimento: Com suporte a JavaScript, o k6 facilita a criação de scripts de teste, permitindo que desenvolvedores e engenheiros de performance escrevam e mantenham testes de maneira intuitiva.
Execução Local e em Nuvem: O k6 pode ser executado localmente ou em serviços de nuvem, como o k6 Cloud, que oferece funcionalidades adicionais como relatórios detalhados e análise de tendências.
Integração com CI/CD: A ferramenta se integra facilmente com pipelines de CI/CD, permitindo a execução automática de testes de performance durante o processo de desenvolvimento e deploy.
Relatórios e Análise: O k6 gera relatórios detalhados que ajudam na análise do desempenho da aplicação, identificando gargalos e pontos de melhoria.
Como Funciona o k6?
O funcionamento do k6 baseia-se na criação de scripts de teste em JavaScript. Um script comum define o comportamento dos usuários virtuais, as ações que eles realizam e as métricas que serão coletadas.
Antes de fazermos o primeiro script é interessante conhecermos como realizar a instalação. A documentação do k6 é bem completo, bem como fácil de instalação, neste link você encontra o passo-a-passo de instalar nos determinados sistemas, para facilitar na instalação em windows basta clicar nesse link e realizar a instalação padrão.
Bom, agora que conhecemos como realizar a instalação do k6, vamos criar o primeiro script e no decorrer das semanas vamos aperfeiçoando esse script com tópicos e características que o k6 facilita para metrificar e taggear seu script.
Neste primeiro teste o primeiro ponto que devemos conhecer do k6 diferente de outros tipos de testes que realizamos (API, E2E) é a camada de options. Dentro do options podemos adicionar scenarios, thresholds e variáveis de ambiente, contudo para este primeiro script iremos conhecer a camada de scenarios que é onde adicionamos nosso executor. O executor ele tem como função especificar para os usuários virtuais como que será a forma de interação com o endpoint que será testado, aqui sendo o constant-vus, seu funcionamento consistem em enviar um conjunto de usuários virtuais constantemente durante um período máximo de tempo. Assim no script o executor estará enviando constantemente para cada interação do código 10 usuários virtuais e esses ficarão “batendo" no endpoint por 30 segundos.
Não se preocupe teremos uma newsletter voltado só para mostrar os options que são mais utilizados. Após a parte de options o restante do script é o mapeamento dos endpoints que serão estressados, aqui sendo uma requisição do tipo GET na url https://test.k6.io/contacts.php, onde a cada vez que esse endpoint for chamado terá um tempo de aguardo de meio segundo sleep(0.5) para que o endpoint volte a ser chamado novamente.
Entendendo o script, vamos executá-lo e para isso no terminal execute o comando k6 run script.js que será executado seu script por 30 segundos utilizando 10 usuários virtuais.
Hoje conhecemos mais sobre a ferramenta de performance k6 e como desenvolver o primeiro script. Para a próxima semana irei mostrar para vocês como entender o relatório que é apresentado após o teste ser executado e os tipos de options que podemos utilizar. Espero vocês na próxima newsletter 🚀!
O que rolou de Tecnologia?
Simplificando e padronizando software em escala - artigo muito interessante do grupo McDonalds a respeito de como melhoraram a padronização de código nas aplicações do grupo.
Revisão de código: benefícios, práticas recomendadas, ferramentas e dicas - sempre é bom lermos a respeito de revisão de código e como essa prática melhora nossas aplicações.
Compreender os principais componentes arquitetônicos do Azure - Azure e AWS hoje são os maiores players do mercado relacionado a infraestrutura em nuvem, sempre é bom conhecer e entender as principais arquiteturas.
E Qualidade de Software, como está?
Como planejar testes em um sprint: um guia passo a passo - planejamento de testes não é uma tarefa, nesse sentido o artigo apresenta uma abordagem diferente para planejar os testes que deverão ser feitos durante a sprint.
Canivete suíço de testes de API — curl - existe alguns comandos linux que são verdadeiros canivetes suíços, o curl é uma dessas ferramentas que aplicam uma vasta forma de resolver e coletar informações sobre os endpoints que estamos testando.
Playwright usando o gerador de testes para aprimorar suas habilidades de automação - playwright vem crescendo no mercado para os testes automatizados. Neste artigo é apresentado como gerar dados para utilizar nos testes end-to-end no cypress.
Eventos Importantes não perca!
OWASP A3 - Injeção: Protegendo suas Aplicações contra Ataques - Evento Online.
Data: 30/06
Inscrições abertas
Vejo vocês na próxima newsletter 😁🚀!
“Devagar! Quem mais corre, mais tropeça!”– Shakespeare