Versões comparadas

Chave

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

O que é?

Um Ambiente A atividade de SOAP no TestFlow é uma configuração ferramenta que permite direcionar a execução de um Projeto de Testes para uma versão específica do RMtestar e automatizar chamadas a WebServices SOAP, facilitando a integração e validação de processos.

WebServices são usados para disponibilizar serviços interativos na WEB, podendo ser acessados por outras aplicações. O SOAP (Simple Object Access Protocol) está se tornando padrão para a troca de mensagens entre aplicações e Web Services, já que é uma tecnologia construída com base em XML e HTTP. Como o RM possui seus web services podemos utilizar o TestFlow para testá-los.

Para que serve?

Ele serve para:

...

Serve para automatizar o teste e a execução de WebServices SOAP, incluindo registros, processos e outros serviços oferecidos pelo sistema RM.

Links Úteis

  1. Documentação e Download Soap Ui: https://www.soapui.org/docs/
  2. O que são WebServices: https://pt.wikipedia.org/wiki/Web_service

Exemplo de Uso 

...

Deck of Cards
idComo cadastrar
Card
labelComo Cadastrar cadastrar
Expandir
title1. Navegação para o cadastro.
  1. Navegue no menu do TestFlow e clique em
Ambientes.Image Removed2.
  1. : Atividades → ServiçosSoap.
  2. Na tabela que será mostrada, clique no botão verde em destaque
para adicionar ambiente.

Image Removed

  1. para criar Atividade de Soap.

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 de Atividade

Fornece uma descrição detalhada da atividade, explicando seu propósito e operações, facilitando a compreensão e manutenção futura.

Image Added

 3. Preencha os campos:Nome exibição

a. Aqui você deverá atribuir um nome para identificar sua atividade de ambiente.Image Removed

b. Grupos no TestFlow organizam e controlam o acesso dos usuários aos ambientes,garantindo que cada usuário acesse apenas os ambientes pertinentes ao seu papel ou projeto. Adicione um grupo ao seu ambiente para gerenciar essas permissões de forma eficiente.

(Saiba mais sobre o que são os Grupos no TestFlow.)

image-2024-7-8_14-23-58.pngImage Removed

c. Aqui você deverá informar o diretório onde os arquivos ou dados relevantes serão armazenados, garantindo que o sistema saiba exatamente onde procurar e salvar as informações necessárias para a execução das atividades.Image Removed

Image Removed

Expandir
title
Condição de
Expandir
titlePermissões de Gupos
Expandir
titleDiretório
Expandir
titlePropriedades customizáveis
Card
labelExemplo prático

Saiba mais

Dica

Utilize um padrão de nomenclatura que facilite a rápida e fácil identificação do objetivo do teste.

Dica

Os Casos de Teste não são versionados.

Dica

Se o caso de teste estiver associado a um projeto de teste, um botão para edição será exibido. Se o projeto de teste tiver várias versões, será necessário escolher qual versão editar.

FAQ

Erro

Se ocorrer um erro durante a execução de alguma das requisições, o TestFlow deve tomar medidas específicas para lidar com esse erro. As ações variam conforme o tipo e a gravidade do erro.

Logar o Erro: Caso ocorra um erro em alguma das requisições SOAP, o TestFlow deverá registrar todas as informações relevantes sobre o erro no log de execuções.

      • Exemplo: Se uma requisição SOAP falhar com um erro 500, o TestFlow deverá registrar essas informações nos logs para análise posterior. A execução do processo não será finalizada

Gerar Erro de Execução: Caso ocorra um erro em alguma das requisições SOAP, o TestFlow deverá lançar uma exceção que interrompa a execução do processo atual.

      • Exemplo:  Se uma requisição SOAP falhar com um erro 500, o TestFlow deverá registrar essas informações nos logs para análise posterior e a execução do processo será finalizada.  

Gerar Alerta e Continuar: Caso ocorra um erro alguma das requisições SOAP, o TestFlow deverá registrar um alerta e continuar a execução das operações subsequentes. Isso permite que outros processos continuem sendo executados.

      • Exemplo: Se uma requisição SOAP falhar com um erro 500, o TestFlow deverá registrar um alerta sobre a execução da atividade e continuar processando outras operações relacionadas sem interrupção.

Image Added


Expandir
titleOperações
Informações

Neste cadastro, é possível realizar as seguintes operações:

Expandir
titleRecuperar Operações

Image AddedPermite que o TestFlow recupere e liste todas as operações disponíveis no serviço web configurado. Esta funcionalidade é essencial para identificar e selecionar as operações específicas que podem ser executadas pelo serviço web.

