stress testing guide
Um guia abrangente de teste de estresse para iniciantes:
Enfatizar qualquer coisa além de um ponto resulta em sérias consequências em humanos, máquinas ou programas. Ele causa sérios danos ou o quebra completamente.
Da mesma forma, neste tutorial, aprenderemos como testar a resistência de aplicativos da web junto com seu efeito.
Para evitar qualquer dano permanente aos seus aplicativos ou sites quando eles estão estressados, ou seja, muito carregados, precisamos encontrar o ponto de ruptura e, por sua vez, a solução para evitar tais condições. Pense em como seria quando seu site de compras caísse durante a liquidação de Natal. Qual seria a perda?
Listados abaixo estão alguns exemplos de casos reais em que é de grande importância testar a resistência de um aplicativo ou site:
que tipo de teste é usado para verificar se o novo sistema funciona com dados reais?
# 1) Os aplicativos ou sites de compras comerciais precisam realizar testes de estresse, pois a carga se torna muito alta durante os festivais, período de venda ou oferta especial.
#dois) Aplicativos ou sites financeiros precisam realizar testes de estresse conforme a carga aumenta, em momentos como quando a participação de uma empresa sobe, muitas pessoas fazem login em suas contas para comprar ou vender, sites de compras online redirecionam 'banqueiros da rede' para pagamento etc.
# 3) Os aplicativos da web ou de e-mail precisam ser testados contra estresse
# 4) Sites ou aplicativos de redes sociais, blogs, etc., precisam ser testados contra estresse etc.
O que você aprenderá:
- O que é teste de estresse e por que fazemos o teste de estresse?
- Estratégia para teste de estresse
- Teste de estresse para aplicativos móveis
- Diferença entre teste de carga e teste de estresse
- Casos de teste de amostra
- 5 melhores softwares de teste de estresse
- Conclusão
- Leitura recomendada
O que é teste de estresse e por que fazemos o teste de estresse?
O teste de estresse é definido como o processo de testar o hardware ou software quanto à sua estabilidade sob uma condição de carga pesada. Este teste é feito para encontrar o ponto numérico em que o sistema irá quebrar (em termos de um número de usuários e solicitações do servidor, etc.) e o tratamento de erros relacionado ao mesmo.
Durante o teste de estresse, o aplicativo em teste (AUT) é bombardeado com uma carga pesada por um determinado período de tempo para verificar o ponto de ruptura e ver como o tratamento de erros é feito.
Exemplo: O MS Word pode apresentar uma mensagem de erro ‘Não está respondendo’ quando você tenta copiar um arquivo de 7 a 8 GB.
Você bombardeou o Word com um arquivo enorme e ele não conseguiu processar um arquivo tão grande e, como resultado, foi suspenso. Normalmente eliminamos os aplicativos do Gerenciador de Tarefas quando eles param de responder, o motivo por trás disso é que os aplicativos ficam estressados e param de responder.
A seguir estão alguns motivos técnicos por trás da realização do teste de estresse:
- Para verificar o comportamento do sistema sob condição de carga anormal ou extrema.
- Para encontrar o valor numérico de usuários, solicitações etc., após o qual o sistema pode falhar.
- Trate o erro com atenção, mostrando as mensagens apropriadas.
- Estar bem preparado para tais condições e tomar medidas de precaução como limpeza de códigos, limpeza de DB, etc.
- Para verificar o tratamento de dados antes que o sistema seja interrompido, ou seja, para ver se os dados foram excluídos, salvos ou não, etc.
- Para verificar a ameaça à segurança sob tais condições de quebra, etc.
Estratégia para teste de estresse
Este é um tipo de teste não funcional e geralmente é feito assim que o teste funcional de um site ou aplicativo é concluído. Os casos de teste, a forma de testar e até mesmo as ferramentas de teste podem variar às vezes.
A seguir estão algumas dicas que podem ajudá-lo a criar estratégias para seu processo de teste:
- Identifique os cenários, funcionalidades, etc., que serão mais acessados e podem tender a quebrar o sistema. Como em um aplicativo financeiro, a funcionalidade mais usada é a transferência de dinheiro.
- Identifique a carga que o sistema pode enfrentar em um determinado dia, ou seja, máximo e mínimo.
- Crie um separado Plano de teste , cenário, caso de teste e suíte de teste.
- Use 3-4 sistemas de computador diferentes para testar com diferentes memórias, processadores etc.
- Usuário de 3 a 4 navegadores diferentes para aplicativos da web com versões diferentes.
- Idealmente, encontre o valor abaixo do ponto de interrupção, no ponto de interrupção e o valor após o ponto de interrupção (quando o sistema não responderá de forma alguma), crie uma base de teste e dados em torno deles.
- No caso de aplicativos da web, tente fazer o teste de estresse com uma rede lenta também.
- Não pule para a conclusão dos testes em apenas uma ou duas rodadas, execute os mesmos testes por pelo menos 5 rodadas e, em seguida, conclua suas descobertas.
- Encontre o tempo de resposta ideal do servidor web e qual é o tempo no breakpoint.
- Encontre o comportamento do aplicativo no ponto de interrupção em diferentes pontos do aplicativo, como simplesmente iniciar o aplicativo, fazer login, realizar alguma ação após o login, etc.
Teste de estresse para aplicativos móveis
O teste de estresse para aplicativos móveis nativos é um pouco diferente do teste de aplicativos da web. Em aplicativos nativos, um teste de estresse é feito para as telas comumente usadas adicionando dados enormes.
A seguir estão algumas verificações que são feitas como parte deste teste para aplicativos móveis nativos:
- O aplicativo não falha quando grandes dados são mostrados. Como para um aplicativo de e-mail, cerca de 4 a 5 lakhs de cartões de e-mail recebidos, para aplicativos de compras, a mesma quantidade de cartões de itens etc.
- A rolagem não apresenta falhas e o aplicativo não trava ao rolar para cima ou para baixo.
- O usuário deve ser capaz de visualizar os detalhes de um cartão ou realizar alguma ação no cartão da lista enorme.
- Enviar milhares de atualizações do aplicativo para o servidor, como marcar um item como 'Favorito', adicionar um item ao carrinho de compras etc.
- Tente carregar o aplicativo com dados enormes em uma rede 2G, quando o aplicativo trava ou falha, ele deve mostrar uma mensagem apropriada.
- Tente um cenário de ponta a ponta quando houver dados enormes e uma rede 2G lenta, etc.
A seguir deve ser sua estratégia para testar em aplicativos móveis:
- Identifique as telas que contêm cartões, imagens etc., de modo a direcionar as telas com muitos dados.
- Da mesma forma, identifique as funcionalidades que serão usadas com mais frequência.
- Ao criar a base de teste, tente usar telefones de gama média e baixa.
- Tente testar simultaneamente em dispositivos paralelos.
- Evite este teste no emulador e simuladores.
- Evite testar conexões Wifi, pois elas são fortes.
- Tente executar pelo menos um teste de estresse em campo etc.
Diferença entre teste de carga e teste de estresse
S.No. | Teste de Estresse | Teste de carga |
---|---|---|
1 | Este teste é feito para descobrir o ponto de ruptura do sistema. | Este teste é feito para verificar o desempenho do sistema sob uma carga esperada. |
dois | Esse teste é feito para descobrir se o sistema se comportará conforme o esperado se a carga ultrapassar o limite normal. | Esse teste é feito para verificar o tempo de resposta do servidor para a carga específica esperada. |
3 | O tratamento de erros também é verificado neste teste. | O tratamento de erros não é testado intensamente. |
4 | Isso também verifica se há ameaças de segurança, vazamentos de memória, etc. | Nenhum desses testes é obrigatório. |
5 | Verifica a estabilidade dos sistemas. | Verifica a confiabilidade do sistema. |
6 | O teste é feito com mais do que o máximo. possível número de usuários, solicitações etc. | O teste é feito com o número máximo de usuários, solicitações etc. |
Teste de Estresse x Teste de Carga
Casos de teste de amostra
Os casos de teste que você criará para seu teste dependerão do aplicativo e de seus requisitos. Antes de criar os casos de teste, certifique-se de conhecer as áreas de foco, ou seja, as funcionalidades que tendem a falhar sob a condição de uma carga anormal.
A seguir estão alguns exemplos de casos de teste que você pode incluir em seus testes:
- Verifique se uma mensagem de erro adequada é exibida quando o sistema atinge o ponto de interrupção, ou seja, cruza o número máximo de usuários permitidos ou solicitações.
- Verifique o caso de teste acima para várias combinações de RAM, processador e rede, etc.
- Verifique se o sistema funciona conforme o esperado quando no máximo não. de usuários ou solicitações estão sendo processadas. Verifique também o caso de teste acima para várias combinações de RAM, processador e rede, etc.
- Verifique se mais do que o permitido não. de usuários ou solicitações estão realizando a mesma operação (como comprar os mesmos itens de um site de compras ou fazer uma transferência de dinheiro, etc.) e se o sistema deixar de responder, uma mensagem de erro apropriada é mostrada sobre os dados (não salvos? - depende do implementação).
- Verifique se mais do que o nº permitido. de usuários ou solicitações estão executando operações diferentes (como um usuário está fazendo login, um usuário está iniciando o aplicativo ou link da web, um usuário está selecionando um produto, etc.) e se o sistema ficar irresponsivo, uma mensagem de erro apropriada é mostrada sobre os dados (não salvo? - depende da implementação).
- Verifique se o tempo de resposta para usuários ou solicitações de ponto de interrupção está em um valor de aceitação.
- Verifique o desempenho do aplicativo ou site quando a rede está muito lenta, uma mensagem de erro adequada deve ser exibida para a condição de 'tempo limite'.
- Verifique todos os casos de teste acima para um servidor que tem mais de um aplicativo em execução para verificar se o outro aplicativo foi afetado etc.
Antes de executar os testes, certifique-se de que:
- Todas as falhas funcionais do aplicativo em teste são corrigidas e verificadas.
- O sistema completo de ponta a ponta está pronto e a integração testada.
- Nenhum novo check-in de código que afetará o teste é feito.
- Outras equipes são informadas sobre sua programação de testes.
- Os sistemas de backup são criados no caso de alguns problemas sérios.
5 melhores softwares de teste de estresse
Quando o teste de estresse é feito manualmente, é um trabalho muito complicado e tedioso. Também pode não produzir os resultados esperados.
As ferramentas de automação podem fornecer os resultados esperados e é relativamente fácil criar a base de teste necessária usando-as. Pode acontecer que as ferramentas que você está usando para o seu teste funcional normal não sejam suficientes para o teste de estresse.
Portanto, cabe a você e sua equipe decidir se desejam uma ferramenta separada exclusivamente para este teste. Também é benéfico para os outros que você administre a suíte à noite, para que o trabalho deles não seja prejudicado. Usando ferramentas de automação, você pode agendar a suíte para funcionar à noite e os resultados estarão prontos para você no dia seguinte.
A seguir está uma lista das ferramentas mais recomendadas:
# 1) Carregador:
LoadRunner é uma ferramenta desenvolvida pela HP para testes de carga, mas também pode ser usada para testes de estresse.
Ele usa o VuGen, ou seja, o Virtual User Generator para criar os usuários e as solicitações de teste de carga e estresse. Esta ferramenta possui bons relatórios de análise que podem ajudar a desenhar os resultados na forma de gráficos, tabelas etc.
# 2) Neoload:
Neoload é uma ferramenta paga que é útil para testar aplicativos da web e móveis.
Pode simular mais de 1000 usuários para verificar o desempenho do sistema e encontrar o tempo de resposta do servidor. Ele também se integra com a nuvem para testes de carga e estresse. Ele oferece boa escalabilidade e é muito fácil de usar.
# 3) JMeter:
JMeter é uma ferramenta de código aberto que funciona com JDK 5 e versões superiores. O foco desta ferramenta é principalmente no teste de aplicativos da web. Também pode ser usado para testar conexões de banco de dados LDAP, FTP, JDBC, etc.
melhor bloqueador de pop-up para cromo
# 4) Moedor:
O Grinder é uma ferramenta de código-fonte aberto e baseada em Java usada para testes de carga e estresse.
A parametrização pode ser feita dinamicamente durante a execução dos testes. Possui bons relatórios e afirmações para ajudá-lo a analisar os resultados de uma maneira melhor. Ele tem um console que pode ser usado como um IDE para criar e editar os testes e os agentes para criar a carga para fins de teste.
# 5) WebLoad:
Webload A ferramenta tem uma edição gratuita e outra paga. Esta edição gratuita permite a criação de até 50 usuários.
Esta ferramenta oferece suporte para verificação de estresse de aplicativos móveis e da web. Suporta diferentes protocolos como HTTP, HTTPS, PUSH, AJAX, HTML5, SOAP etc. Possui um IDE, console de geração de carga, painel de análise e integrações (para integrar com Jenkins, ferramentas APM etc).
Conclusão
O teste de estresse se concentra completamente em testar o sistema sob condições extremas de carga para encontrar seu ponto de interrupção e ver se as mensagens apropriadas são mostradas quando o sistema não responde. Ele sobrecarrega a memória, o processador etc. durante o teste e verifica se eles se recuperam bem.
O teste de estresse é um tipo de teste não funcional e geralmente é feito após o teste funcional. Quando há um requisito de teste de carga também, esse teste pode ser feito como o caso extremo de teste de carga. 90% do tempo, a mesma ferramenta de automação pode ser usada para testes de carga e estresse.
Espero que você tenha obtido uma grande compreensão do conceito de Teste de Stress !!
Leitura recomendada
- Teste de carga com tutoriais HP LoadRunner
- Teste de desempenho vs teste de carga vs teste de estresse (diferença)
- Guia completo de teste de carga para iniciantes
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Teste Alfa e Teste Beta (um guia completo)
- Guia para iniciantes em testes de penetração em aplicativos da Web
- Teste de carga, estresse e desempenho de aplicativos da Web usando WAPT
- Teste Funcional Vs Teste Não Funcional