Como testar o desempenho de uma aplicação AngularJS Web?

Eu fazia testes de desempenho em sítios Web, principalmente com scripts Jameter.

no entanto, cada vez mais projectos são compilados com MVC do frontend, como AngularJS e um projecto actual está a carregar todo o seu conteúdo através de ficheiros de visualização angular, chamadas de descanso, etc. Infelizmente, o Jameter não executa nenhum javascript, assim o meu teste de carga devolve-me a página inicial em apenas (400ms). Em realidade, leva vários segundos para carregar em um navegador. Quando verifico os dados de resposta, não conter quaisquer dados ainda devido ao Angular.

em vez de investigar o tráfego de rede e carregar individualmente cada componente (por exemplo, perfil.html, notification.html, chamadas de descanso etc. ). Existe um produto no mercado ou algum melhor caso que eu poderia seguir que é semelhante a executar scripts Jameter, mas considerando a execução javascript e carregamento de recursos externos devido ao javascript?

(não estou a planear analisar os tempos de execução de javascript. Isto ainda está para testar se o infra-estrutura atrás é capaz de atender usuários simultâneos xyz)

Author: Aliaksandr Belik, 2015-01-29

4 answers

Embora o Jameter não seja capaz de executar o JavaScript do lado do cliente, pode gravar os pedidos relevantes através do gravador de Programas de teste HTTP. Uma vez gravado, você deve ser capaz de combinar todos os pedidos autônomos em um "agregado" usando o controlador de Transações do JMeter

Se esta abordagem fácil por algumas razões não funciona para você verificar como carregar os locais do teste AJAX/XHR activados com o JMeter para mais opções e pistas.

 6
Author: Dmitri T, 2015-01-30 08:11:36

Uso Ferramentas do Chrome dev para fazer este tipo de testes de desempenho em aplicações web. Sugiro que leia os documentos cromados de Análise de perfis ([[2]} https://developer.chrome.com/devtools/docs/javascript-memory-profiling toda a secção de desempenho e perfil na documentação de goolge é muito boa!

 4
Author: farolfo, 2015-01-29 16:42:38

Pode tentar usar a opção 'Usar Como Monitor' para os pedidos que fizer a partir do seu teste.

Http://jmeter.apache.org/usermanual/build-monitor-test-plan.html

Mas são assassinos de actuações. Outra opção é usar o ouvinte 'salvar respostas a um arquivo' para ver se o HTML final é entregue. Não deve dar-lhe o resultado ideal, mas pode ajudar.

Se você quiser rastrear o desempenho do XHRs para um único usuário, você pode tentar jogar com selênio e Proxy BrowserMob, mas não está sob o teste de estresse, mas testes funcionais.

 2
Author: Neill Lima, 2015-01-30 16:55:43

Podes tentar https://github.com/kidk/felt é construído para este propósito específico.

Ele usa PhantomJS / SlimerJS para gerar carga para um site, então você recebe todas as chamadas API/JS/CSS e imagens que você obteria como em um navegador normal. É ainda um projeto jovem, mas pode ser a solução que você está procurando.

(Este é o meu projecto pessoal)

 2
Author: kidk, 2016-02-26 14:00:00