Introdução

O sistema de atualização do Cbanet foi adaptado para que este possa ser executado durante a execução dos testes de interface do Cbanet. Neste processo, algumas características foram mudadas para que a execução do teste receba feedbacks do atualizador conforme o processo avança.

Onde está o teste que é executado?

O teste que executa o Sistema de Atualização está armazenado na solution [Cbanet.UITest] localizada em [Desenvolvimento> UITests> Cbanet.UITest].

Onde está armazenado o Sistema de Atualização que é exectuado?

O sistema de atualização fica armazenado de forma estática dentro da solution [Cbanet.UITest]. Este está armazenado na pasta [ConsistenciaDeClientes/AtualizaçãoDosClientes/SistemaDeAtualização].

Origem da Atualização

A atualização é feita tomando como origem (base) o Cbanet que está hospedado no endereço [http://cba-tfs1:1050/cbanet]. Este Cbanet é compilado todos os dias com base da Branch [Sprint], ou seja, todas as noites o servidor de build busca a última versão do branch [Sprint] e compila-a para que tenhamos um Cbanet sempre atualizado. Vale lembrar que este Cbanet tem como base de dados o Banco de Dados [Desenvolvimento], ou seja, temos um banco de dados totalmente atualizado para a execução da atualização.

Destino da Atualização

O destino da atualização é o Cbanet que está hospedado no endereço [http://cba-tfs1:5050/cbanet]. Este Cbanet serve como base para a execução dos testes de interface (CodedUI) de clientes específicos. A base de dados deste Cbanet depende da execução dos testes, ou seja, a cada teste, a base de dados destino é modificada. Ex: Ao executar os testes do cliente TropicalPneus, este Cbanet passa a ter como destino o Banco de Dados [UITest_TropicalPneus].

Dizendo ao Sistema de Atualização que ele está em ambiente de execução de testes de interface (CodedUI)

É imprescindível que o Sistema de atualização saiba que ele está em um ambiente de execução de testes de interface (CodedUI). Para isto, é necessário definir a "key" [CodedUiTest] como "true" no config do Sistema de Atualização, desta forma:
codedUi.jpg

O que de diferente acontece quando o Sistema de Atualização sabe que está em ambiente de execução de testes de interface (CodedUI)?

Os principais reflexos que ocorrem ao informar ao Sistema de Atualização que ele está em ambiente de execução de testes de interface (CodedUI) são os feedbacks fornecidos durante o processo. Alguns feedbacks foram suprimidos e outros passam a ser exibidos. São eles:
  • O Sistema de Atualização passa a não mais informar que o Destino não está em Local Host;
  • Todas as abas executadas durante a execução do teste passam a exibir uma mensagem de informação ao concluir suas atividades, isto para que o teste entenda que já pode prosseguir para a próxima aba;
  • A aba [Banco] passa a dar três feedbacks de execução para que o teste aguarde o tempo necessário para finalizar a execução desta aba. O primeiro feedback é exibido aos 25%, o segundo aos 50% e o terceiro aos 75% da execução. Quando 100% é exibido o feedback padrão da aba;
  • A atualização de scritps deixa de tentar salvar o script recém executado. Ou seja, não mais será realizada a tentativa de guardar o script executado na pasta do Cbanet de Destino.

O que é realmente atualizado neste processo?

Este processo de atualização visa manter o banco de dados atualizado, ou seja, somente as abas referente à assuntos pertinentes ao banco de dados são executadas. Neste caso, as seguintes abas do Sistema de Atualização são executadas: [Pré-Scripts], [Tabelas de Sistema], [Pós-Script], [Procedures] e [Banco]. Nenhum arquivo ou relatório é atualizado neste processo.

Usuário e senha para execução da atualização

Para a execução do Sistema de Atualização é utilizado o usuário [codedUi] e senha [codedUi]. Este usuário/senha é cadastrado automaticamente pela execução dos testes de interface (CodedUI) do Cbanet.

O que ocorre quando não há nada para atualizar?

Supondo que não há nada para atualizar em qualquer uma das abas, o processo ocorre normalmente. Isto porque o Sistema de Atualização foi adaptado para manter os controles sempre ativos quando definido que está em ambiente de execução de CodedUI. Ou seja, mesmo que não haja [Pré-Scripts] para atualizar, por exemplo, os controles estarão habilitados permitindo que a execução dos testes consiga utilizá-los e receber o feedback de sucesso.

Com base em que data é executada a atualização?

A atualização é executada com base na Data/Hora da última atualização do banco de dados, isto é, a Data/Hora gravada na tabela de Empresas. É interessante citar que ao finalizar a atualização do Banco de Dados, a última aba [Salvar] é executada, registrando assim a Data/Hora da atualização.

A atualização automática de um ou mais bancos de dados falhou, e agora?

Em caso de falha de atualização, execute manualmente o Sistema de Atualização para chegar até o motivo da falha. É pouco provável que o teste que executa a atualização deverá ser regravado, normalmente a falha ocorre por inconsistência de Scripts ou estruturas incorretas. Entretanto, se você perceber que o teste pode ser regravado afim de contornar o problema e garantir uma maior estabilidade, exponha a ideia para a equipe e defina o novo fluxo de execução.

Fluxo de execução do Teste de Interface (CodedUI) do Atualizador que executa a atualização do Cbanet

  • A execução do teste inicializa o Sistema de Atualização. Este por sua vês, permanece na tela de confirmação de Origem X Destino da atualização;
  • Na tela de confirmação, é clicado em [Sim];
  • É informado o login/senha: codedUi. Em seguida, clicado em [Enter - Confirmar];
  • Na aba [Início] é clicado em [Próximo];
  • Na aba [Backup] é clicado em [Próximo];
  • Na aba [Relatório Descrições] é clicado em [Próximo];
  • Na aba [Relatório Atualizações] é clicado em [Próximo];
  • Na aba [Pré-Scripts] é clicado em [Executa todos os scripts automaticamente?];
  • Em seguida, é clicado no botão [Executar];
  • Após clicar em [Executar], confirmamos a intensão clicando em [Sim];
  • Após a execução, confirmamos o feedback clicando em [Ok];
  • Agora clicamos no botão [Próximo];
  • Na aba [Tabelas de Sistemas] é clicado em [Executa todos as tabelas automaticamente?];
  • Em seguida, é clicado no botão [Executar];
  • Após clicar em [Executar], confirmamos a intensão clicando em [Sim];
  • Após a execução, confirmamos o feedback clicando em [Ok];
  • Agora clicamos no botão [Próximo];
  • Na aba [Pós-Scripts] é clicado em [Executa todos os scripts automaticamente?];
  • Em seguida, é clicado no botão [Executar];
  • Após clicar em [Executar], confirmamos a intensão clicando em [Sim];
  • Após a execução, confirmamos o feedback clicando em [Ok];
  • Agora clicamos no botão [Próximo];
  • Na aba [Banco] é clicado no botão [Executar];
  • Após clicar em [Executar], confirmamos a intensão clicando em [Sim];
  • Ao chegar em 25% da execução, confirmamos o feedback clicando em [Ok];
  • Ao chegar em 50% da execução, confirmamos o feedback clicando em [Ok];
  • Ao chegar em 75% da execução, confirmamos o feedback clicando em [Ok];
  • Após a execução, confirmamos o feedback clicando em [Ok];
  • Agora clicamos no botão [Próximo];
  • Na aba [StoredProcs] é clicado em [Executa todas as stored procs automaticamente?];
  • Em seguida, é clicado no botão [Executar];
  • Após clicar em [Executar], confirmamos a intensão clicando em [Sim];
  • Após a execução, confirmamos o feedback clicando em [Ok];
  • Na aba [Arquivos] é clicado em [Próximo];
  • Na aba [Relatórios] é clicado em [Próximo];
  • Na aba [Sistemas] é clicado em [Próximo];
  • Na aba [Salvar] é clicado no botão [Salvar];
  • Por fim, clicamos no botão [Sair].