PTFL-4.3.1 (K2) Compreender as atividades principais na execução dos scripts de teste de performance
A execução do teste de performance envolve:
- a geração de uma carga que será submetida ao SUT de acordo com um perfil de carga implementado pelos scripts de teste de performance,
- monitorar todas as partes do ambiente
- coletar e manter todos os resultados e informações relacionados ao teste.

As ferramentas avançadas de teste de carga podem realizar essas tarefas automaticamente.
Elas fornecem uma console que permite que os dados de performance sejam monitorados durante o teste e permitem que os ajustes necessários sejam feitos (consulte a Seção 5.1).
Dependendo da ferramenta usada, do SUT e os testes que estão sendo executados, pode ser necessária alguns passos manuais.
Os testes de performance são focados em um estado estável do sistema.
- Por exemplo, quando todos os usuários/processamentos distribuídos virtuais são iniciados e estão executando o trabalho conforme projetado.
- Quando a carga está mudando (novos usuários são adicionados), o comportamento do sistema está mudando e fica mais difícil monitorar e analisar os resultados dos testes.
- O estágio até chegar ao estado estável é geralmente chamado de aceleração, e o estágio de término do teste é geralmente chamado de desaceleração.

Às vezes, é importante testar estados transitórios quando o comportamento do sistema está mudando – ocorre no registro simultâneo de muitos usuários ou testes de pico.
Ao testar estados transitórios, é importante entender a necessidade da monitoração e análise dos resultados, já que algumas abordagens comuns podem ser enganosas (como as médias de monitoramento).
Durante a aceleração, é aconselhável implementar estados de carga incremental para monitorar o impacto da carga crescente na resposta do sistema.
Isso garante que o tempo suficiente seja alocado para a aceleração e que o sistema seja capaz de lidar com a carga.
Uma vez que o estado estável foi alcançado, é uma boa prática monitorar que tanto a carga quanto as respostas do sistema são estáveis e que as variações aleatórias (que sempre existirão) não são substanciais.

É importante especificar como as falhas devem ser tratadas para garantir que nenhum problema seja introduzido no sistema.
Por exemplo: O usuário deve efetuar logout quando ocorrer uma falha para garantir que todos os recursos associados a esse usuário sejam liberados.

Se o monitoramento e log estiverem integrados à ferramenta de teste de carga, eles serão iniciados ao mesmo tempo que a execução do teste. Se as ferramentas de monitoramento e log independentes (stand alone) forem usadas, o monitoramento e log deve ser iniciado separadamente e as informações necessárias coletadas para que a análise subsequente possa ser realizada junto com os resultados do teste.
É essencial sincronizar no tempo todas as ferramentas usadas, para que todas as informações relacionadas a um ciclo de execução de teste específico possam ser localizadas.

Durante a execução do teste é realizado
- o monitoramento usando o console da ferramenta de teste de performance e
- a análise de log em tempo real para verificar problemas e erros no teste e no SUT.
Isso ajuda a evitar a continuação desnecessária da execução de testes em grande escala, o que pode até causar impacto em outros sistemas se algo der errado (p. ex., se ocorrer falha, os componentes falharem ou as cargas geradas estiverem muito baixas ou altas).
Esses testes podem ser caros de se executar podendo ser necessário interromper o teste ou fazer alguns ajustes imediatos no teste de performance ou na configuração do sistema se o teste se desviar do comportamento esperado.

Para verificar os testes de carga que estão se comunicando diretamente no nível do protocolo
- executar vários scripts (funcionais) no nível da GUI
- ou executar manualmente perfis operacionais semelhantes em paralelo ao teste de carga em execução.
Isso verifica se os tempos de resposta relatados durante o teste diferem apenas dos tempos de resposta medidos manualmente no nível da GUI pelo tempo gasto no lado do cliente.

Ao executar testes de performance de maneira automatizada (p. ex., como parte da Integração Contínua, conforme discutido na Seção 3.4), as verificações devem ser feitas automaticamente.
Nesse caso, a configuração do teste deve ser capaz de reconhecer quaisquer desvios ou problemas e emitir um alerta (geralmente ao concluir o teste corretamente).
Essa abordagem é mais fácil de implementar
- para testes de performance de regressão pois o comportamento do sistema é conhecido,
Pode ser mais difícil:
- com testes de performance exploratório
- testes caros de performance em grande escala que podem precisar de ajustes dinâmicos durante o teste.

