Manual Sagres

Tutorial para teste de carga no módulo de Matrícula Web de Veteranos

​Apresentação

Este material tem o objetivo de fornecer um roteiro para execução de um teste de carga do módulo de Matrícula Web de Veteranos do Ensino Superior, utilizando um ambiente específico para tal. A TecnoTRENDS recomenda que este teste seja realizado periodicamente pelas instituições, a fim de se antecipar a possíveis intermitências do módulo em questão durante o período de matrícula. 

A realização do teste requer certo conhecimento técnico, devido a isto é importante que a responsabilidade pela execução deste roteiro seja de um colaborador do setor de TI da instituição.

Requisitos técnicos para execução do teste de carga

  • “Servidor de aplicação”, contendo:
      • Módulo de Matrícula Web de Veteranos:
        • Versão: Correspondente à versão em que se deseja utilizar na próxima matrícula;
      • Quanto aos demais módulos SAGRES: 
        • Versão: Versões compatíveis com a versão do módulo de Matrícula que será utilizada;
      • Framework Java: 
        • Versão mínima: Version 8, update 181;
        • Local para download: Java.com (a instalação será descrita em um tópico mais à frente deste material);
      • “PerfMon Server Agent”:
        • Objetivo: Este componente é um agente que será o responsável pelo monitoramento do consumo dos recursos do servidor enquanto o teste de carga estiver sendo executado;
        • Versão: 2.2.3;
        • Local para download: Projeto no GitHub (a instalação será descrita em um tópico mais à frente deste material);
  • “Servidor de banco de dados”, contendo:
    • Cópia mais recente da base de dados de produção:
      • Esta cópia deve estar compatível com as versões dos módulos SAGRES instalados;
    • Framework Java: 
      • Mesma versão descrita para o “Servidor de aplicação”;
    • “PerfMon Server Agent”:
      • Mesma versão descrita para o “Servidor de aplicação”;
  • “Computador de controle do teste”, contendo:
    • JMeter, ferramenta para execução do teste de carga: 
      • Versão: 5.0;
      • Plug-ins internos adicionados: “Manager” versão 1.3 e “PerfMon” versão 2.1;
      • Projeto do JMeter preparado pelo TecnoTRENDS para realizar os testes de carga da Matrícula Web:
      • Solicitar ao Núcleo de Atendimento da TecnoTRENDS o arquivo “Teste de carga-Matricula Web.zip”;
    • SQL Server Profiler:
      • Versão: Não requer versão específica;
    • SQL Server Management Studio;
      • Versão: Não requer versão específica;
    • Especificação mínima do computador:
      • Processador i3 ou similar;
      • 8GB RAM;
Atenção
 
Não utilize o mesmo computador dos servidores para ser o “Computador de controle do teste”, pois o processamento que será feito nele poderá influenciar nos resultados dos testes!
 

Recomendações

    1) Antes de iniciar os procedimentos,​ é preciso que o responsável pelo teste leia atentamente todas as instruções deste material;

    2)  Alertamos que durante os testes serão aleatoriamente incluídas e removidas disciplinas na matrícula para os alunos, como também serão alteradas as senhas de acesso ao SAGRES destes alunos. É imprescindível que se garanta que o teste de carga seja realizado em um ambiente de teste. Jamais deve ser executado na base de produção;

    3) O ambiente de testes a ser utilizado deverá ser o mais semelhante possível ao ambiente de produção da instituição;

Ilustração do funcionamento do teste de carga

​Preparação do "Servidor de aplicação"

Preparação das pastas e instalação de aplicativos

1) ​Instale o Framework Java, caso não esteja instalado. Para isso:
A) ​Faça o download da versão especificada ​​no tópico “Requisitos técnicos para execução do teste de carga” deste material;
B) Instale o setup;

2) Na área de trabalho do usuário no servidor, crie uma pasta chamada “Teste de carga”;
3) Instale o “PerfMon Server​​ Agent”. Para isso:

A) ​Faça o download da versão especificada ​​no tópico “Requisitos técnicos para execução do teste de carga” deste material;
B) Crie uma pasta chamada “PerfMon Server​​ Agent” dentro da pasta “Teste de carga” que você criou;
C) Descompacte dentro desta nova pasta o arquiv​o .zip que acabou de baixar;
D) Execute o arquivo startAgent.bat que foi descompactado nesta pasta, a fim de verificar se o agente consegue ser iniciado. Será aberto o prompt de comando e o agente abrirá portas TCP/UDP (a porta padrão é 4444) onde clientes poderão se conectar e solicitar métricas;
E) Aguarde um pouco para confirmar se o agente foi iniciado com sucesso, conforme imagem abaixo. Em caso afirmativo, pode fechar o prompt que foi aberto;
Agente "PerfMon Server​​ Agent" - Status de iniciado com sucesso
Informação
 
Caso deseje iniciar o agente em outras portas diferentes da 4444, leia as instruções presentes na mesma página em que fez o download do “PerfMon Server​​ Agent”.
 

Preparação das aplicações SAGRES 

  1. Verifique se as aplicações SAGRES envolvidas estão funcionando corretamente;
  2. Configure a etapa de matrícula que será utilizada no teste;
  3. Acesse o módulo de Matrícula Web com um aluno e realize a matrícula dele, apenas para confirmar se tudo está funcionando corretamente.

​​Preparação do Servidor de banco de dados

1) ​Instale o Framework Java de acordo com as mesmas orientações descritas na preparação do “Servidor de aplicação”;
2) Instale o “PerfMon Server​​ Agent” de acordo com as mesmas orientações descritas na preparação do “Servidor de aplicação”;

​​Preparação do Computador de controle do teste

Preparação das pastas

1) Na área de trabalho do usuário no computador, crie uma pasta chamada ” Teste de carga”;

2) Descompacte o arquivo “Teste de carga-Matricula Web.zip” (disponibilizado pela TecnoTRENDS) dentro da pasta criada acima;

 

Configurações de comunicação com a base de dados

1) Com um programa de edição de texto, abra o arquivo settings.txt, localizado em “..\Teste de carga\Teste da Matricula Web”;
2) Você perceberá que o arquivo tem alguns “parâmetros” com valores preenchidos. Abaixo segue a explicação de cada parâmetro:
  • [Profiler]
    • ProfilerPath: Localização do executável da ferramenta SQL Server Profiler no computador em questão. Verifique se o valor padrão está correto e altere-o se não estiver;
    • EnableProfiler: Define se o SQL Profiler será gerenciado de forma automática pelo teste de carga. Recomenda-se deixar habilitado, pois a ferramenta gera informações cruciais para análise de possíveis problemas;
    • ProfilerTemplate: Nome do template do SQL Server Profiler que será utilizado. Os templates sugeridos estão na pasta “..\Teste de carga\Teste da Matricula Web\resources”. Identifique nesta pasta o template correspondente à versão do SQL Server que está utilizando e importe-o no SQL Server Profiler. Depois, defina o nome do template neste parâmetro.
  • [Database]
    • DbServer: Defina o nome da instância de banco de dados que será utilizada;
    • DbUser: Defina o nome do usuário do banco de dados que tem acesso com as permissões: execução de consultas; captura de consultas com o SQL Server Profiler.
    • DbPassword: Defina a senha do usuário de banco de dados;
    • DbAcademico: Defina o nome do banco de dados do SAGRES Acadêmico​;
    • SQLAluno: Defina a localização e nome do arquivo SQL com a query para selecionar os alunos que participarão do teste de carga. O valor padrão é “resources\massaDados\MassaDados.sql”. Pode manter este valor, esta query será explicada em um tópico mais à frente deste material;
  • [MassaDados]
    • ​QntUsuarios: Quantidade de alunos que participarão do teste de carga;
    • NovaSenha: Defina aqui a senha que será atribuída automaticamente a todos os alunos da base que forem selecionados para do teste de carga. Isto é necessário para que o JMeter efetue o login no sistema com cada aluno. O valor padrão é “trends”, altere se preferir;