Aviso

Atenção: O Agent e o Host do RM devem estar devidamente sendo executados no servidor em questão.

Saiba mais: Agent e Servidor.

Funcionamento:

  • Inicialização: Deve-se informar o servidor e a URI correspondente. O TestFlow enviará uma requisição ao serviço web para listar todas as operações disponíveis.
  • Listagem: As operações recuperadas são exibidas em uma interface onde os usuários podem visualizar e selecionar as operações desejadas.

Image Added

Expandir
titleAlteração em Massa

Image Added Permite a atualização ou modificação de múltiplos campos de múltiplas requisições em uma única operação. Este recurso é utilizado para aplicar mudanças consistentes em vários elementos ao mesmo tempo, economizando tempo e reduzindo o risco de erros manuais.

Funcionamento:

  • Configuração: O usuário define os parâmetros e os registros que serão alterados em massa. É possível realizar a alteração dos seguintes campos:
    • Uri da Coleção;
    • Soap Endpoint;
    • Timeout XML;
    • Usuário;
    • Senha;
    • Domínio;

Image Added

Expandir
titleExecutar Todas

Image Added Permite executar todas as requisições definidas em uma sequência ou lote. Esta funcionalidade é útil para automatizar a execução de múltiplas operações de forma ordenada e eficiente. Para isso, escolha o servidor em que deve ser executado às requisições.

Aviso

Atenção: O Agent e o Host do RM devem estar devidamente sendo executados no servidor em questão.

Saiba mais: Agent e Servidor.


Funcionamento:

  • Definição: O usuário configura uma série de requisições que devem ser executadas em sequência.
  • Execução: O TestFlow processa cada requisição na ordem definida, garantindo que todas as operações sejam executadas conforme especificado.
  • Log: Será logado o resultado de cada requisição executada, assim como o seu status code.
    • Verde: A requisição foi executada com sucesso.
    • Vermelho: Houve um erro para processar a requisição.

Image Added

Expandir
titleRequisições

Image Added

Expandir
titleInfo

URI (WSDL): É o endereço onde está localizado o arquivo WSDL que descreve o WebService. Este arquivo define os métodos disponíveis, os tipos de dados, e as operações que podem ser executadas pelo WebService.

SOAP Endpoint: O SOAP Endpoint é o endereço onde o serviço SOAP está disponível para receber as requisições. Este é o URL que os clientes utilizam para enviar as mensagens SOAP ao servidor

Timeout (Segundos) O Timeout define o tempo máximo (em segundos) que o TestFlow deve esperar por uma resposta do WebService antes de considerar a requisição como falhada. Este campo é importante para garantir que a aplicação não fique indefinidamente esperando por uma resposta.

Descrição: Campo que permite adicionar uma descrição detalhada sobre a requisição SOAP. Pode incluir informações sobre o propósito da requisição, detalhes dos parâmetros e qualquer outra informação relevante

Status de Retorno HTTP Esperados: Lista dos códigos de status HTTP que são esperados como resposta válida do WebService em questão. Isso ajuda a identificar se a requisição foi bem-sucedida ou se encontrou algum tipo de erro.

Expandir
titleMensagem

A Mensagem é a estrutura principal de uma requisição SOAP, onde são definidos os dados a serem enviados e recebidos pelo serviço web.

Nesta aba são compostos pelos seguintes campos: 

SOAP Action: É um cabeçalho HTTP específico usado em requisições SOAP para indicar a operação ou método específico que deve ser executado pelo serviço web. Ele é essencial para o roteamento correto e processamento da solicitação pelo servidor. Sendo assim ele informa ao servidor SOAP qual operação deve ser executada, sendo útil em serviços web que expõem múltiplas operações. 

Exemplo de Soap Action:Image Added

Envelope: O envelope SOAP é o elemento raiz que define o início e o fim da mensagem SOAP.

Exemplo de Envelope:

Image Added


Expandir
titleAutenticação

A seção Autenticação é crucial para garantir a segurança das requisições SOAP. Nesta seção, são especificadas as credenciais necessárias (Login, senha e domínio) para acessar o serviço web.

Exemplo: 

Image Added

Expandir
titleAções

É o processo de enviar uma mensagem SOAP a um serviço web para solicitar a execução de uma operação específica. Este processo envolve a criação e configuração de uma mensagem SOAP, incluindo a definição do envelope SOAP e a especificação do cabeçalho SOAP Action.

a. Sendo assim clique no botão em destaque para Executar a Requisição e coloque o servidor de uso.

Aviso

Atenção: O Agent e o Host do RM devem estar devidamente sendo executados no servidor em questão.

