O que é teste de performance?
O que é testes de performance ou desempenho?
O teste de desempenho é uma abordagem de teste sistemático para validar o desempenho de um aplicativo sob carga.
Na definição acima, duas palavras importantes aparecem. Um é desempenho e outro é carga. A palavra desempenho refere-se ao comportamento de uma aplicação em termos de capacidade de resposta e estabilidade. A outra palavra carga refere-se à carga sobre um aplicativo em termos da contagem de usuários do mundo real. Portanto, o teste de desempenho é realizado para determinar a capacidade de resposta e a estabilidade de um aplicativo quando a carga de usuário do mundo real é aplicada.
Basicamente, o teste de desempenho vem sob verificações de garantia de qualidade de um software/aplicativo em que velocidade, capacidade e estabilidade são as principais verificações. O Software Quality Assurance tem duas categorias:
- Testes funcionais
- Testes não funcionais
O teste de desempenho é um tipo de teste não funcional no qual é dada mais preferência à carga do usuário e à resposta rápida em vez da correção da saída. O Teste funcional tem a responsabilidade de verificar a correção da saída. Por exemplo, quando um cliente faz um pedido on-line, ele deve obter um número de pedido correto. Esta é uma verificação funcional. E, ele deve obter o número do pedido dentro de 1 segundo. Esta é uma verificação de desempenho.
Tipos de Testes
Teste de desempenho é um termo muito genérico. Em testes de desempenho, há muitos tipos de testes. Cada teste tem uma meta de desempenho específica. A seguir está a lista de testes de desempenho e metas relativas:
Teste de Carga
Avaliar a capacidade do sistema em lidar com níveis crescentes de cargas reais devido a grande número de usuários ou processos concorrentes.
- Controlado
- Cargas previstas
Teste de Stress
Avalia a capacidade do sistema em lidar com picos de cargas no limite ou além do limite das cargas previstas ou especificadas. Também usa-se para avaliação com baixa disponibilidade de recursos.
- Caótico
- Situações imprevistas
Teste de Escalabilidade
Avalia a capacidade para atendimento a requisitos futuros de eficiência, podendo estar além dos especificados.
- Qual a capacidade de expansão do sistema?
Teste de Pico
Avalia a capacidade do sistema em responder corretamente a picos súbitos de carga e retornar um estado estável.
Teste de Concorrência
Avalia ações específicas que ocorrem de forma simultânea.
Teste de Resistência
Estabilidade do sistema ao longo de um período de tempo.
- capacidade de recursos
- degradação
Abordagem genérica
O teste de desempenho simula a carga de usuário do mundo real no servidor e identifica o desempenho do sistema em termos de:
- Carregamento de usuários
- Tempo de resposta
- Taxa de Solicitação
Um testador de desempenho conduz o teste de desempenho com a ajuda de uma ferramenta de teste específica conhecida como Ferramenta de Teste de Desempenho. Alguns deles são LoadRunner, JMeter, NeoLoad etc. Essas ferramentas ajudam a criar scripts dos fluxos de negócios e gerar a carga desejada nos servidores. As ferramentas de monitoramento como SiteScope, DynaTrace, AppDynamics etc. monitoram o desempenho do servidor.
No final do teste, o testador de desempenho analisa o resultado do teste e destaca os defeitos (se houver). O defeito identificado durante o teste de desempenho é conhecido como Gargalo. A equipe de desenvolvimento de software (desenvolvedor) tem a responsabilidade de resolver esses gargalos e ajustar a aplicação.
Ferramentas para teste de performance
Muitas ferramentas de teste de desempenho estão disponíveis no mercado. Eles podem ser simplesmente categorizados em:
- Código aberto / Open Source
- Licenciado
- Híbrido
Algumas ferramentas famosas de teste de desempenho:
- LoadRunner
- JMeter
- NeoLoad
- Blazemeter
- LoadView
- Gatling -> programático - java / scala
- K6 -> programático - javascript
- Solar Winds
- LoadStorm
- LoadNinja