Atenção
 
Se o parâmetro EnableProfiler estiver habilitado (true) e o computador em questão não possuir o SQL Server Profiler, ocorrerá uma falha ao executar o teste de carga.
 

Preparação da massa de dados de alunos 


Será necessário preparar um arquivo .CSV com os dados dos alunos selecionados para participar do teste de carga. O procedimento a seguir te orientará a gerar este arquivo automaticamente a partir de uma consulta SQL.

1) Abra o arquivo MassaDados.sql existente na pasta “..\Teste de carga\Teste da Matricula Web\resources\massaDados” e o edite o SQL de forma que:

– Retorne os alunos aptos a realizar a matrícula web na etapa de matrícula que você preparou anteriormente;

– Retorne as mesmas colunas que estão sendo retornadas na consulta SQL padrão;

2) Salve o arquivo MassaDados.sql e feche-o;
3) Certifique-se que o arquivo settings.txt existente na pasta raiz foi configurado corretamente, conforme orientações anteriores;
4) Execute o arquivo MassaDados.bat existente na raiz do projeto para gerar a massa de dados. É importante saber que a execução irá:

– Executar a consulta SQL definida no arquivo MassaDados.sql,utilizando a base de testes configurada no arquivo settings.txt, obtendo assim lista de alunos aptos a realizar a matrícula;
– Alterar a senha dos usuários destes alunos, definindo a nova senha com o valor que foi definido no arquivo settings.txt;
– Gerar o arquivo MassaDados.csv, contendo os dados dos alunos em questão, a serem utilizados pelo JMeter para simular a matrícula;

5) Após finalizar a execução do MassaDados.bat, verifique se foi gerado um arquivo chamado MassaDados.csv na pasta raiz do projeto;
6) Abra o arquivo e confirme que esteja preenchido com:

– No mínimo, a mesma quantidade de usuários que você definiu no arquivo settings.txt;
– Colunas de nickname do aluno, nova senha descriptografada e senha original criptografada;

Informação: 
 
– Caso o arquivo MassaDados.bat seja executado mais de uma vez, será gerado um novo arquivo MassaDados.csv que sobrescreverá o anterior; 
– O arquivo  MassaDados.bat está assinado digitalmente para evitar problemas com programas de Antivirus.
 

Configuração do plano de teste no JMeter​

1) Execute o arquivo AbrirPlanoTestesJMeter.bat localizado em “..\Teste de carga\Teste da Matricula Web” (aguarde um pouco, pois a abertura pode demorar alguns segundos). Ao fazer isto, o JMeter será aberto e já carregará o plano do teste de carga da Matrícula Web;
2) Após um tempo, será aberta a interface demonstrada na imagem abaixo. Na imagem estão destacadas em setas amarelas as seções que você precisará realizar algumas configurações. Todas serão explicadas a seguir.
Plano de testes no JMeter - Interface inicial

3) Na área da esquerda, selecione com o mouse a seção “Matricula web”. Na área da direita que foi carregada, localize o grupo “User Defined Variables” e perceba que há 4 variáveis que você deverá preencher (ver imagem mais abaixo). As variáveis estarão com valores padrões, mas você deve editá-los conforme a seguir:

  • Variável “API_URL“:  Defina o valor como a URL de acesso à API do SAGRES do seu ambiente de testes preparado para o teste de carga;
  • Variável “TESTE_INTEGRACAO_FINANCEIRO“: Defina “true” se deseja que o teste de carga englobe a integração com o SAGRES Financeiro.  Caso a instituição não possua o SAGRES Financeiro, desabilite esta opção definindo o valor “false” no campo “Value”.  Sendo o valor definido como “true”, quando o teste de carga for executado, além de finalizar e reabrir a proposta de matrícula de cada aluno, será também gerado o contrato acadêmico e o boleto de matrícula.​
  • Variável “TESTE_FLUXO_PREMATRICULA“: Defina “true” se deseja que o teste de carga englobe o fluxo pré-matricula que o aluno realiza no Portal antes de efetivamente entrar no Módulo de Matrícula Web. Algumas instituições utilizam este fluxo para solicitar que os alunos atualizem seus dados pessoais e/ou deem um aceite no contrato;
  • Variável “PORTAL_URL“: Caso tenha habilitado o “TESTE_FLUXO_PREMATRICULA”, é necessário definir a URL de acesso ao Portal SAGRES do seu ambiente de testes preparado para o teste de carga;
