Agora que você já sabe o que é um teste de performance e as principais métricas coletadas, vamos falar um pouco sobre uma nova abordagem para a inclusão desses testes no dia a dia das empresas e que está em alta: a utilização de pipelines para testes de performance.
Um teste de performance pode nos entregar diversas informações valiosas.
Com os resultados do teste, teremos insumos para entender quantos acessos simultâneos nosso site suporta, se a infraestrutura nova é melhor que a antiga (e o quanto melhor ela é), se a nossa loja virtual vai suportar aquela campanha que o time de marketing está planejando, ou até se estamos preparados para datas especiais, como a famosa Black Friday.
Independente do evento, é consenso que testes de performance devem ser planejados e executados com antecedência.
Deste modo, há tempo das equipes de tecnologia identificar problemas e corrigi-los.
Entendendo o conceito de Pipeline
E é nesse contexto de planejamento antecipado que podemos introduzir os testes de performance no fluxo de desenvolvimento de um sistema.
Um grande exemplo de planejamento antecipado são os testes regressivos – aqueles cujo objetivos são detectar erros que foram introduzidos em um software após uma alteração de versão.
Em um passado não muito distante, os testes de regressão custavam muito e levavam horas (ou até dias) de diversos QAs para a execução completa, de forma que pudessem passar aos gerentes de produto uma visão clara das falhas em novas versões.
Hoje, esse processo é automatizado em muitas empresas.
Quando uma nova versão do produto é desenvolvida e entregue no ambiente de homologação, todos os testes automatizados são disparados automaticamente contra a nova versão.
Ao final deles, um relatório é gerado automaticamente, informando quais testes falharam e porquê, além da porcentagem de sucesso.
Todo esse processo de disponibilizar a nova versão do produto em um ambiente e disparar os testes faz parte do que chamamos de pipeline, que podemos definir como uma série de ações executadas em sequência ou paralelamente, que nos entregam um resultado final.

As vantagens da utilização de pipelines para testes de performance
Primeiro, vamos falar sobre a vantagem de executar testes de performance como parte do processo de desenvolvimento, e não somente em eventos especiais.
Perguntas-chave:
- Hoje, você saberia dizer qual é o fluxo mais lento do seu produto?
- E dentro desse fluxo, qual serviço ou componente gera essa degradação?
- Se uma força tarefa fosse criada para melhorar a performance do seu produto, qual ponto poderia ser melhorado?
- Se uma equipe refatorar uma função crítica do sistema, como você sabe que essa função apresentou uma melhoria na performance?
Todas essas perguntas só podem ser respondidas com absoluta certeza com um teste de performance.
E se vamos realizar testes de performance de maneira contínua, por que não automatizar esse processo?
Saber se a performance do produto se degradou de uma versão para a outra, ou quantos usuários seu produto suporta, é altamente crucial nos dias de hoje para uma tomada de decisão assertiva.
Além disso, a automação de testes de performance pode agilizar a análise dos resultados quando implementada com ferramentas que fazem comparação com baselines – ou até mesmo com Inteligência Artificial.

O que é necessário para a implementação dos pipelines?
Ambiente
Para a utilização de pipelines para testes de performance, você precisa de uma infraestrutura adequada e robusta.
Deste modo, executar esses testes em notebooks ou máquinas comuns não é uma boa prática, pois os recursos dos mesmos não são suficientes para suprir a carga necessária em um teste de performance.
O ideal é se execute de maneira distribuída (utilizando várias máquinas interligadas), justamente para compartilhar a carga gerada pelo teste.
Esses ambientes de testes não são baratos de se manter e geram altos custos se deixados ligados sem uso. É necessário configurar o pipeline para preparar o ambiente para o teste automaticamente e depois destruí-lo, reduzindo os custos de infraestrutura. Criar ambientes com diversas máquinas se comunicando é uma tarefa que pode se tornar complexa se realizada manualmente e muito suscetível à falhas.
Execução e Análise
O próximo passo seria executar o teste de performance. Para isso, o pipeline precisa ser configurado para pegar o script de testes de um repositório e transferi-lo para o ambiente em que ele será executado.
Com o teste em execução, o passo seguinte é a análise, seja ela em tempo real ou após a finalização do teste. Este passo depende da ferramenta de testes que você utiliza.
Podemos citar vários tipos de acompanhamentos, mas todas as ferramentas geram um arquivo final com os resultados. Assim, desse arquivo, podemos ler os resultados e publicá-los da maneira que for mais conveniente.
Ainda, pode-se utilizar um repositório central de resultados, para que toda a equipe tenha acesso aos resultados, gerando mais engajamento dos times.
Vale a pena?
Executar testes de performance de forma recorrente é quase sempre uma tarefa com muitos detalhes e, sendo realizada manualmente, é mais suscetível a erros.
Logo assim, a utilização de pipelines para testes de performance vem caminhando para ser um padrão na área de qualidade, reduzindo erros e agilizando o processo.
Por fim, a tendência atual é que, assim como acontece com os Testes Funcionais Automatizados, ver testes de performance implantados em pipelines será cada vez mais comum.
Aqui na Sofist, temos expertise em testes de performance, carga e stress, sejam executados de forma isolada ou na implementação em pipelines. Saiba mais!