Documente Academic
Documente Profesional
Documente Cultură
Fator de carga:
testes de
desempenho
para aplicativos
web
Índice
Internet
3
Figura 2
O VuGen permite emular cargas de trabalho de produção em um sistema
inteiro.
Controlador Usuários simulados Internet/WAN Servidor web Servidores de aplicativos Banco de dados
Essa complexidade gera muitas incertezas sobre a integridade e o Os testes manuais também não são a opção mais prática, porque
desempenho de capacidades de um aplicativo web. Ele fornecerá para poder diagnosticar problemas de forma precisa, você deve
tempos de resposta consistentemente rápidos para todos os repetir os testes diversas vezes: primeiro, para identificar problemas
usuários – independentemente de onde eles estejam vindo ou de de desempenho, ajuste o sistema e em seguida repita o teste para
que tipo de conexão estejam utilizando? Um aplicativo consegue verificar se o ajuste teve um impacto positivo. Os testes manuais são
sustentar um grande volume de usuários? Ele permanecerá rápido uma opção no caso de falha dos negócios.
e confiável após um aumento súbito no número de usuários? Existe
hardware suficiente em cada camada para suportar altos volumes Com ferramentas de testes de desempenho automatizados, você
de tráfego? As peças interoperáveis do sistema podem trabalhar pode realizar os testes automaticamente e medir os resultados.
juntas de forma confiável? Qual a capacidade máxima do aplicativo? Você também pode criar de forma fácil e econômica, e manter
Para responder a essas perguntas, você deve ser capaz de prever scripts e cenários para maximizar a reutilização entre os testes,
como seus aplicativos web irão se comportar em um ambiente comparando os resultados com precisão. As ferramentas de
de produção antes de irem para o ar, e deve continuar a medir e testes automatizados ajudam a reduzir o risco de erro humano
monitorar seu sistema por toda a sua vida útil. durante os testes. Como resultado disso, os testes de desempenho
automatizados se tornaram a preferência das empresas de todos os
tipos e tamanhos para testes de desempenho dos aplicativos críticos
Teste completo dos seus aplicativos de negócios. As ferramentas de testes automatizados usam três
componentes principais para realizar um teste:
Uma resposta típica ao tráfego crescente no seu site da web é • Um console de controle que organiza, opera e gerencia a carga e o
adicionar mais hardware a cada componente do sistema. Entretanto, comportamento dos usuários
essas tentativas aleatórias de melhorar o desempenho geralmente
levam ao excesso de compras de hardware – e não necessariamente • Usuários virtuais (Vusers) – processos utilizados para imitar um
a um melhor desempenho e dimensionamento, já que, por muitas usuário real realizando um processo de negócios em um aplicativo
vezes, o aplicativo não foi projetado para ser elástico. A única cliente
maneira de prever com precisão o comportamento do sistema é • Servidores de carga (utilizados para operar os Vusers)
executar testes de desempenho em seus aplicativos, de ponta a
ponta, medir os tempos de resposta da perspectiva do usuário final e Utilizando esses componentes, as ferramentas de testes de carga
diagnosticar e remediar quaisquer problemas de desempenho antes automatizados podem:
de colocá-lo em operação. • Substituir os testadores manuais por Vusers automatizados
• Operar simultaneamente diversos Vusers em uma única máquina
O teste de desempenho de aplicativos é a forma de medir a
geradora de carga, a partir de um local único ou diversos locais ao
capacidade do seu aplicativo web de conduzir diversas transações
redor do globo
simultaneamente, mantendo tempos adequados de resposta.
Ele também ajuda a isolar gargalos em qualquer componente da • Medir automaticamente os tempos de resposta de transação e
infraestrutura da rede, para destacar com precisão problemas em monitorar os componentes de infraestrutura
potencial. Duas abordagens comuns aos métodos de testes de • Repetir facilmente cenários de carga para validar as mudanças
desempenho são os testes manuais e automatizados. Infelizmente, que você fizer para otimizar o desempenho
os testes manuais possuem diversos desafios inerentes, tais como:
Essa funcionalidade avançada permite economizar tempo
• Dificuldade na emulação do comportamento de milhares de
e recursos.
usuários simultâneos
• Coordenação das operações do usuário
• Medição precisa dos tempos de resposta
• Comparação de resultados dos testes, cenários e iterações.
4
Tabela 1
Precisão e escalabilidade são atributos cruciais de uma solução de testes de desempenho automatizados.
Registre scripts de testes de carga em um aplicativo cliente real. Gere mais Vusers que possam ser executados em uma única máquina antes de exceder sua
capacidade.
Capture comunicação no nível de protocolo entre o aplicativo cliente e o resto do Gere mais acessos por segundo em um servidor web.
sistema.
Verifique se o conteúdo solicitado retorna ao navegador para facilitar uma Aumente o número de Vusers de forma controlada.
transação bem-sucedida.
Mostre resultados detalhados de desempenho que possam ser facilmente Simule o efeito de escalonar para locais remotos através de redes de área sem fio (WANs).
entendidos e analisados para identificar a fonte do problema.
5
• Definição de abordagem de testes
Você deve determinar a estratégia adequada para os aplicativos
de testes. Você pode escolher entre um ou mais tipos de testes
de desempenho: testes de carga, de tensão e de capacidade.
Os testes de carga são usados geralmente para medir como um
aplicativo irá funcionar sob uma carga específica de usuário. Seu
objetivo é determinar se o aplicativo web pode sustentar esse
número solicitado de usuários com tempos de resposta aceitáveis.
Os testes de tensão são a maneira de validar a estabilidade e a
confiabilidade de um aplicativo aplicando carga por um longo
período de tempo. Os testes de capacidade ajudam a determinar
o número máximo de usuários que podem acessar seu aplicativo
simultaneamente sem que ocorra uma falha do sistema.
6
Figura 3 Figura 4
Este gráfico genérico mostra o desempenho do aplicativo sob carga. Neste Este gráfico genérico mostra transações aprovadas ou reprovadas. Neste
exemplo, os tempos de resposta do aplicativo aumentam muito quando o exemplo, a transação número dois foi reprovada em aproximadamente um
número de usuários simultâneos chega a 7.500. terço do tempo. Dependendo da importância dessa transação, uma taxa de
falha tão alta provavelmente não é aceitável para os negócios.
16
120
14
Número de transações
Tempo de resposta (s)
100
12
80
10
60
8
40
6
20
4
2 0
1 2 3 4 5 6
0
1 2 3 4 5 6 7 8 9 10 Transações de negócios
Número de usuários (milhares)
Aprovadas Reprovadas
7
Figura 5
Como o HP LoadRunner funciona
4 Os resultados são
armazenados em um
repositório de banco de
dados permitindo aos
1 O controlador é um console usuários gerarem relatórios
central a partir do qual e realizarem análises
os testes de carga são
gerenciados e monitorados
Etapa 4: Definir os cenários de testes de desempenho Além disso, o HP LoadRunner oferece um assistente de cenário,
O cenário de testes de desempenho contém informações sobre os um programador e TurboLoad para melhorar sua experiência
grupos de Vusers que podem executar os scripts e as máquinas de durante os testes. O assistente de cenário HP LoadRunner permite
carga nas quais os grupos estão sendo executados. Para executar um compor rapidamente cenários de testes de carga de diversos
cenário bem-sucedido, você deve primeiro categorizar seus clientes usuários. Utilizando cinco telas fáceis de seguir, o assistente
em grupos com base em suas transações. Em seguida, você precisa de cenário guia você através de um processo de selecionar as
definir e distribuir o número total de Vusers. Você pode atribuir um estações de trabalho que podem hospedar os Vusers, além de os
número variável de Vusers a processos de negócios individuais para scripts de teste a serem executados.
emular grupos de usuários realizando múltiplas transações. Um grupo
Durante esse processo passo a passo, você também pode criar
pode estar pesquisando um livro e o segundo e o terceiro grupos
grupos de simulação de Vusers. O programador do HP LoadRunner
podem estar inserindo informações de pagamento ou de endereços
é utilizado para aumentar ou diminuir o número de Vusers para
de entrega. Após os grupos de Vuser terem sido atribuídos, você deve
posicioná-los no estado de prontidão e de operação. Por exemplo,
determinar em quais máquinas geradoras de carga os Vusers podem
você pode querer aumentar gradualmente o número de clientes
operar. Você pode adicionar máquinas geradoras de carga ao lado
fazendo login no seu site com um tamanho de lote fixo. Isso é
do cliente da arquitetura do sistema para operar Vusers adicionais.
conhecido como estado de prontidão. Esse método ajuda a evitar
Finalmente, você precisa especificar como o cenário irá operar. Você
tensão desnecessária sobre o sistema.
pode operar os grupos de Vuser em formação coordenada ou paralela.
Coordenar os Vusers permite examinar um aumento gradual da carga O programador também gerencia a programação e possui um
de usuário até um pico. processo automatizado que permite ao usuário executar o script
• Criação de cenários de testes de carga com HP LoadRunner sem estar presente. Em tempo real, isso seria similar a executar
O HP LoadRunner Controller é utilizado para criar cenários, um script fora dos horários de pico – como de 18h00 a 06h00. Para
fornecendo visibilidade completa dos testes e dos Vusers a partir programar um teste, basta clicar no botão “Run Scenario” e inserir
de um único ponto de controle. O Controller facilita o processo de a hora inicial desejada.
criar um cenário de testes de carga permitindo: • Criação de testes de impacto de rede.
−− Alinhar scripts a grupos individuais O teste de rede usa informações sobre onde os grupos de Vusers
−− Definir o número total de Vusers necessários para executar os podem ser localizados em relação ao servidor. Durante o teste,
testes somente as características da rede – como disponibilidade de
rede, contenção, latência, erros e jitter – podem ser alteradas;
−− Definir as máquinas host em que os Vusers irão operar
o número de Vusers nesse teste permanece constante. Ao
8
Figura 6
O VuGen permite capturar processos de negócios para criar Vusers.
Processo de negócios
Navegador
Aplicativo
coordenar as reduções na largura de banda ou os aumentos na • Execute o cenário de teste de carga e monitore o desempenho
latência, erros e jitter, você pode entender sua influência relativa com HP LoadRunner
sobre o comportamento do aplicativo. Esses dados podem Quando o cenário estiver criado, você estará pronto para
ser usados para definir os requisitos da rede para o aplicativo realizar o teste. O controlador HP LoadRunner fornece uma
quando ele for implementado. Você pode conduzir esse tipo suíte de monitores de desempenho que podem monitorar cada
de teste diretamente através da rede em locais remotos, mas componente de um sistema multicamadas durante o teste de
para propósitos de testes, geralmente é mais prático emular a carga. Ao capturar dados de desempenho por todo o sistema, você
rede onde você possa estabelecer facilmente uma variedade de pode correlacionar essa informação com as cargas de usuário final
condições usando emulação WAN. Isso pode permitir que você e tempos de resposta para identificar gargalos. O HP LoadRunner
preveja o desempenho para usuários remotos. fornece monitores de desempenho para todas as partes do
sistema que estiverem sendo testadas – incluindo servidores
• Definição de testes de carga por locais com HP LoadRunner web, servidores de aplicativo, bancos de dados, sistemas ERP e
O HP LoadRunner tem a capacidade de lidar com a emulação de CRM, firewalls e balanceadores de carga. O HP LoadRunner pode
WAN, assim você pode usar os mesmos scripts de usuário virtual identificar limitações de hardware e problemas de configuração
utilizados nas etapas anteriores para testes de impacto na rede. de software que passariam despercebidos de outra maneira.
Características de rede como velocidade de conexão, latência Todos os monitores de desempenho são do tipo não invasivos e
e taxas de erro são modificadas para grupos de Vusers que são independentes de hardware e SO, por isso não exigem que agentes
simultaneamente emulados durante a execução de um único sejam instalados nos servidores remotamente monitorados. Para
teste. Você pode determinar com precisão o impacto da rede sobre um olhar mais aprofundado em cada transação – do tempo de
o tempo de resposta nos diferentes grupos, além de outros itens resposta do usuário final até o nível de método do aplicativo –,
sensíveis do aplicativo para a rede. Você pode registrar dados de você pode usar o software HP Diagnostics. Durante um teste de
tempo de resposta esperados e conjunto de requisitos de rede desempenho, o HP Diagnostics rastreia processos de negócios
para uso posterior quando o aplicativo entrar em operação. do lado do cliente através de todas as camadas da infraestrutura
e, em seguida, reparte cada tempo de resposta de transação
Etapa 5: Criar o cenário de teste de carga e monitorar o no tempo gasto nas várias camadas e dentro de componentes
desempenho individuais. HP Diagnostics fornece:
Você pode ver o desempenho do aplicativo a qualquer momento −− Uma visualização intuitiva e fácil de usar, que mostra como
durante o teste usando a monitoração em tempo real. Cada as camadas individuais, os componentes, a memória e os
componente do sistema requer monitoração: os clientes, a rede, o comandos SQL impactam o desempenho geral de um processo
servidor web, o servidor de aplicativo, o banco de dados e todo o de negócios em condições de carga.
hardware de servidor. Você pode detectar gargalos de desempenho
−− A capacidade de identificar mais facilmente os componentes
antecipadamente durante o teste usando monitoração em tempo
relevantes para um determinado processo de negócios sendo
real. Você então terá a capacidade de ver o desempenho de cada
testado.
camada única, servidor e componente do sistema durante os testes.
Como resultado disso, você pode identificar instantaneamente −− A capacidade de fazer a triagem e identificar problemas de
gargalos de desempenho durante os testes de carga. Isso pode forma eficaz dentro do contexto de negócios, permitindo que
permitir que você acelere o processo de teste e alcance um as equipes se concentrem nos problemas que impactam os
aplicativo mais estável. processos de negócios.
9
Figura 7
O HP LoadRunner e o HP Diagnostics permitem monitorar o desempenho do sistema durante os testes, diagnosticar gargalos de desempenho conforme eles
forem ocorrendo e identificar a causa dos problemas.
Etapa 6: Analisar os resultados responder perguntas como as seguintes: De quanto era a memória
Coletar e processar dados de teste é uma etapa essencial para isolar de CPU do servidor web quando o sistema estava sob uma carga de
e resolver gargalos de desempenho. A análise pode produzir uma 5.000 usuários simultâneos? Quantas transações no total foram
série de gráficos e relatórios que ajudam a resumir e apresentar os aprovadas ou reprovadas após a conclusão do teste de carga?
resultados do teste de ponta a ponta. Quantos acessos por segundo o servidor web consegue suportar?
Quais foram os tempos médios de transação para cada Vuser? As
• Analisando os resultados com HP LoadRunner Analytics Figuras 8 e 9 mostram exemplos de gráficos do HP LoadRunner
Analisar resultados é possivelmente a etapa mais importante no analysis. O HP LoadRunner fornece uma variedade de gráficos de
processo de testes de carga. Até esse ponto, você pôde registrar desempenho, como os listados abaixo:
com precisão e reproduzir as ações de um usuário real e observar
gargalos em potencial usando recursos de monitoração de −− Percentil: analisa a porcentagem de transações que foram
desempenho. Agora, você pode tomar medidas para resolver realizadas dentro de um dado intervalo de tempo
problemas que foram identificados durante o teste. −− Desempenho sob carga: indica os tempos de transação em
Primeiro, um especialista em rede (como um administrador de relação ao número de Vusers operando a qualquer ponto
banco de dados ou consultor) pode fazer os ajustes necessários ao durante o cenário
sistema. Em seguida, você precisa repetir os scripts para verificar −− Desempenho de transação: exibe o tempo médio necessário
se as alterações foram aplicadas. para realizar transações durante cada segundo de operação do
cenário
Finalmente, você pode medir a quantidade de melhoria pela qual o −− Resumo de desempenho de transação: exibe os tempos de
sistema passou comparando resultados de antes e depois desempenho mínimo, máximo e médio para todas as transações
dos testes. no cenário
O componente HP LoadRunner analysis fornece um ambiente −− Desempenho de transação por Vuser: exibe o tempo utilizado
único de integração que reúne de forma coletiva os dados gerados por um Vuser individual para realizar transações durante o
por todo o ciclo de testes. O HP LoadRunner analysis fornece cenário
capacidades avançadas que permitem comparar resultados
−− Distribuição de transação: exibe a distribuição do tempo
através de cenários e aprofundar-se nas camadas da rede para
utilizado para realizar uma transação
identificar gargalos. Além disso, o HP LoadRunner analysis usa
uma série de gráficos sofisticados e relatórios que ajudam a
10
Figura 8 Figura 9
Este gráfico de atividade de amostra exibe o número de transações Este gráfico exibe o número de transações aprovadas, reprovadas,
concluídas (sucedidas e malsucedidas) realizadas durante cada segundo de abortadas ou encerradas com erros. Por exemplo, esses resultados mostram
um teste de carga. Este gráfico ajuda a determinar a carga de transação real que o processo “Enviar pesquisa” foi aprovado em todas as transações a
sobre o seu sistema em qualquer momento. O resultado mostra que após uma taxa de aproximadamente 96%.
seis minutos, um aplicativo estará sob uma carga de 200 transações por
segundo.
HP LoadRunner também oferece dois tipos de gráficos web: Utilizando um mínimo de recursos de hardware, o HP LoadRunner
−− Conexões por segundo: mostra o número de conexões feitas no emula centenas ou milhares de usuários simultâneos para aplicar
servidor web pelos Vusers durante cada segundo da operação cargas de trabalho de produção a praticamente todos os ambientes
do cenário ou plataformas de aplicativo. O HP LoadRunner tensiona um
aplicativo de ponta a ponta – aplicando cargas consistentes,
−− Fluxo: mostra a quantidade de fluxo no servidor durante cada mensuráveis e que podem ser repetidas –, depois usa os dados para
segundo de operação do cenário. O HP LoadRunner analysis identificar problemas de escalabilidade que podem afetar usuários
inclui uma correlação dos resultados para melhorar o processo reais em produção.
de análise do usuário para os dados. Isso permite personalizar
um gráfico além do básico, usando uma métrica entre as duas Conforme gera carga para o sistema, o HP LoadRunner captura os
opções disponíveis. Como resultado disso, você pode identificar tempos de resposta do usuário final para transações e processos de
e resolver problemas de desempenho negócios. Os monitores em tempo real de desempenho não invasivo
mais rapidamente. obtêm e exibem os dados de cada camada do aplicativo, servidor e
componente do sistema. Fortes capacidades de análise ajudam a
Software HP LoadRunner: isolar gargalos de desempenho de forma rápida e eficiente.
compreendendo o desempenho de
aplicativos
O software HP LoadRunner é a solução padrão do setor voltado à
realização de testes de desempenho de aplicativo. Devido ao fato
de o HP LoadRunner ser extremamente flexível, os clientes podem
projetar os testes de desempenho com base em seus próprios
requisitos específicos de projeto. O HP LoadRunner ajuda a obter
uma imagem precisa de desempenho do sistema de ponta a ponta
antes de ser colocado em funcionamento. Ele ajuda a:
• Verificar se aplicativos novos ou atualizados atendem aos
requisitos especificados de desempenho
• Identificar e reduzir os gargalos de desempenho durante o ciclo de
vida do desenvolvimento
• Destacar gargalos de usuário final, no nível do sistema e no nível
do código de forma rápida e fácil
11
Teste com uma ampla gama de Principais recursos e benefícios do HP
aplicativos e protocolos LoadRunner
O HP LoadRunner suporta testes de desempenho para uma ampla • Suporta testes de desempenho de novas tecnologias em conjunto
gama de ambientes de aplicativo e protocolos, incluindo Ajax, Flex, com seus aplicativos legados já existentes
Microsoft® Silverlight, web, SOA, serviços web, RDP, banco de dados, • Testa com precisão uma mistura de usuários móveis e de Internet
Terminal, Citrix, Java, .NET, Oracle e SAP. Um mecanismo de • Diminui o risco de implantar sistemas que não atendam aos
solução de problemas e criação de script atualizado e fácil de usar requisitos de desempenho
aproveita as extensões de formato de dados e estúdio de correlação
• Reduz os custos de hardware e software prevendo com precisão a
para criar scripts de forma mais fácil e rápida.
capacidade e escalabilidade do aplicativo
Para permitir testes de carga em um estágio inicial do ciclo de • Ajuda a estabelecer acordos inteligentes de nível de serviço antes
vida do aplicativo, o HP LoadRunner é integrado com os principais de os aplicativos serem implementados
ambientes: J2EE, Microsoft® Visual Studio e Microsoft .NET. Essa • Reduz os testes de ciclo para acelerar o fornecimento de
integração permite criar scripts do HP LoadRunner diretamente aplicativos de alta qualidade
dentro do IDE, assim os desenvolvedores podem participar de um
• Destaca gargalos de usuário final, no nível do sistema e no nível do
estágio mais inicial dos esforços de testes de desempenho.
código, de forma rápida e fácil
Como parte da abordagem de ciclo de vida para testes de aplicativo, • Reduz o custo de defeitos testando em um estágio inicial do
o HP LoadRunner também é integrado ao software HP QuickTest ciclo de vida do aplicativo
Professional, HP Quality Center e HP Application Performance Center
(APM).
Para descobrir como você pode medir o
Aproveitar essas soluções complementares em conjunto com o HP desempenho do aplicativo usando software de
LoadRunner fornece uma abordagem abrangente para gerenciar todo
o processo de testes, medindo risco de lançamento e aumentando a testes de carga da HP, acesse
reutilização de ativos de testes do pré-lançamento à produção. hp.com/go/loadrunner.
Conecte-se
hp.com/go/getconnected
Veja as tendências de tecnologia,
os alertas de suporte e as soluções da HP.
© Copyright 2007, 2010, 2012 Hewlett-Packard Development Company, L.P. As informações contidas neste documento estão sujeitas a alterações sem aviso.
As únicas garantias para produtos e serviços da HP são as estabelecidas nas declarações de garantia expressa que acompanham tais produtos e
serviços. Nada aqui contido deve ser interpretado como constituindo uma garantia adicional. A HP não se responsabiliza por omissões, erros t
écnicos ou erros editoriais contidos neste documento.
Microsoft é uma marca comercial registrada da Microsoft Corporation nos EUA. Oracle e Java são marcas comerciais da Oracle e/ou de suas afiliadas.