Newsletter #047 - Teste de Performance com K6 P. II
Seu newsletter semanal voltado para tecnologia e qualidade de software
Olá pessoal, mais uma semana de newsletter voltado para tecnologia e qualidade de software.
Na semana passada conhecemos sobre como realizar o primeiro script em K6 para testes de performance, caso não tenha lido segue o link. Na newsletter de hoje conheceremos mais sobre K6 e seu sumário inicial dos resultados gerados, então bora lá?
Teste de Performance com K6
Na newsletter criamos o primeiro script em K6, para facilitar a lembrança abaixo segue o script para você executar.
Após desenvolver 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.
Bem provável que depois de ter executado o teste irá aparecer um resumo de como foi a execução como imagem abaixo:
Ter um domínio sobre esse resultado nos auxilia e muito para tomar decisões bem como validar se o script está correto ou se é necessário alguma manutenção, vamos conhecer cada item:
data_received: quantidade de dados que foi recebido durante a execução do teste, isto é o tráfego e download que é feito de cada requisição.
data_sent: quantidade de dados que foi enviado para a API mapeado. Já nestes dois tópicos conseguimos validar o peso de nossas APIs, por exemplo se estamos enviando para nosso usuário uma quantidade de informações que pode atrapalhar a utilização da página quando ela possui uma internet de baixa velocidade.
http_req_blocked: tempo gasto bloqueado (aguardando um slot de conexão TCP livre) antes de iniciar a solicitação. Esta métrica apresentado o tempo em milisegundos de requisições que ficaram aguardando um espaço para realizar a conexão com a API.
http_req_connecting: tempo gasto estabelecendo conexão TCP com o host remoto, isto é o tempo total em milisegundos que uma VU ficou conectado com o servidor.
http_req_duration: tempo total para a solicitação. É igual a http_req_sending + http_req_waiting + http_req_receiving (ou seja, quanto tempo o servidor remoto levou para processar a solicitação e responder, sem os tempos iniciais de pesquisa/conexão de DNS).
http_req_failed: A taxa de solicitações com falha de acordo com o k6 sendo default para status 4xx e 5xx. Esta métrica é muito importante para validação do script e da aplicação sendo essa caso tenha muitos erros é necessário validar o que pode estar ocorrendo.
http_req_receiving: tempo gasto recebendo dados de resposta do host remoto.
http_req_sending: tempo gasto enviando dados para o host remoto.
http_req_waiting: tempo gasto aguardando resposta do host remoto (também conhecido como “tempo até o primeiro byte” ou “TTFB”).
http_reqs: métrica muito importante que mostra o throughput da requisição, isto é o quanto de requisições que ela consegue responder por um determinado tempo, neste caso a aplicação conseguiu responder 406 requisições elas sendo aproximadamente 12 por segundo.
iteration_duration: o tempo para completar uma iteração completa de uma VU.
iterations: o número agregado de vezes que as VUs executam o script JS.
vus: número atual de usuários virtuais ativos.
vus_max: número máximo possível de usuários virtuais (os recursos da VU são pré-alocados, para evitar afetar o desempenho ao aumentar a carga).
Bom, hoje conhecemos a parte do resumo que o K6 gera após a execução. Para o andamento do entendimento do K6 essa informação é muito importante para que consigamos primeiramente entender como que foi a execução do teste e posteriormente gerar ideias e pontos de melhoria. Para a próxima semana iremos conhecer mais sobre padronização dos scripts, não perca!
O que rolou de Tecnologia?
A ascensão da inteligência artificial: explorando as questões mais urgentes do nosso tempo - inteligência artificial é a grande evolução da década. Nada mais justo aprendermos cada característica dela para aplicarmos em questões mais urgentes do nosso tempo.
O mais terrível: o mono repositório - uma das mudanças arquiteturais e de desenvolvimento foi a quebra dos mono repositórios, contudo ainda encontramos no mercado repositórios gigantescos e custosos de se realizar a manutenção. No artigo é apresentado os principais pontos negativos desta arquitetura.
7 Node.js padrões de design que todo desenvolvedor deve conhecer -
E Qualidade de Software, como está?
Top 10 Ferramentas de IA para Automação de QA - inteligência é o grande hype do momento e veio para ficar, nada mais justo conhecermos ferramentas que podem contribuir com nossa evolução na área.
Clean casos de teste usando o modelo de Page Object (POM) no Playwright - criar casos de teste em page objects não é uma tarefa fácil, por ser necessário muita organização. Neste artigo é abordado como fazer limpeza dos casos de testes que foram utilizados Page Objects com a ferramenta Playwright.
Estratégia de Teste de Aplicativos Móveis na Zalando - cases são ótimos textos para pegarmos como base para aperfeiçoarmos nosso conhecimento. Neste artigo é apresentado como foi realizado a estratégia de testes para aplicativos móveis na empresa Zalando.
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 😁🚀!
“O importante é não parar de questionar; a curiosidade tem sua própria razão de existir”– Albert Einstein