Plano de testes no JMeter - Editando a seção "Matrícula Web" (Seção raiz)

4) Selecione a seção “Thread Group 1”. Você verá na área da direta algumas configurações que poderão ser realizadas. As mais significativas para este teste de carga são:

  • Number of Threads: Define a quantidade de usuários (alunos) simultâneos que serão utilizados para o teste de carga;
  • Ramp-Up Period: Define o tempo que o JMeter utilizará para iniciar todos as “threads” de usuários. 
  • Loop Count: Define quantas vezes os usuários devem repetir a sequência de ações programadas; 
  • Forever: Define que as sequências de ações programadas serão repetidas indefinidamente, só finalizando o teste ao término do tempo definido;
  • Scheduler: Ativa ou desativa um contador de tempo para os testes; ​        
  • Duration: Define o tempo máximo para execução dos testes (em segundos).​
Plano de testes no JMeter - Editando a seção "Thread Group 1"
Atenção
 
Sugerimos que na primeira execução do testes se utilize as configurações abaixo. Nas próximas execuções, você pode ir alterando os valores de com a expectativa (realidade) para o processo de matrícula da instituição e de acordo com a análise dos resultados das execuções anteriores do teste. Alertamos que É importante manter a proporcionalidade entre os valores.
– Number of Threads: 50
– Ramp-Up Period: 20
– Loop Count:  
– Forever: Habilitado
– Scheduler: Habilitado
– Duration: 600
 

5) Expanda a seção “Thread Group 1” e selecione a seção interna dela chamada “CSV Data Set Config”. Na área da direita, você verá o campo “Filename”, em que é definido o local do arquivo .csv que você gerou anteriormente com a massa de dados de alunoConfirme se o nome do arquivo que você gerou está igual ao configurado neste campo.

Plano de testes no JMeter - Editando a seção "CSV Data Set Config"

6) Selecione a seção chamada “PerfMon Metrics Collector”. Na área da direita, precisaremos definir quais métricas serão coletadas dos servidores pelo agente “Perfmon”.

Atenção
 
Confirme se o agente “Perfmon” já foi instalado nos servidores envolvidos, de acordo com as instruções dos tópicos de preparação dos servidores deste material.
 

Na grade “Servers to Monitor”, será necessário adicionar as métricas de “CPU”, “Memory” e “Network I/O” para cada servidor preparado para o teste de carga. Considerando que o “Servidor de aplicação” e o “Servidor de banco de dados” são computadores diferentes, a grade precisará ter 6 linhas. Em cada linha terá: 

  • Hostname do servidor;
  • Porta em que o “Perfmon Server Agent” está sendo executado no servidor em questão;
  • Métrica de monitoramento (“CPU”, “Memory” e “Network I/O”);
Plano de testes no JMeter - Editando a seção "PerfMon Metrics Collector"
7) Salve as alterações no JMeter, clicando no menu “File” > “Save”;
8) Feche a interface do JMeter.
Atenção
 
Não execute o testes de carga da Matrícula Web dentro do JMeter, pois o teste não funcionará corretamente! Esse projeto de teste de carga depende de recursos externos aos que estão definidos dentro do plano de testes no JMeter.
 

