Fundamentos de teste de desempenho
-
22-09-2019 - |
Pergunta
Tenho algumas perguntas básicas sobre a compreensão dos fundamentos dos testes de desempenho. Sei que, em várias circunstâncias, podemos querer fazer - testes de estresse - testes de resistência etc. Mas meu principal objetivo aqui é garantir que o tempo de resposta seja decente da aplicação sob um conjunto de carga que é para uma extremidade mais alta ou menos acima da média carregar.
Minhas perguntas são as seguintes:
Quando você começa a planejar o tempo de resposta esperado do aplicativo; o que você considera. Se esse é o primeiro passo. Quero dizer, agora tenho um aplicativo da web. Eu apenas pego uma figura do ar e digo "eu esperaria que a aplicação levasse 3 segundos para responder a cada solicitação". E então descobre o que minha aplicação está faltando para obter esse tempo de resposta?
Ou é o contrário, e você inicia o teste de desempenho com um determinado conjunto de hardware e digamos, vamos ver que tempo de resposta eu recebo agora e depois veja os resultados e diga: bem, são 8 segundos agora, gostaria que eu gostaria São 3 segundos no Max, então vamos ver como podemos otimizá -lo como 3 segundos? Mas novamente está 3 segundos fora do ar? Tenho certeza de que a ampliação de máquinas não terá tempo de resposta. Ele aumentará o tempo de resposta apenas quando uma única máquina/servidor estiver em carga e você inicia o cluster?
Agora, para um único usuário, tenho tempo de resposta como 3 segundos, mas à medida que a carga aumenta, ela diminui exponencialmente; Então, onde eu desenho a linha entre "Preciso otimizar mais o código" (que tem seu limite superior) e "Preciso ampliar meus servidores" (que também tem um limite)
Quais são as melhores ferramentas gratuitas para fazer desempenho e teste de carga? Eu usei um pouco o JMeter. Mas há mais alguma coisa, isso é bom e de código aberto?
Se eu tiver que otimizar o código, começo a perfil dos fluxos específicos que levaram muito tempo a responder às solicitações?
Basicamente, eu gostaria de ver como se passa de ponta a ponta de teste de desempenho para sua aplicação. Quaisquer links ou artigos seriam muito úteis.
Obrigado.
Solução
o Conselho de Testes de Desempenho é sua porta de entrada para trocar livremente experiências, conhecimentos e práticas de teste de desempenho.
Leia também Padrões e práticas da Microsoft para teste de desempenho. Este guia mostra uma abordagem de ponta a ponta para implementar testes de desempenho.
Fénix mencionou as ferramentas de código aberto.
Outras dicas
Primeiro de tudo, você pode ler
Melhores práticas para acelerar seu site
Para ferramentas
Esse link e isto Mostre um exemplo e método de ajuste de desempenho um aplicativo quando o aplicativo não tiver nenhum "gargalo" óbvio. Funciona mais intuitivamente em threads individuais. Não tenho experiência em usá -lo em aplicativos da Web, embora outras pessoas o façam. Concordo que o perfil não é fácil, mas sempre confiei nessa técnica e acho que é muito fácil / eficaz.
Primeiro de tudo, projete seu aplicativo corretamente.
Use um perfil, veja onde estão os gargalos em seu aplicativo e retire -os, se possível. Meça o desempenho antes de melhorá -lo.
Vou tentar fornecer um guia básico passo a passo, que pode ser usado para implementar testes de desempenho em seu projeto.
1 - Antes de começar a testar Você deve saber a quantidade de memória física e a quantidade de memória alocada para a JVM, ou qualquer outra coisa. O tamanho do banco de dados coleta o máximo possível de métricas para o seu ambiente atual. Conheça seu ambiente
2 - O próximo passo seria identificar o tamanho comum da produção de banco de dados e o crescimento anual esperado. Você deseja testar como seu aplicativo se comportará depois do ano, dois, cinco etc.,
3 - Automatize a configuração do ambiente, isso ajudará muito no futuro para testes de regressão e validação de correção de defeitos. Então você precisa ter despejos de banco de dados para seus testes. Com o volume atual (basal), um ano, cinco anos.
4 - Depois de terminar, se reunir informações básicas - Pense em monitorar seus servidores sob carga, talvez você já tenha alguma solução de monitoramento, como http://newrelic.com/ Isso ajudará você a identificar a causa da degradação do desempenho (CPU/MEM/quantidade de threads etc.,) Algumas ferramentas de teste de desempenho foram incorporadas em sistemas de monitoramento.
Com isso, você está pronto para se mover com ferramentas e seleção de carga, já há materiais de como fazer isso para pular a parte da seleção da carga de trabalho.
5 - Selecione ferramenta Eu acho que Jmeter + http://blazemeter.com/ É o que você precisa neste momento, ambos têm muitos artigos e materiais educacionais bons, para sua gravação de scripts que eu recomendaria usar a extensão Chrom Blazemeters em vez da solução JMeters embutida. Se você ainda acha que não tem conhecimento sobre como as coisas são feitas no jmeter, recomendo obter este livro - Teste de desempenho com JMeter 2.9 por Bayo Erinle
6 - Analise os resultados, revise o plano de teste e faça ações correspondentes.