Saiba mais: Agent e Servidor.

Image Added

b. E para remover a requisição clique no botão em destaque Deletar requisição.

Image Added


Card
labelVariáveis de ambiente

As variáveis dos ambientes no SOAP são utilizadas para ajustar as configurações das requisições SOAP conforme os diferentes ambientes de execução (desenvolvimento, teste, produção), facilitando a adaptação e reutilização dos scripts sem a necessidade de alterações manuais no código para cada ambiente.

Clique aqui para obter as informações das Variáveis de ambiente do Soap.

Card
labelExemplo prático
Expandir
title1. Criação de chamadas SOAP para cadastros no RM.

Cadastro: Unidade de medida.

Expandir
titleColeta de informações
  1. Após estar devidamente configurados conforme os requisitos deste tipo de Atividade carregue o Host do RMcomo Administrador.
  2. Acesse a URL do webservice do Host (http://localhost:8051/wspageindex/).
    1. Se a página abaixo for exibida suas configurações estão corretas.Image Added
  3. Vamos usar como exemplo o processo de inclusão de uma Unidade de Medida. O primeiro passo é analisar o cadastro que queremos fazer pelo WebService para coletar algumas informações relevantes:
    1. Quais dados serão inseridos.
    2. Qual é o DataServer do cadastro.
      1. Para descobrir qual é o DataServer do cadastro, vá até a aba de edição ou cadastro de um registro, clique em qualquer campo da tabela fornecida e pressione a combinação de teclas: CTRL + ALT + F9.Image Added
Expandir
titleUtilização do SoapUI

Resgate do XML:

  1. De posse do DataServer e das informações do cadastro, vamos identificar o método do WebService que utilizaremos para incluir um registro. Para isso, precisamos de um XML.
  2. Baixe em seu computador um aplicativo que se chama SoapUI (Baixe aqui). Nela podemos inserir a URL do WebService do host para saber qual método utilizar para incluir nosso registro

Após instalar, abra o aplicativo e no menu File escolha New Soap Project.Image Added

4. Escolha um nome como, por exemplo Cadastros do RM, e na Inicial WSDL cole a seguinte URL: http://localhost:8051/wsDataServer/MEX?wsdl.

Informações

Lembre-se que neste momento o host deve estar em execução na máquina (localhost).


Image Added

5. Após confirmar se tudo correr bem serão apresentados na tela os métodos existentes no WebService dos DataServers do RM .Image Added

6. Como não conhecemos o XML para inclusão de registros, vamos buscar um que já existe na tabela para que sejam retornados seus dados e seu XML. Desta forma podemos somente substituir os dados do registro que carregamos pelos dados que queremos incluir. Para carregar registros pelo WebService utilizamos o método ReadRecord.

    1. Clicando com o botão direito sobre o método escolhemos a opção New Request, dê um nome para ela e clique no botão OK.Image Added
    2. No XML apresentado, preencha a tag DataServerName com o nome obtido no item 3.b, exatamente como exibido na tela, em camel case.
    3. Na tag PrimaryKey, insira apenas o Código da Unidade para o cadastro de Unidades de Medida. Vamos utilizar "M" (Metros).
      Image AddedImage Added

7. Preencha a autenticação com o usuário utilizado para acessar o RM. Para isso, siga os passos abaixo:

    1. Vá em Auth → Add New Authorization → Basic.
    2. Marque a opção Authenticate pre-emptively.
    3. Feche a tela de autenticação.
    4. Clique no botão Play.

Image Added

    1. Será apresentado o XML com o registro desejado. Guarde esse XML que iremos precisar dele para a inclusão do registro.Image Added

      Inclusão do Novo Registro:

    2. Para a inclusão no SoapUi escolha o método SaveRecord, clique com o botão esquerdo e escolha New Request. Dê um nome para a requisição e clique em OK.Image Added
    3. Na tela apresentada, preencha a tag DataServerName com o mesmo dataserver utilizado no Read Record.
    4. Na tag XML, informe o conteúdo retornado do Read Record, copiando da expressão <![CDATA[ até ]]>.
    5. Em seguida, altere os dados antigos para os novos. Sua requisição deve ficar conforme a figura a seguir:Image Added

8. Para a Tag Contexto as informações de CODSISTEMA e CODUSUARIO são obrigatórias.

    • O CODSISTEMA você pode conseguir editando um registro do cadastro, clicando com o botão direito do mouse sobre a tela e selecionando a opção "Visualizar nome dos campos". Ao passar o mouse sobre qualquer campo será mostrada uma expressão com duas palavras. A primeira é o nome da TABELA (TUND) e a segunda o nome do campo. A primeira letra da tabela é o CODSISTEMA, no caso T. O restante da  informação você consegue acessando o RM e clicando no botão SISTEMA no canto inferior esquerdo da tela.Image Added
    • Para recuperar o CODUSUARIO, você deve ir na aba Sistema do RM, localizada no canto inferior esquerdo da tela.

Image Added

Informações

Defina o contexto com CODSISTEM=T e CODUSUARIO=mestre. Complete o envelope necessário.


10. Preencha a autenticação e teste a requisição se desejar. Assim, a solicitação pode ser transferida para a Atividade de Soap no TestFlow. Se a inclusão for bem-sucedida, o ID do registro será retornado.

Image Added


Expandir
titleConfiguração no TestFlow
  1. Informe o servidor no qual o Agent do TestFlow está sendo executado. (Clique aqui para mais informações sobre o Agent). Informe a URL do WebService: http://localhost:8051/wsDataServer/MEX?wsdl.
  2. Clique em RECUPERAR para que os métodos do WebService sejam apresentados.Image Added
  3. Clique em RM_IwsDataServer para expandir os métodos.
  4. Selecione o método SaveRecord e clique no sinal de "(mais)".

Image Added

  1. No lado direito da tela, expanda a requisição criada.
  2. Dos campos já preenchidos, o único que precisa ser editado é o Soap Endpoint.
  3. Altere a URL, substituindo o nome da máquina que aparece por LOCALHOST. Dessa forma, sua requisição será executada em qualquer máquina, e não apenas na especificada.
  4. Informe a descrição da sua requisição, o que é útil caso sejam criadas várias requisições na mesma atividade.
  5. Escolha o código de retorno adequado. Para operações de inserção, geralmente o código retornado é 201 (Created), mas isso pode variar dependendo de quem codificou a chamada. No SoapUI, você pode verificar o código correto ao executar a chamada. No caso da unidade de medida, o retorno de sucesso é 200 (OK).
    Image Added
    1. Na aba MENSAGEM cole o envelope de requisição que foi criado no SoapUI. Copie todo o XML e cole na área de edição.
    2. Na aba AUTENTICAÇÃO, insira o usuário e a senha utilizados para executar a chamada. Utilize as mesmas credenciais que você usa para acessar o RM. O campo de domínio não é obrigatório.
    3. Na aba AÇÕES, você pode testar sua requisição ou deletar se for necessário.Image Added

    4. Salve sua Atividade e ela está pronta para para ser executada ou inserida em um Projeto, Agendamento ou Coleção.
Expandir
title2. Criação de chamadas SOAP para processos do RM.

Processo: Ajuste a Valor Presente 

Expandir
titleColeta de Informações


    1. Acesse o RM e execute o processo desejado manualmente. Vamos escolher um processo simples para sermos mais didáticos:  Ajuste a Valor Presente
    2. Acesse a guia Gestão Financeira e na aba Contas a Pagar/Receber, escolha a opção Ajuste a Valor Presente e informe o dados solicitados e clique no botão executar e aguarde o processo ser executado.Image Added
  1. Após finalizar o processo com sucesso, acesse a aba Ambiente e, em seguida, o item Gerenciamento de Jobs. Crie um filtro para exibir apenas os jobs processados hoje, facilitando a localização do registro desejado..Image Added
  2. Edit o registro desejado e na guia Processo anote o valor do campo Classe do Processo, que neste caso é FinAVPData.Image Added
  3. No botão Anexos, abra o item de menu XML de Parâmetros de Job, copie o XML que vai ser apresentado e reserve.Image Added
Expandir
titleUtilização do SoapUI
  1. No SoapUI no menu Project crie um New SOAP Project
    1. Insira um nome: Processos RM
    2. Informa a Initial WSDL http://localhost:8051/wsProcess/MEX?wsdl
    3. No projeto criado navegue até RM_IwsProcess → ExecuteWithXmlParams. Clique com o botão direito sobre e escolha New Request. Dê um nome a ela e clique em OK
    4. Será mostrado um envelope. Na tag ProcessServerName informe a classe de processo copiada no item 5.d FinAVPData.
    5. Na tag strXmlParams informe a seguinte string: <![CDATA[****]]>
    6. Substitua os asteriscos da string acima pelo XML que salvou no item 5.d
    7. Preencha a autorização, navegando no menu. Para isso, vá em Auth →  Add New Authorization → Basic, insira suas credenciais e clique na opção "Authenticate pre-emptively". Por fim, execute a chama para testar.

Image Added

h. Na janela a direita deve ser retornado o valor 1 se houve sucesso. 

                                                                                                  Image Added

7. Após conseguir êxito na chamada você já tem tudo que necessita para criar sua atividade.

Expandir
titleConfiguração no TestFlow
    1. Acesse o TestFlow em Atvidades → Serviços → Soap e clique no sinal de  (mais) para incluir um novo registro.
    2. Preencha um nome que descreva sua Atividade e preencha o grupo e as permissões de acesso.
    3. Informe a versão desejada e uma descrição detalhada pela qual qualquer um que editar a Atividade consiga entender seu propósito. Informe também qual será o comportamento no caso de ocorrer erro de execução.

8. Clique no botão RECUPERAR OPERAÇÕES, informe o servidor no qual o Agent do TestFlow está sendo executado. Informe a URL do WebService o Host do RM. http://localhost:8051/wsProcess/MEX?wsdl.

Clique em RECUPERAR OPERAÇÔES para que os métodos do WebService sejam apresentados.Image Added9. Clique em RM_IwsProcess para expandir os métodos.

    1. Escolha o método ExecuteWithXmlParams e clique no sinal de (mais) e uma requisição será criada do lado direito da tela. Após isso, expanda-a.

Image Added

    1. Dos campos que já são apresentados preenchidos o único a ser editado é o Soap Endpoint.
    2. Altere a URL, substituindo o nome de máquina que aparecer por LOCALHOST. Desta forma sua requisição irá executar em qualquer máquina e não somente na que foi apresentada.
    3. Informe a descrição de sua requisição. Isto é útil caso sejam criadas mais de uma requisição na mesma Atividade.
    4. Escolha o código de retorno. Para operações de inserção geralmente o código retornado é 201 (Created), porém isto depende muito de quem codificou a chamada. Pelo SoapUi dá para saber. qual é ao executar a chamada. No caso do nosso exemplo é 200.Image Added
    5. Na aba MENSAGEM cole o envelope de requisição que foi criado no SoapUI. Copie todo o XML e cole na área de edição.
    6. Na aba AUTENTICAÇÃO, informe o usuário e senha para execução da chamada. É o mesmo usuário que você utiliza para acessar o RM. O campo domínio não é obrigatório.
    7. Na aba AÇÕES, você pode testar sua requisição ou deletar se for necessário.Image Added

...

Saiba mais

Dica
As mensagens SOAP são baseadas em XML e possuem uma estrutura rígida que inclui um envelope, cabeçalhos opcionais e um corpo. Esta estrutura permite uma comunicação padronizada e extensível.
Dica

Pelo TestFlow, é possível testar sua requisição SOAP antes de ser incluída em um projeto de teste.

Dica

É possível definir variáveis de ambiente para execução das atividades SOAP.

FAQ

Informações

P: O que é preciso para configurar meu ambiente para testar WebServices?

R: O Agent deve estar em execução como administrador, o Host do RM deve estar em execução e seu arquivo de configuração deve conter às keys necessárias para o seu uso.

P: Qual é o papel do SoapUI neste processo?

R: O SoapUI é utilizado para criar e testar requisições SOAP, ajudando a identificar métodos e a estruturar o XML necessário para incluir registros no sistema RM.

P: A minha atividade apresentou o seguinte erro: Erro na chamada do método ExecuteWithXmlParams. The remote server returned an error: (401) Unauthorized. O que fazer?

R: Usuário utilizado para login inválido ou vencido. 

P: A minha atividade apresentou o seguinte erro: There is an error in XML document (0, 0). O que fazer?

R: A chamada webservice aponta para uma máquina específica. Para isso, edite o campo Soap Endpoint e aponte a chamada para LOCALHOST

Informações

P: Como posso garantir que meu Caso de Teste seja eficaz?
R: Para garantir a eficácia do caso de teste, certifique-se de que ele cubra todos os cenários possíveis, incluindo casos de uso críticos, exceções e integrações com outros sistemas.

P: Por que devo usar um padrão de nomenclatura para o Nome do Caso de Teste?

R: Um padrão de nomenclatura facilita a identificação rápida e clara do objetivo do caso de teste, tornando a organização e a busca mais eficientes.

P: O que acontece com as Permissões quando um Projeto de Teste é associado?
R: Se um projeto de teste for associado, as permissões do projeto sobreporão as do caso de teste. Caso a associação seja desfeita, as permissões originais do caso de teste serão restauradas.

P: Quais são os desafios comuns ao criar e manter Casos de Teste?
R: Alguns desafios comuns incluem manter os casos de teste atualizados conforme o software evolui, garantir cobertura completa de testes e ajustar casos de teste conforme novos requisitos são adicionados ou alterados.