Teste de acesso aos módulos SAGRES pelo Computador de controle do teste

1) Abra o navegador dentro do “Computador de controle do teste” e acesse a URL do módulo de Matrícula Web, localizada no “Servidor de aplicação“;
2) Efetue login com um aluno qualquer, apenas para confirmar se o acesso foi bem sucedido;

Execução do teste de carga

A cada execução:

1) Inicie o agente “PerfMon Server​​ Agent” nos servidores envolvidos, de acordo com as instruções dos tópicos anteriores;
2) Acesse o Computador de apoio para o teste de carga em que está o plano de testes do JMeter. Os próximos passos precisarão ser executados dentro dele;
3) Limpe o cache da API da Matrícula Web. Isto é necessário pois, ao utilizar a API, são gerados arquivos temporários para acelerar o carregamento das aplicações e é importante realizarmos um teste de carga sem esse cache. Para limpar o cache, você precisa apenas acessar a URL abaixo por um navegador:
  • http://[NomeServidorAplicação]/Api/SagresApi/matricula/limpar-cache?timeStamp=636746997491830781​

4) Acesse a pasta que contém o plano de testes do JMeter configurado conforme os tópicos anteriores deste material;

5) ​Execute o arquivo ExecutarTeste.bat que encontra-se na raiz da pasta para que o teste de carga tenha início. Será aberta a tela do “prompt” do Windows exibindo um log resumido de andamento;

– Logo no início da execução, o SQL Server Profiler será aberto automaticamente. Após isto ocorrer, retorne ao “prompt” que foi aberto anteriormente e dê um “Enter”;

– Aguarde a finalização do teste, de acordo com a duração configurada. Ao final, haverá uma mensagem informando a finalização do teste: “FINALIZANDO TESTES COM JMETER”

Analisando o resultado dos testes​

Os resultados de cada execução do teste serão salvos automaticamente na pasta “result”, existente dentro da pasta raiz do plano de teste do JMeter. Será criada uma pasta para cada execução, com o nome no formato “aaaammdd-hhmmss”, referente à data/hora de início do teste. 

Análise dos resultados do teste - Pasta com os resultados de uma execução
Dentro de cada pasta correspondente a cada execução do teste, existirá:
  • ​Um arquivo chamado “jmeter.log”, contendo o log de trabalho do JMeter e ​​de mensagens retornadas pelo Módulo de Matrícula Web, como por exemplo: “Classe YYYY não possui vagas disponíveis”.
  • Um arquivo chamado “server_log.csv”, contendo as informações coletadas d​as métricas de recursos (Memória, CPU, Rede) dos servidores definidos. Para analisar visualmente os resultados presentes neste arquivo, você deve:
    1. Abrir o projeto do plano de teste no JMeter;
    2. Na seção “PerfMon Metrics Collector – Visualizador”​, clique no botão “Browser” e carregue o arquivo “server_log.csv”, conforme imagem abaixo.
Análise dos resultados do teste - Carregando e visualizando os resultados do arquivo "server_log.csv"
  • Um a​​​rquivo chamado “test_log.csv”, contendo todos os registros das requisições enviadas do JMeter para o “Servidor de aplicação”;
  • Uma ​​​​pasta chamada “dashboard”, contendo uma página em HTML (index.html) com visualizações gráficas do teste, incluindo ​erros ocorridos, tempos de resposta e quantidade de requisições.
Análise dos resultados do teste - Pasta com relatório HTML da execução
  • Um arquivo chamado “profiler.trc“, contendo o trace do SQL Server Profiler capturado durante a execução do teste; 
A partir da análise do resultado de cada produto, você deve concluir se os resultados esperados foram eficientes e satisfatórios para a instituição. ​Se necessitar de ajuda para analisar os resultados, compacte a pasta results, nomeada com a data e hora do teste a ser avaliado, e envie por e-mail para o núcleo de Atendimento da TecnoTRENDS. ​
plugins premium WordPress
Rolar para cima