Testes de Web Services Com a ferramenta SoapUI

Introdução

SoapUI é uma ferramenta open source escrita em Java cuja principal função é consumir e testar Web Services. Ao nos depararmos com a necessidade de conectar nosso sistema a um web service, ou quando nós somos os desenvolvedores deste web service e precisamos testar o serviço a maneira mais rápida e descomplicada de realizar estes testes é utilizando o SoapUI.

Nos sistemas que trabalhei quando realizei a integração com web service da Nota Fiscal de Serviços Eletrônica(NFS-e) ou quando fiz integração com o web service dos correios utilizei o SoapUI para testar se o serviço estava disponível e para criar casos de uso do serviço onde simplesmente eu preenchia o XML de envio com as informações que precisava e o SoapUI me trazia o retorno do web service para análise.

Onde encontrar o SoapUI ?

Site do Projeto SoapUI

Após instalar e executar a abrir o SoapUI siga os passos abaixo para realizar os testes:

Criando um novo projeto

Para iniciar a utilização do SoapUI, você deverá criar um novo projeto. Para tal tarefa, você deverá clicar no menu “File>New WSDL Project”, como pode ser visto na figura abaixo. O SoapUI abrirá um diálogo solicitando o nome do novo projeto e o endereço WSDL do projeto.

Tela para criar um novo projeto de teste de web service na ferramenta SoapUI

Tela para criar um novo projeto de teste de web service na ferramenta SoapUI

Você precisa ter o endereço do WSDL do web service, no nosso caso iremos utilizar o web service dos correios
para consulta de prazos e preços de encomendas:
http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?wsdl

Você deve colocar o endereço do WSDL na tela New SoapUI Project conforme imagem abaixo:

Tela de criação de um novo projeto de web service

Tela de criação de um novo projeto de web service

Após colocar o nome do projeto e o endereço WSDL do web service clique em OK, será feita a importação do WSDL e irá montar o projeto de teste com todos os métodos disponíveis no web service.

Tela de importação do web service dos correios na ferramenta de testes SoapUI

Tela de importação do web service dos correios na ferramenta de testes SoapUI

Depois de montado o projeto, na lista de métodos do web service, selecione o método que deseja, no nosso caso o método CalcPrecoPrazo, clique no sinal (+) para expadir a lista e clique duas vezes no item Request conforme imagem abaixo:

Tela para abrir o método CalcPrecoPrazo

Tela para abrir o método CalcPrecoPrazo

Após clicar no item Request irá abrir uma tela o SoapUI criará uma Requisição Default (Request 1) para a operação

Instrução XML para operação Request criado pelo SoapUI

Instrução XML para operação Request criado pelo SoapUI

O SoapUI irá colocar uma interrogação ( ? ) em cada campo que deverá ser preenchido, você deve preenche esses campos com as informações conforme exemplo abaixo:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:CalcPrecoPrazo>
         <tem:nCdEmpresa>045684</tem:nCdEmpresa>
         <tem:sDsSenha>45685427</tem:sDsSenha>
         <tem:nCdServico>40010</tem:nCdServico>
         <tem:sCepOrigem>01311200</tem:sCepOrigem>
         <tem:sCepDestino>37900000</tem:sCepDestino>
         <tem:nVlPeso>10</tem:nVlPeso>
         <tem:nCdFormato>1</tem:nCdFormato>
         <tem:nVlComprimento>16</tem:nVlComprimento>
         <tem:nVlAltura>2</tem:nVlAltura>
         <tem:nVlLargura>11</tem:nVlLargura>
         <tem:nVlDiametro>16</tem:nVlDiametro>     
         <tem:sCdMaoPropria>S</tem:sCdMaoPropria>
         <tem:nVlValorDeclarado>10</tem:nVlValorDeclarado>      
         <tem:sCdAvisoRecebimento>S</tem:sCdAvisoRecebimento>
      </tem:CalcPrecoPrazo>
   </soapenv:Body>
</soapenv:Envelope>
Exemplo de chamada ao web service dos correios usando a ferramenta de testes SoapUI

Exemplo de chamada ao web service dos correios usando a ferramenta de testes SoapUI

Feito isso, clique no botão submite request no canto superior esquerdo da janela do centro onde esta a instrução request conforme imagem abaixo:

Tela de teste do web service dos correios

Tela de teste do web service dos correios

O SoapUI irá enviar uma requisição ao web service e o retorno do web service sera apresentado na tela direita:

Tela de envio de requisição ao web service de calculo de frete dos correios usando a ferramente de testes SoapUI

Tela de envio de requisição ao web service de calculo de frete dos correios usando a ferramente de testes SoapUI