Este guia visa demonstrar alguns processos e padrões da automação de testes do TCGI no TestFlow.


O TCGI possui dois usuários, Squad TCGI Core e Squad TCGI Jornada e Locação

TCGI Core:

TCGI Jornada:

Do usuário Squad TCGI Jornada e Locação

PVI: Postman: PVI_Tests (2209, 2302, 2306 e 2310)

Estes agendamentos são importantes pois passam nos processos básicos / críticos do Portal de Imóveis. Esses projetos não rodam na IC. Disparam todos os dias às 17:05 na VM BH-ENG-AUTTIN01.

É importante conferi-los diariamente acessando o log do agendamento de todas as versões como mostra a imagem abaixo:

É enviado e-mail para a equipe caso exista algum projeto com falhas.

Atualizador de Ambientes TOTVS Restore (2209, 2302, 2306 e 2310)

O agendamento Atualizador de Ambientes TOTVS Restore roda todos os dias às 16:30 e irá atualizar os três servidores (BH-ENG-AUTTIN01, BH-ENG-AUTTIN02, BH-ENG-AUTTINPR) com as últimas versões do mercado 2209, 2302, 2306 e Atual 2310. 

Para que a atualização ocorra - os três servidores devem ter o Restore iniciado e o Agent em execução. 

Importante: O agendamento Atualizador de Ambientes TOTVS Restore AUTTINPR além de atualizar o servidor BH-ENG-AUTTINPR às 16:30, também irá realizar uma tentativa de fazer a atualização de scripts na versão atual de todos os bancos de dados (tanto Core e Jornada).

É importante verificar diariamente esse agendamento, através do seu log específico se não está ocorrendo erros na atualização dos bancos de dados. 

Neste agendamento são atualizados os bancos nos diretórios abaixo:

  • \\bh-autbdcp\BasesAutomacao\v1200\1212310\Imb-Imobiliario\SQL\Aluguel
  • \\bh-autbdcp\BasesAutomacao\v1200\1212310\Imb-Imobiliario\SQL\Refatoração
  • \\bh-autbdcp\BasesAutomacao\v1200\1212310\PVI\SQL

No caso do Portal de Imóveis, apenas a base RM é convertida.

O processo de atualização realiza um backup no mesmo diretório. É importante limpar estes backups caso estejam ocupando muito espaço.

Exemplo:

Os arquivos sublinhados na imagem são os arquivos de backup realizados pelo agendamento e são seguros para exclusão. Normalmente deixamos apenas os dois últimos backups realizados por segurança / precaução.

Atente-se a data no nome do arquivo e faça a deleção do mais antigo para o mais novo.

Requer Execução e Erro/Alerta (2209, 2302, 2306 e 2310)

Este agendamento irá ser disparado todos os dias, às 19:10 e tem por objetivo executar todos os projetos que possuem em seu status "Erro/Alerta" ou "Requer Execução".
Existe um agendamento para cada versão de mercado e também para a versão atual. 

Exclusão de Bases dos Servidores    

O próprio nome já diz. Este agendamento possui uma consulta SQL que é disparada no servidor BH-AUTBDCP e deleta todos os bancos temporários do servidor. Este agendamento é executado diariamente às 12:30

Todos os projetos devem ter sua cobertura de código coletada. É importante que, ao criar um projeto e versioná-lo para a versão Atual, o mesmo deve ter o seu código coletado pela engenharia. Lembre-se de disparar a coleta através do menu lateral Cobertura de Código no TestFlow.

Exemplo de um Projeto com erros na IC 

Ao verificar o log clicando em Erro/Alerta percebo que alguma atividades estão com erro.

Isso deve-se ao fato de que alguma atividade do tipo webservice não executou de forma correta.

Temos que nos atentar que, mesmo o Test Flow mostrando que o WS executou com sucesso, não quer dizer que o resultado do processo tenha sido o esperado.

Então não é só por que a atividade está com sucesso que ela executou corretamente.

Neste caso tenho uma atividade de geração de lançamentos com falhas. Veja que o Test Flow não mostra o erro no print acima, mas somente quando clicamos no "olhinho". Dessa forma temos que investigar sempre nestes cenários onde a consulta SQL está com erro se algum WS executou de forma errada.

Vemos aqui que a atividade Gerar lançamentos do Fechamento executou com um resultado não esperado.

Para entender melhor esse log normalmente substituímos a atividade que fecha o projeto por uma atividade C# "Faz Nada". Dessa forma o projeto irá executar no ambiente e irá parar sem deletar o banco. E então podemos acessá-lo e verificar os logs de execução:

Substituindo e salvando, iremos executar novamente o projeto em uma VM.

Dentro do RM, posso ir em Ambiente / Gerenciamento de Jobs e encontrar o processo que ocasionou o erro, filtrando pela data de hoje.

Ao clicar no processo de gerar lançamentos podemos entender melhor o log e verificar se é um bug ou se o projeto precisa ser alterado, facilitando a análise do erro.

OUTROS PROBLEMAS COMUNS / SOLUÇÕES

Queda do agent dos servidores:

Solução: Reiniciar o agent e avaliar o estado das execuções. O agent.exe deve obrigatoriamente ser executado como administrador

É importante verificar também se o TOTVS.Restore está em execução nas três VM's

Espaço do servidor BH-AUTBDCP\SQL2019:

Solução: Contactar um usuário administrador para efetuar a limpeza. Os admins desse servidor são:

Com o agendamento de limpeza de bancos normalmente estes problemas não ocorrem mais. Porém, pode acontecer da instância do SQLServer estar parada. Dessa forma é preciso logar no servidor e iniciá-la manualmente.

Erros do script na versão atual por falta de campos:

Este erro é bastante comum e é mitigado com o agendamento atualizador de bases. Porém ainda há momentos em que o código que necessita do script já está no restore porém o script ainda não. Nestes casos, devemos aguardar e não executar de forma manual os scripts de banco.

Solução: Atualizar a base de automação, utilizando o último RM.Atualizador para popular a base com os novos scripts.

O Script abaixo desbloqueia um banco que esteja com erros para fins de teste na versão 1212310

Erros Winforms de timeout ou clique:

Solução: A grande maioria dos erros em scripts Winforms ocorrem de forma intermitente, a solução nestes casos é a reexecução do script com problema.

Aguardar a execução do script Winforms via agendamento. Caso o erro persista após nova reexecução devemos verificar.

Abaixo alguns links para treinamentos e apostilas e o help do Test Flow

Help

Novidades

Boas Práticas

Capacitações

Criação de projetos Web Services e API's

Status dos servidores: (Os links abaixo só funcionam com um usuário logado) 

Repositório TestFlow (Agent e pasta TestFlow)

  • \\bhengfiles\rmflex$\Outros\Ferramentas\TestFlow2.0

Caminho dos arquivos .json que executam nas automações do Postman:

  • \\bh-autbdcp\BasesAutomacao\v1200\{{versao}}\Imb-Imobiliario\restFul
  • \\bh-autbdcp\BasesAutomacao\v1200\{{versao}}\PVI\restFul

Bases TestFlow

  • \\bh-autbdcp\BasesAutomacao\v1200

Servidor oficial da automação Construção e Projetos 

  • Servidor: BH-AUTBDCP\SQL2019
  • Usuário: rm/rm

SERVIDORES DE EXECUÇÃO TCGI (VM’S)

  • BH-ENG-AUTTIN01
  • BH-ENG-AUTTIN02
  • BH-ENG-AUTTINPR