Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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
idComo cadastrar
Card
labelComo Cadastrar
Expandir
title1. 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
title2. Link para Definir cabeçalho (Nome e nível de acesso)

Clique aqui para obter as informações do cabeçalho

Expandir
title3. Preenchimento dos Campos
Expandir
titleVersão

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
titleDescrição

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
labelAções Rápidas de Atividade

Ações Rápidas de Atividade

Este 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
titleAdicionar Atividade

Adicionar Atividade

  • Esta função permite ao utilizador adicionar uma nova atividade ao fluxo de projeto, integrando um elemento que interaja com o processo atual e facilite a expansão ou personalização do fluxo conforme necessário.


Image Added

Expandir
titleEditar Atividade

 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
titleApagar Item

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
titlePropriedades

Propriedades

Esta 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
titleRecursos

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)

  • Recursos oferecidos são aqueles que a atividade gera ou disponibiliza para que outras atividades utilizem posteriormente no fluxo de teste. Eles podem incluir objetos instanciados durante a execução da atividade ou dados processados que serão necessários em atividades subsequentes.

Exemplo utilizado numa atividade Cria Alias de um Projeto de Teste que Inicializa Ambientes do produto RM.

Image Added

Expandir
titleAtividade Inicial

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
titleFinalizaçã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
languagec#
titleExemplo de C# com IDisposable
linenumberstrue
collapsetrue
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
titleTela Inteira

Tela Inteira

Expande 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
labelFluxo de Execução

Fluxo de Execução 

Expandir
titleAtividades em Fluxo 

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:

  1. Restauração de base
  2. Cria Alias RM 
  3. Chamada de WebService
  4. 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 (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
titleConfiguração de Fluxos entre Atividades no Projeto

Configuração de Fluxos entre Atividades no Projeto

Antes 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ções

  • Fluxo 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
labelExemplo prático

Exemplo Prático

Imagine 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.