O que é?
Esta atividade tem como objetivo realizar a comparação detalhada entre os valores presentes em dois bancos de dados distintos, a partir de uma consulta SQL específica. O processo envolve a execução de uma consulta em cada uma das bases, como por exemplo, uma base de teste e uma base gabarito, e a comparação dos resultados obtidos. O intuito é verificar se os dados estão consistentes entre as bases, garantindo que as operações realizadas nos testes, como inserções, atualizações ou exclusões, produziram os resultados esperados. Essa comparação pode abranger tanto os valores individuais dos campos quanto a estrutura das tabelas, identificando eventuais discrepâncias nos dados, como diferenças em valores, ausência de registros ou erros de consistência.
Para que serve?
Esta atividade é utilizada para validar a execução dos seus Projetos de Teste. Por exemplo, imagine que você tem uma atividade que realiza o cadastro de informações em uma base de dados. Com esta atividade, você pode verificar se o cadastro foi concluído com sucesso, confirmando que todas as informações foram inseridas corretamente. Isso inclui garantir que todos os campos da tabela relacionados ao cadastro estão preenchidos corretamente e que os valores registrados estão de acordo com o esperado. Assim, você assegura a integridade e precisão dos dados inseridos no banco.
Exemplo de Uso
As variáveis de ambiente na comparação de arquivos no TestFlow são utilizadas para configurar e personalizar o comportamento da atividade de comparação. Elas permitem definir valores específicos que podem ser usados durante a execução dos testes, assegurando que a comparação ocorra conforme o ambiente em que o teste está sendo executado.
Consulte as variáveis de ambiente permitidas nessa Atividade:
Comparação de Banco - Variáveis de Ambiente.
Saiba mais sobre Ambientes.
Imagine que você faz parte da equipe de Fiscal e precisa testar o seguinte fluxo: realizar o cadastro de uma nova moeda no sistema.
Para isso, você criou um projeto de teste que realiza a inserção desse registro na base de dados por meio de uma chamada HTTP. Esse projeto automatiza o processo de cadastro, mas é necessário verificar se o registro foi inserido corretamente na base restaurada.
Para garantir essa verificação, é essencial criar uma atividade de comparação que valide o resultado. Nesse caso, você configurará um mock dos campos que precisam ser validados, ou seja, os valores esperados para cada campo do registro criado, como o código da moeda, o nome, a descrição e outros atributos relevantes. A atividade de comparação irá comparar esses valores mockados com os valores efetivamente inseridos na base de dados durante a execução do teste.
Dessa forma, o projeto de teste estará completo, pois, além de executar a ação de cadastro, ele também garantirá que o registro foi inserido corretamente, validando a integridade e a consistência dos dados armazenados. Esse fluxo proporciona uma abordagem mais robusta, automatizada e confiável para testar o processo de cadastro de moeda, evitando erros manuais e garantindo a precisão da operação.
Se a comparação for executada com erro, será possível identificar as discrepâncias entre a base gabarito/mock e o banco de teste (onde a automação foi executada) por meio do log de execução do projeto de teste. O log fornecerá informações detalhadas sobre as divergências encontradas.
Quando ocorre um erro, as linhas que apresentarem diferenças serão exibidas na aba DIFERENÇAS. Nessa aba, os campos que apresentarem inconsistências serão destacados em negrito e na cor vermelha, facilitando a identificação visual dos problemas. Além disso, todos os campos que contêm diferenças serão listados em uma coluna específica chamada CAMPOS DIFERENTES. Esta coluna detalhará exatamente quais campos apresentaram variações, permitindo uma análise precisa das discrepâncias.
Essa funcionalidade oferece uma visão clara e organizada das divergências, agilizando o processo de correção e garantindo que o teste possa ser ajustado de maneira eficiente. Além disso, o uso de logs detalhados e a exibição de erros em formato visual ajudam a identificar rapidamente os problemas, permitindo ações corretivas imediatas.
Saiba mais
Você pode montar a string de conexão de três maneiras: 1 - Digitando manualmente a string; 2 - Através do gerador de conexão informando os campos necessários; 3 - Através do gerador de conexão carregando o padrão do SQLServer.
Sempre que utilizar uma Atividade de Restauração de Banco de Dados, deixe a limpeza automatica do TestFlow apagar a base. Isso ajudará a preparar o seu ambiente para uma próxima execução das automações.
Nunca utilize "select *" para validar a comparação dos bancos de dados. Pode haver campos de datas que irá comprometer seu resultado.
FAQ
P: Recebi o seguinte erro ao rodar a minha comparação: Column 'X' does not belong to table. O que fazer?
R: A base restaurada não está com os scripts atualizados. Sua comparação faz referência uma coluna que não existe mais. Para isso, execute a atualização dessa base de dados ou ajuste a consulta da comparação para excluir essa coluna.
P: Recebi o seguinte erro ao rodar a minha comparação: Log: Colunas de tipos diferentes nas tabelas possuem a mesma posição. O que fazer?
R: A posição das colunas nas comparações estão diferentes. Para resolver isso, ajuste a sua consulta da comparação informando somente os campos utilizado no lugar de SELECT * FROM.
P: Recebi o seguinte erro ao rodar a minha comparação: Log: Houve diferenças na comparação do banco de Dados. O que fazer?
R: Verifique se houve algum erro nas atividade executadas anteriormente. O problema pode estar no meu teste que não retornou o resultado esperado.