Pergunta

Estou prestes a começar a testar um aplicativo web de intranet.Especificamente, preciso determinar o desempenho do aplicativo.

Alguém poderia sugerir padrões formais/informais sobre como posso avaliar o desempenho do aplicativo.

Foi útil?

Solução

Use alguma ferramenta para testes de estresse e carga.Se você estiver usando Java, dê uma olhada em JMeter.Ele fornece diferentes métodos para testar o desempenho do seu aplicativo.Você deve se concentrar em:

  • Tempo de resposta:A rapidez com que seu aplicativo está sendo executado para solicitações normais.Teste alguns casos de uso de leitura/gravação
  • Teste de carga:Como seu aplicativo se comporta em horários de alto tráfego.A ferramenta enviará várias solicitações (você pode configurar isso corretamente) durante um período de tempo.
  • Teste de stress:Sua aplicação pode operar durante um longo período de tempo?Este teste levará seu aplicativo ao limite

Comece com isso, se tiver interesse, existem outros tipos de testes.

Outras dicas

Para testar o front-end, o YSlow é ótimo para obter estatísticas de quanto tempo suas páginas levam para carregar da perspectiva do usuário.Ele se divide em estatísticas para cada solicitação HTTP específica, o tempo que levou, etc.Obtenha em http://developer.yahoo.com/yslow/

O Firebug, claro, também é essencial.Você pode criar um perfil de seu JS explicitamente ou em tempo real clicando no botão de perfil.Fazendo otimizações quando necessário e vendo quanto tempo todas as suas funções levam para serem executadas.Isso mudou a maneira como avalio o desempenho do meu código JS. http://getfirebug.com/js.html

Na verdade, a grande coisa que eu acho é o tempo de resposta, mas outros indicadores que eu observaria são o uso do processador e da memória vs.o número de usuários/processos simultâneos.Eu também verificaria se tudo está funcionando conforme o esperado sob carga normal e depois de pico.Você pode encontrar cenários em que uma carga mais alta causa erros de aplicativo devido a várias solicitações interferindo umas nas outras.

Se você realmente deseja obter informações detalhadas, execute diferentes tipos de testes de carga/estresse.Você provavelmente desejará observar um teste de carga em etapas (um aumento gradual de usuários no sistema ao longo do tempo) e um teste de pico (um número significativo de usuários acessando ao mesmo tempo, onde quase ninguém estava acessando antes).Eu também executaria testes no servidor logo após a reinicialização para ver como isso afeta o sistema.

Você provavelmente também desejará examinar um conceito chamado HEAT (Hostile Environment Application Testing).Na verdade, isso mostra o que acontece quando alguma parte do sistema fica offline.O sistema degrada com sucesso?Este deveria ser um padrão fundamental.

Minha única grande sugestão é estabelecer o que o sistema deve fazer antes de fazer o teste.A principal razão é a responsabilização.Faça com que as pessoas admitam que o sistema deve fazer alguma coisa e depois teste para ver se isso é verdade.Isto é fundamental porque as pessoas verão imediatamente os resultados e essa será a referência básica para o que é aceitável.

"Especificamente, preciso determinar o desempenho do aplicativo...."

Isso fecha o círculo para a questão dos requisitos, as expectativas capturadas da sua comunidade de usuários sobre o que é considerado razoável e eficaz.Os requisitos têm vários componentes

  1. Tempo de resposta geral, " Sob uma carga de ....O Site deverá ter um tempo de resposta geral inferior a x, y% do tempo..."
  2. Tempos de resposta específicos, " Sob uma carga de ....O processamento do cartão de crédito levará menos de z segundos, uma% do tempo..."
  3. Itens de capacidade do sistema, " Sob uma carga de ....CPU|Rede|RAM|DISC não deve exceder n% da capacidade...."
  4. O perfil de carga, que é a combinação do número de usuários e transações que ocorrerão sob as quais as medidas específicas e objetivas são coletadas para determinar o desempenho do sistema.

Você notará que os tempos de resposta e outras medidas não são absolutos.Seguindo uma página dos princípios de fabricação seis sigma, o custo para passar de 1 exceção em um milhão para 1 exceção em um bilhão é extraordinário e o custo para passar para zero exceções geralmente é um custo não suportável pela organização média.O que é considerado um tempo de resposta aceitável para um aplicativo exclusivo para sua organização provavelmente será totalmente diferente de uma oferta altamente comoditizada, que é um aplicativo público voltado para a Internet.Para soluções altamente competitivas, as expectativas de tempo de resposta na Internet tendem para a faixa de 2 a 3 segundos, onde o abandono do usuário aumenta severamente.Isso caiu na última década de 8 segundos para 4 segundos e agora para a faixa de 2 a 3 segundos.Alguns aplicativos, como o Facebook, atingem tempos de resposta quase imperceptíveis na faixa inferior a um segundo por razões competitivas.Se você está procurando um padrão rígido, eles simplesmente não existem.

Algo que ajudará na sua compreensão é ler alguns benchmarks do setor em termos de estilo, forma e função.

Configurar um conjunto sólido de testes de desempenho que represente suas necessidades não é uma questão trivial.Você pode contratar um especialista para cuidar desta fase de seus esforços de controle de qualidade.

Na sua seleção de ferramentas, certifique-se de obter uma que possa

  • Exercite sua interface
  • Relatório de acordo com seus requisitos
  • Você ou sua equipe têm as habilidades para usar
  • Você pode começar o treinamento e participará com a aprovação da administração

Falha em qualquer um dos quatro elementos acima e você também comprou a ferramenta mais cara do mercado e contratou a empresa mais cara para implantá-la.

Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top