O que é?
Um Projeto é uma
...
Para melhor explicar o cadastro de Projetos vou tomar como base uma automação que possui as seguintes Atividades:
Restauração de base
Chamada de WebService
Comparação de Banco de dados.
Para que este projeto seja completo e funcione ele deve conter também as seguintes atividades:
Após restaurar a base de dados criar o Alias para o RM,
Após criar o Alias o RM.Host.exe deverá ser iniciado para que a chamada WebService seja possível,
Após fazer a comparação de Bases de Dados a base restaurada para o teste deverá ser deletada, o host fechado e o alias limpo.
No projeto cada atividade é representada por um nodo ou nó (segundo a Wikipedia : Em redes de comunicação, um nodo ou nó (do Latim nodus, "nó") é um ponto de conexão [...]) . Desta forma cada atividade representada poderá seguir um fluxo de sucesso, erro, alerta ou todos estes. Estes fluxos são exclusivos. Um mesmo nodo não pode por exemplo possuir dois fluxos de sucesso ou um de fluxo todos e um de erro.
As Atividades de um Projeto podem compartilhar recursos entre sim. As Atividades de Criar Alias e Carregar o RM.Host.exe por exemplo que geralmente aparecem juntas em um Projeto compartilham recursos. Para verificar qual recurso um nodo utiliza ou oferece selecione o nodo desejado e clique no botão Recursos na barra a esquerda da área de criação do projeto. Desta forma você poderá selecionas um recurso para ser utilizado nesta Atividade.
Image RemovedImage Removed
Exemplo.: A Atividade Criar Alias oferece o recurso Rm.IAliasResource e a Atividade Inicia RM.Host.exe usa o recurso Rm.IAliasResource. Portanto esta segunda não poderá estar em um Projeto que não possua a Atividade de criação de Alias. Caso as duas estejam e não compartilhem este recurso entre si o Projeto apresentará erro ao ser executado.
Ainda nas Atividades do Projeto você pode, nas suas propriedades ignorar seu resultado ou informar um Json de parâmetros para ela.
Image Removed
Para conectar as Atividades/nodos do projeto clique na seta com a cor correspondente, arraste e solte no nodo desejado.
Tipos de fluxo:
- Seta verde: Fluxo de sucesso.
- Seta vermelha: Fluxo de erro.
- Seta Azul: Todos os fluxos.
- Seta Laranja: Fluxo de Alerta.
Fluxo determinará a próxima atividade a ser executada em seu projeto. Lembre-se de criar os fluxos de modo que ao final do do projeto independente do resultado a base restaurada seja deletada, o alias limpo e os serviços/aplicativos iniciados sejam finalizados. A finalização destes recursos pode ser feita automaticamente habilitando este recurso no Projeto.
O Projeto é uma Atividade que agrupa Atividades para que a automação de um teste seja possível. Diferente dos Agrupadores, as Atividades contidas em um Projeto possuem uma sequência de execução. Elas são dependentes. O fluxo de execução das tarefas pode ser determinado pelas condições de falha ou sucesso de suas antecessoras. Portant
o, a criação Projeto deve ser a última etapa da automação do seu teste. Qualquer das Atividades existentes no TF 3.0 são passíveis de serem utilizadas em Projetos.
Para melhor explicar o cadastro de Projetos vou tomar como base uma automação que possui as seguintes Atividades:
Restauração de base
Chamada de WebService
Comparação de Banco de dados.
Para que este projeto seja completo e funcione ele deve conter também as seguintes atividades:
Após restaurar a base de dados criar o Alias para o RM,
Após criar o Alias o RM.Host.exe deverá ser iniciado para que a chamada WebService seja possível,
Após fazer a comparação de Bases de Dados a base restaurada para o teste deverá ser deletada, o host fechado e o alias limpo.
No projeto cada atividade é representada por um nodo ou nó (segundo a Wikipedia : Em redes de comunicação, um nodo ou nó (do Latim nodus, "nó") é um ponto de conexão [...]) . Desta forma cada atividade representada poderá seguir um fluxo de sucesso, erro, alerta ou todos estes. Estes fluxos são exclusivos. Um mesmo nodo não pode por exemplo possuir dois fluxos de sucesso ou um de fluxo todos e um de erro.
As Atividades de um Projeto podem compartilhar recursos entre sim. As Atividades de Criar Alias e Carregar o RM.Host.exe por exemplo que geralmente aparecem juntas em um Projeto compartilham recursos. Para verificar qual recurso um nodo utiliza ou oferece selecione o nodo desejado e clique no botão Recursos na barra a esquerda da área de criação do projeto. Desta forma você poderá selecionas um recurso para ser utilizado nesta Atividade.
Image RemovedImage Removed
Exemplo.: A Atividade Criar Alias oferece o recurso Rm.IAliasResource e a Atividade Inicia RM.Host.exe usa o recurso Rm.IAliasResource. Portanto esta segunda não poderá estar em um Projeto que não possua a Atividade de criação de Alias. Caso as duas estejam e não compartilhem este recurso entre si o Projeto apresentará erro ao ser executado.
Ainda nas Atividades do Projeto você pode, nas suas propriedades ignorar seu resultado ou informar um Json de parâmetros para ela.
atividade que agrupa outras atividades interdependentes, organizadas em uma sequência específica para automatizar testes de maneira controlada. Ele permite a execução automática de ações, avaliando condições de sucesso, falha ou alerta entre as atividades, garantindo que o teste siga um fluxo lógico.
Para que serve?
Serve para criar uma automação de testes estruturada e sequencial, onde atividades dependentes são organizadas para serem executadas em uma ordem específica. Assim, ele permite que diferentes tarefas do processo de teste se conectem de forma eficiente e que as ações subsequentes dependam do sucesso ou falha das anteriores.
Exemplo de Uso
Deck of Cards |
---|
|
Card |
---|
| Expandir |
---|
title | 1. Navegação para o cadastro |
---|
| 1. Navegue no menu do TestFlow e clique em: Atividades → Projetos → Projetos de Teste. 2. Na tabela que será mostrada, clique no botão verde em destaque para iniciar o cadastro. Image Added
|
Expandir |
---|
title | 3. Preenchimento dos Campos |
---|
| Expandir |
---|
| Especifica a versão da atividade em questão. O objetivo de versionar uma atividade é para quando necessitamos ter mais de uma atividade em versões diferentes. Isso irá nos auxiliar a ter um histórico de atualizações e assegurar que as mudanças feitas sejam rastreáveis e reversíveis, se necessário. Informações |
---|
Se for necessário utilizar mais de uma versão do RM no seu ambiente, é recomendado que a versão da atividade seja compatível com o sistema RM em uso. Caso contrário, pode-se optar por uma versão padrão de sua preferência. |
Section |
---|
Column |
---|
Exemplo utilizando a versão do RM Image Added |
Column |
---|
Exemplo utilizando a versão padrão Image Added |
|
|
Expandir |
---|
| Fornece uma descrição detalhada da atividade, explicando seu propósito e operações, facilitando a compreensão e manutenção futura. Image Added
|
|
|
Card |
---|
label | Ações Rápidas de Atividade |
---|
| Ações Rápidas de AtividadeEste componente atua como uma barra lateral de ferramentas de ação rápida, projetada para facilitar a administração e edição de atividades numa interface. As opções disponíveis indicam que ele permite ao utilizador manipular elementos específicos dentro de um sistema, sendo ideal para o gerenciamento de fluxos ou tarefas. Aqui está o que cada item apresenta: Expandir |
---|
| Adicionar AtividadeImage Added |
Expandir |
---|
| Editar Atividade - Ao selecionar esta opção, o utilizador pode abrir e modificar as propriedades da atividade previamente selecionada. Ideal para ajustar detalhes como nome, prazo, responsáveis ou qualquer outro atributo associado, permitindo um refinamento da atividade para melhor alinhamento com os objetivos do fluxo.
Image Added |
Expandir |
---|
| Apagar Item- Com esta função, o utilizador pode remover uma atividade ou item selecionado da interface. Esta ação é útil para manter o fluxo organizado, excluindo etapas desnecessárias ou obsoletas, o que ajuda a manter a interface limpa e o processo eficiente.
Image Added
|
Expandir |
---|
| PropriedadesEsta tela permite a edição das propriedades da atividade dentro do sistema, onde o utilizador pode configurar parâmetros específicos da atividade selecionada de acordo com as necessidades do fluxo de trabalho. Image Added
Elementos da tela: Ignorar Resultado: Uma caixa de seleção que, ao ser marcada, indica que o resultado dessa atividade será ignorado no fluxo. Esse recurso pode ser útil para atividades auxiliares ou não obrigatórias, onde o resultado não afeta o fluxo geral.Image Added Parâmetros JSON: Uma área de edição que permite ao utilizador inserir ou modificar parâmetros em formato JSON. Esses parâmetros configuráveis fornecem um meio flexível de personalizar o comportamento da atividade, ajustando detalhes específicos diretamente no código JSON.
Exemplo de parâmetros JSON para uma Atividade de inicialização de Ambientes. Image Added |
Expandir |
---|
| Recursos Esta tela permite ao utilizador configurar os Recursos específicos necessários para a execução da atividade, bem como os recursos que a atividade disponibiliza para outras etapas do processo. Esses recursos são elementos essenciais que podem representar dados, conexões ou resultados de etapas anteriores, fundamentais para o andamento correto e eficiente do fluxo de trabalho. Necessita (Recursos Consumidos) - Recursos consumidos são aqueles que a atividade precisa para ser executada corretamente. Esses recursos podem ser fornecidos por outras atividades ou configurados no início do fluxo de teste.
Oferece (Recursos Disponibilizados)Exemplo utilizado numa atividade Cria Alias de um Projeto de Teste que Inicializa Ambientes do produto RM. Image Added |
Expandir |
---|
| Atividade Inicial Define a atividade como o ponto de partida do fluxo de trabalho, estabelecendo-a como a primeira etapa a ser executada. Isso ajuda a organizar a sequência do fluxo e garante que o sistema compreenda onde o processo deve começar. Image Added |
Expandir |
---|
title | Finalização Automática |
---|
| Finalização Automática.Após a criação deste recurso, não é mais necessário inserir no seu Projeto de Teste atividades para finalizar processos ou deletar bases de dados restauradas, por exemplo. Ao criar uma atividade em C# que implemente a interface IDisposable, será possível utilizar esse recurso. Com isso, você poderá, por exemplo, iniciar uma API de terceiros e, no final da execução do seu Projeto, encerrá-la automaticamente através do método Dispose. Para que isso funcione, a sua classe deve herdar a interface IDisposable e implementar o método Dispose, conforme o exemplo abaixo. Bloco de código |
---|
language | c# |
---|
title | Exemplo de C# com IDisposable |
---|
linenumbers | true |
---|
collapse | true |
---|
| using System;
public class TesteRecurso : ICSharpCodeAction, IDisposable
{
public void Dispose()
{
//Implemente aqui a finalização do recurso que criou para utilizar em seu projeto
throw new Exception("Teste de classe C# IDisposable");
}
public void Execute(IActivityContext context)
{
//Implemente aqui a carga do recurso que vai utilizar
context.Resources.Add<IDisposable>(this);
}
}
|
Como funciona:Na tela de edição de Projeto quando inserir uma Atividade note que no item Finalização Automática será acrescentado um contador. Isto quer dizer que esta Atividade (do exemplo)possui dois recursos que podem ser finalizados automaticamente. Ao clicar no botão será aberto o widget de Recursos do Projeto. Ao clicar no botão será aberto o widget de Recursos do Projeto. Image Added No processo de execução do projeto, você pode configurar a finalização dos recursos de acordo com as seguintes opções: Finalizar automaticamente todos os Recursos do Projeto passíveis de finalização: Todos os recursos configurados para serem finalizados no fim da execução do projeto serão automaticamente encerrados. Ignorar o resultado da finalização de todos os Recursos: Caso habilitado, qualquer falha na finalização de um recurso será ignorada e não afetará o resultado final da execução. Desativar a finalização automática e configurar recursos individualmente: Se preferir, pode desativar a finalização automática de todos os recursos e configurar manualmente quais recursos devem ser finalizados ao término do projeto. Não ignorar o resultado da finalização para todos os recursos, mas escolher recursos específicos a serem ignorados: Nesta opção, você pode definir que falhas de finalização específicas sejam ignoradas, sem aplicar isso globalmente a todos os recursos.
O que significa Ignorar Resultado da Finalização? Quando "Ignorar Resultado da Finalização" está ativado, falhas na finalização de um recurso não interferem no resultado final do projeto. Por exemplo: Imagine uma Atividade de Restauração de Base de Dados que é automaticamente finalizada ao término do projeto. Caso a exclusão desta base falhe por algum motivo, o sistema levantará uma exceção. Se "Ignorar Resultado da Finalização" estiver habilitado, essa exceção será desconsiderada, e a execução do projeto será considerada bem-sucedida. Caso contrário, a exceção será levada em conta no cálculo do resultado, e a execução do projeto será marcada como falha.
Em seguida na árvore que será aberta clique em mais detalhes linha correspondente (a primeira) ao projeto. Image Added Será aberto os detalhes da execução do Projeto e dos passos serão mostrados os logs de todas as execuções e de todas as finalizações de Recursos. A finalização será feita do último Recurso iniciado para o primeiro para evitar erros de Recursos que estão sendo utilizados por outros nodos. Image Added Caso tenha algum dos Recurso esteja com o parâmetro para ignorar finalização habilitado e o mesmo apresente algum erro ao ser finalizado seu log será mostrado na aba ALERTAS dos detalhes da execução. Image Added Observação: Para recursos que estão sendo utilizados por outras atividade é possível escolher se este será ou não encerrado mesmo que este parâmetro esteja habilitado para o Projeto inteiro. O mesmo vale para o parâmetro de ignorar resultado da finalização. Os recursos utilizados por alguma Atividade no projeto tem os botões apresentados coloridos. Os recursos não utilizados serão obrigatoriamente finalizados e não poderão ter seu resultado ignorado. Image Added
|
Expandir |
---|
| Tela InteiraExpande o painel para uma visualização em modo de tela cheia, oferecendo ao utilizador uma visão ampla do fluxo ou atividade sem distrações. Esta visualização é vantajosa para uma análise mais detalhada ou para a edição que exige maior foco e visibilidade dos elementos. Image Added |
|
Card |
---|
| Fluxo de Execução Expandir |
---|
| Um Projeto é uma atividade que agrupa várias outras atividades, permitindo a automação de um teste de forma estruturada. Diferentemente dos agrupadores simples, as atividades dentro de um Projeto seguem uma sequência de execução e são interdependentes. O fluxo de execução dessas tarefas é definido com base nas condições de sucesso ou falha de suas predecessoras. Por isso, a criação do Projeto deve ser a última etapa na configuração de automação do seu teste. Qualquer atividade disponível no TestFlow pode ser utilizada em Projetos. Para exemplificar o cadastro de Projetos, vamos considerar um fluxo de automação com as seguintes atividades: - Restauração de base
- Cria Alias RM
- Chamada de WebService
- Comparação de Banco de Dados
Para que este projeto funcione corretamente, ele deve incluir também as seguintes atividades complementares: - Após a restauração da base de dados, é necessário criar o Alias para o RM.
- Após a criação do Alias, o processo RM.Host.exe deve ser iniciado para possibilitar a chamada de WebService.
- Após a comparação das bases de dados, a base restaurada para o teste deve ser excluída, o processo host deve ser encerrado e o Alias deve ser removido.
No projeto, cada atividade é representada por um nó (ou "nodo"). Conforme a definição da Wikipedia, em redes de comunicação, um nodo ou nó é um ponto de conexão. Dessa forma, cada atividade representada no Projeto pode seguir um fluxo de sucesso, erro, alerta ou uma combinação desses, sendo que os fluxos são exclusivos: um nó não pode, por exemplo, ter dois fluxos de sucesso ou combinar um fluxo de todos com um de erro. Abaixo está um exemplo de fluxo de execução de um Projeto de Teste utilizando uma chamada de WebService para um produto imobiliário no RM. Image Added
|
Expandir |
---|
title | Configuração de Fluxos entre Atividades no Projeto |
---|
| Configuração de Fluxos entre Atividades no ProjetoAntes de adicionar uma nova atividade, selecione o tipo de fluxo que deseja estabelecer entre a atividade atual e a próxima. Depois de escolher a próxima atividade, ambas serão ligadas por uma seta que indica o fluxo selecionado. Tipos de Fluxo e Suas RepresentaçõesFluxo de Sucesso (Seta Verde): Indica que a próxima atividade será executada somente se a atividade anterior for concluída com sucesso. A seta verde representa o caminho de continuidade quando não há falhas. Fluxo de Erro (Seta Vermelha): Indica que a próxima atividade será executada apenas se a atividade anterior falhar. A seta vermelha representa o caminho de erro, garantindo que o fluxo responda a uma falha específica. Todos os Fluxos (Seta Azul): Indica que a próxima atividade será executada independentemente do resultado da atividade anterior, seja ele sucesso ou falha. A seta azul mostra um fluxo incondicional, permitindo a continuidade em qualquer situação. Fluxo de Alerta (Seta Laranja): Indica que a próxima atividade será executada com um Status de Alerta. Este fluxo é ativado quando há uma situação intermediária ou uma advertência que requer atenção, mas não interrompe o processo. A seta laranja representa esse caminho de alerta para informar que o processo prossegue, mas com observação.
|
|
|
...
Para conectar as Atividades/nodos do projeto clique na seta com a cor correspondente, arraste e solte no nodo desejado. Image Added
|
|
Card |
---|
| Exemplo PráticoImagine um analista de testes responsável por assegurar o correto funcionamento de um produto RM imobiliário da empresa, garantindo que os dados processados pelas APIs sejam consistentes e precisos. |
|
...
Tipos de fluxo:
- Seta verde: Fluxo de sucesso.
- Seta vermelha: Fluxo de erro.
- Seta Azul: Todos os fluxos.
- Seta Laranja: Fluxo de Alerta.
Fluxo determinará a próxima atividade a ser executada em seu projeto. Lembre-se de criar os fluxos de modo que ao final do do projeto independente do resultado a base restaurada seja deletada, o alias limpo e os serviços/aplicativos iniciados sejam finalizados. A finalização destes recursos pode ser feita automaticamente habilitando este recurso no Projeto.
Image Removed
Ainda na barra lateral você pode:
- Adicionar outros nodos.
- Apagar nodos e ligações
- Definir o nodo/Atividade inicial
- E colocar a área de criação do Projeto em tela cheia ou normal.
- Gerenciar finalização automática de recursos do Projeto.
Observação: Para a execução de Projetos que possuem scripts Winform é necessário que a pasta TESTFLOW (que possui os plugins para a correta execução dos scripts) esteja presente na pasta onde o RM está instalado. Foi criada uma resiliência no Agent do TestFlow para copiar automaticamente estes plugins para o ambiente do RM caso a pasta não exista.
...
Esse analista deve validar o processo de cadastro de imóveis realizado via API de WebService, confirmando que os dados registrados estejam corretamente refletidos no banco de dados. Para isso, ele utilizará um projeto de testes automatizado que abrange todas as etapas essenciais da validação de dados, incluindo a restauração do banco, a configuração do ambiente e uma verificação final para garantir a consistência e integridade dos dados. Este projeto verifica a integridade dos dados de um produto do RM imobiliário usando uma sequência de atividades. Cada etapa tem um propósito específico para garantir que os dados sejam restaurados, configurados, verificados e, finalmente, comparados. Abaixo está a descrição de cada atividade e a justificativa de sua presença no fluxo. 1. Restauração de Banco de Dados - Descrição: Restaura uma cópia específica do banco de dados para garantir que os dados estejam em um estado conhecido e controlado antes de iniciar os testes.
- Justificativa: É fundamental começar com uma base limpa e padronizada para evitar interferências de dados residuais de testes anteriores. Isso garante a consistência dos resultados ao longo do fluxo de teste.
Image Added 2. Cria Alias RM - Descrição: Cria um alias para o sistema RM, o que configura a conexão entre o ambiente de teste e o banco de dados restaurado.
- Justificativa: O alias é necessário para que os serviços e o sistema RM possam localizar o banco de dados restaurado. Essa configuração permite que os próximos passos acessem o banco de dados correto, essencial para uma integração eficaz.
Image Added 3. Inicia RM.Host.exe - Descrição: Inicia o serviço RM.Host.exe, que é um processo essencial para permitir a comunicação com o WebService e garantir que o sistema esteja pronto para processar as solicitações de teste.
- Justificativa: Este serviço é necessário para que a chamada ao WebService funcione corretamente, já que ele atua como intermediário entre o sistema e o WebService. Sem ele, o sistema não consegue realizar a chamada de forma confiável.
Image Added 4. WebService Cadastro Imobiliário - Descrição: Executa uma chamada ao WebService responsável pelo cadastro de dados imobiliários. Essa etapa simula a interação com o sistema e a adição de dados relevantes para o teste.
- Justificativa: A chamada ao WebService é fundamental para verificar se o sistema responde corretamente às requisições de cadastro. Isso ajuda a validar que os dados estão sendo enviados e recebidos conforme esperado, um passo importante antes de comparar os dados.
Image Added
5. Comparação de Banco de Dados - Imobiliário - Descrição: Realiza uma comparação entre o banco de dados restaurado e o estado atual após o cadastro. Isso inclui verificar se os dados foram adicionados ou atualizados conforme o esperado pelo WebService.
- Justificativa: Esta etapa final é crucial para garantir que as operações de cadastro funcionaram corretamente e que os dados estão consistentes. A comparação permite identificar discrepâncias, garantindo a integridade e precisão dos dados no sistema imobiliário.
Image Added Conclusão do Fluxo Este fluxo de teste garante que todas as configurações e operações necessárias para a automação do cadastro e comparação de dados foram concluídas corretamente. Cada etapa desempenha um papel essencial, assegurando que o sistema funcione conforme o esperado e que os dados no banco estejam íntegros após o teste. Resultado do Fluxo de Atividades para a Realização do Teste Image Added |
|
...
Saiba mais
Dica |
---|
Organize as Atividades de Forma Lógica, configurando as atividades em uma sequência lógica, garantindo que cada etapa dependa do sucesso ou falha da anterior, criando um fluxo eficiente e evitando erros desnecessários. |
Dica |
---|
Use o Versionamento com Consciência, ao atualizar atividades, mantenha o histórico de versões para um acompanhamento claro das mudanças. Escolha a versão que melhor se adapta ao seu ambiente de teste. |
Dica |
---|
Escolha o Fluxo de Execução adequado Utilizando os diferentes tipos de fluxo (sucesso, erro, alerta, ou todos) para que o projeto responda adequadamente a cada situação, garantindo uma automação robusta e confiável. |
Dica |
---|
Monitore os Logs de Execução e Finalização: Os logs mostram detalhes importantes sobre cada atividade executada e são essenciais para identificar e resolver erros ou alertas que ocorram no fluxo. |
FAQ
Informações |
---|
P: Posso reutilizar atividades entre diferentes Projetos? R: Sim! Aproveite atividades comuns entre Projetos para reduzir o tempo de criação e manter a consistência entre testes. Versione e documente bem essas atividades para que possam ser reutilizadas com facilidade e segurança P: Como escolher o tipo de fluxo certo entre atividades (Sucesso, Erro, Alerta, Todos)? R: Escolha o fluxo de acordo com o comportamento esperado após cada atividade Sucesso: Use quando a próxima atividade depende do êxito da anterior. Erro: Configure para tratar falhas específicas. Alerta: Para situações intermediárias que não exigem interrupção, mas precisam de atenção. Todos: Para atividades que precisam ocorrer independentemente do resultado da anterior. P: Qual é a melhor maneira de gerenciar erros durante a execução de um Projeto? R: Utilize o fluxo de erro (seta vermelha) para definir o caminho a ser seguido caso uma atividade falhe. Isso permite executar ações específicas para lidar com falhas, como realizar uma limpeza do ambiente ou enviar notificações. Além disso, os logs ajudam a identificar pontos problemáticos para aprimorar o fluxo no futuro. |