Mudanças entre as edições de "Guia de testes de desempenho"
(→Análise dos resultados) |
(→Reexecução) |
||
Linha 70: | Linha 70: | ||
==Reexecução== | ==Reexecução== | ||
+ | |||
+ | Para realizar nova bateria de testes, com mais usuários por exemplo: | ||
+ | |||
+ | * Restaurar o backup do BD | ||
+ | * Limpar os caches dos sites, '''se necessário''' | ||
+ | * Reiniciar o SQL, se necessário - o SQL não desaloca a memória imediatamente após a carga, o que pode impactar nos resultados de outros testes. |
Edição das 13h10min de 6 de dezembro de 2016
Versão 0.2 de 06/12/2016. Documento em construção.
Índice
Sobre este guia
Este guia visa reunir informações úteis para o aprendizado de testes de desempenho, bem como a utilização das ferramentas necessárias (JMeter, etc.).
Planejamento
A etapa de planejamento visa levantar as necessidades do projeto em relação ao teste de desempenho. Entre as questões a serem respondidas, estão:
- Qual o objetivo do teste?
- Qual pergunta deve ser respondida com o resultado do teste?
- Qual tipo de teste deve ser executado? Desempenho, Stress, Carga?
- Quais serão os cenários?
- Quais os prazos?
- Os cenários definidos são compatíveis com os prazos?
Preparação do ambiente
A equipe de desenvolvimento deve enviar o pacote para o DevOps realizar a atualização do ambiente de testes. A equipe do DevOps também pode auxiliar no entendimento da infra do cliente, a fim de simular o cenário ideal de teste.
Pré-execução
A etapa de pré-execução visa realizar as configurações necessárias nos softwares, ambientes e coletores, antes de iniciar o teste. As etapas são:
Preparar o relatório de resultados do JMeter
O JMeter será executado via linha de comando, a fim de que sua GUI não interfira nos contadores. Sendo assim, devemos configurar o ouvinte para salvar o relatório.
- Utilizar o ouvinte Escritor de dados simples
- Inserir um caminho no campo Nome do arquivo
Verificar se o arquivo .jmx é o mesmo no Master e nos Slaves
O arquivo .jmx deve ser o mesmo no Master e nos Slaves do JMeter.
Preparar os coletores do Perfmon nos servidores WEB, SQL e ARR
- Para cada servidor WEB, acessar o Performance Monitor / Data Collector Sets / User Defined / Nome do coletor
- Verificar o caminho onde será salvo o arquivo em cada servidor
- Dar play para começar a gravar e depois dar play no teste
Definir e configurar os Slaves
- Quantos slaves utilizar? Com 50-100 usuários, geralmente 1 slave basta. Ou quando a memória está comprometida em mais de 75%.
- Quais slaves utilizar? No Master, editar o nome dos slaves no arquivo /bin/Jmeter.properties.
Execução dos testes
- Nos slaves, iniciar o arquivo /bin/jmeter.server como admin
- Iniciar a gravação dos contatores do Perfmon em todos os servidores
- No master, iniciar o teste via prompt de comando:
- Navegar no prompt até a pasta bin do JMeter
- Executar o comando:
jmeter.bat -n -t "caminho do arquivo de teste" -l "caminho pro arquivo de log de resultado" -j "caminho pro arquivo de log do jmeter" -r
Análise dos resultados
- Acessar as VMs e coletar os arquivos de resultados do perfmon (WEB, SQL e ARR) e o CSV do JMeter.
- Separar esses arquivos em pastas por quantidade de usuários do teste, para melhor organização
- Rodar o script de Queries mais lentas
- Avg CPI Time (formatado), Tempo decorrido (formatado) e Instrução completa
- Verificar os logs de erro
- Estão em uma tabela do BD
- Em caso de dúvidas, tirar com a equipe de DEV
- Tabular os dados
A análise dos dados deve ser feita com cuidado. Não é possível analisar os contadores separadamente. É necessário analisar todo o contexto do sistema e do ambiente.
Reexecução
Para realizar nova bateria de testes, com mais usuários por exemplo:
- Restaurar o backup do BD
- Limpar os caches dos sites, se necessário
- Reiniciar o SQL, se necessário - o SQL não desaloca a memória imediatamente após a carga, o que pode impactar nos resultados de outros testes.