sexta-feira, 25 de julho de 2014

SoapUI - Ferramenta para Open Source para consumir Web Services


Neste artigo irei abordar o uso desta ferramenta Open-Source para utilização junto com Web Services. SoapUI é uma solução gratuita e com uma interface gráfica muito intuitiva permitindo rapidamente consumir e testar Web Services. Para fins de curiosidade, ela foi escrita em Java e é baseada em XML e HTTP, cuja principal função é disponibilizar serviços interativos na WEB podendo ser acessados por qualquer outra aplicação, independente de plataforma ou linguagem. Por exemplo, podemos criar um Web Service em Delphi, .Net, Java ou até mesmo utilizar um serviço pronto na internet que esta ferramenta nos proporcionará os testes com os resultados necessários facilitando todo o processo de criação e depuração por meio de uma interface gráfica agradável e de fácil manuseio. A seguir podemos citar umas das principais 
características.

Principais Características

- Software de fácil manuseio;
- A Importação utilizando o protocolo WSDL é demonstrada como uma árvore hierárquica para uma melhor visualização;
- Gerencia um número ilimitado de requisições SOAP;
- Geração automática de “Requests” do “Schema” associado;
- Permite realização de testes funcionais e de cargas;
- Formatação automática do ambiente;
- Suporta expressões XPATH, entre outras...

Requisitos do Sistema

É importante lembrar que esta ferramenta é multi-plataforma, ou seja, podemos utilizá-la em qualquer Sistema Operacional. Como temos uma maioria de usuários em nosso suporte técnico iremos informar apenas os requisitos para utilização junto com o Windows.
- 1 GHz ou superior processador de 32-bit ou 64-bit;
- 512 MB de RAM;
- 200MB de espaço em disco para instalação;
- Windows XP ou mais recente.

Download

Para realização do download entre no site:

www.soapui.org

Na região superior localize no Menu o descritivo “Downloads” e escolha “Download SoapUI” (No caso estamos trabalhando com a versão Freeware). Seremos redirecionados para próxima página que é onde finalizamos o processo clicando no botão “Download”.  A versão que está disponível para este artigo até o momento é a versão “4.6.1” em um tamanho total de aproximadamente 150mb. Ver Figura 01.

Figura 01: Download do Software.

Instalação

A instalação é simples, o clássico “next, next, next and install”. A seguir a tela indicando que a instalação foi completada com sucesso e em seguida devemos executar o programa. Ver Imagem 02.

Figura 02: Concluindo a Instalação.

Observação: Geralmente no primeiro acesso poderá ocorrer o bloqueio pelo Firewall, basta permitir o acesso para prosseguir.

A tela inicial poderá ser conferida conforme a Figura 03.

Figura 03: Tela de Boas Vindas.

Criando o Exemplo

Para inicializar deveremos clicar em “File/New SOAP Project” como pode ser visto na Imagem 04. Em “Project Name” defina como “ConsultaCep” (Será o nome do projeto em questão) e em “Initial WSDL” usaremos um Web Service de consulta de ceps, o mesmo abordado em artigos anteriores. Veja abaixo o endereço completo.


Figura 04: Criando um novo Projeto.

A opção “Create Request”, que significa para criarmos solicitações, deverá estar checada, pois deveremos criar solicitações para todas as operações deste Web Service. Em “Create TestSuite” iria criar uma suíte de testes para o WSDL importado, já o “Relative Paths” armazenaria todos os caminhos dos arquivos relacionados ao projeto. Portanto deixaremos apenas a primeira opção selecionada. Clique em Ok para darmos início ao exemplo.
Teremos uma estrutura de árvore idêntica ao da Imagem 05, contendo todos os serviços listados seguindo os métodos do Web Service em questão.
Figura 05: Navegador do Projeto.

Para efeitos didáticos e de entendimento, o exemplo deste Web Service apresentado daqui por diante irá nos retornar o logradouro a partir do CEP ou o CEP a partir do Logradouro. Possuirá alguns métodos como “ObterCEP”, “ObterCEPAuth”, “ObterLogradouro”, “ObterLogradouroAuth” e “ObterVersao”.

Usaremos o método “ObterLogradouro”,  para isto clique no mesmo para expandir e com o botão direito sobre “Request” escolha “Show Request Editor”. Ver Imagem 06.

Figura 06: Solicitando o Web Service.

Automaticamente a ferramenta irá gerar um XML, o mesmo sendo responsável por invocar o método que desejamos, Veja a listagem 01.

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:byjg="urn:http://www.byjg.com.br">
<soapenv:Header/>
   <soapenv:Body>
   <byjg:obterLogradouro soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <cep xsi:type="xsd:string">?</cep>
      </byjg:obterLogradouro>
</soapenv:Body>
</soapenv:Envelope>

Listagem 01: Código XML para chamar o Método ObterLogradouro.
Devemos-nos focar na tag:

<cep xsi:type="xsd:string">?</cep>

Aqui é onde informamos o parâmetro do método do Web Service, no nosso caso temos apenas um parâmetro do tipo string.
Exemplo:

<cep xsi:type="xsd:string">18730000</cep>

Na região superior esquerda escolha a opção “Submit request to specified endpoint URL” para termos um retorno. Ver Imagem 07.
Figura 07: Executando.

Caso não ocorra nenhum erro, o resultado será outro XML idêntico ao da listagem 02.

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.byjg.com.br" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:obterLogradouroResponse>
        <return xsi:type="xsd:string">VOCE PRECISA ESTAR  AUTENTICADO. MAIORES INFO ACESSE O SITE, Centro, Itaí, SP,</return>
      </ns1:obterLogradouroResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Listagem 02: Código de retorno.
Devemos-nos focar no código abaixo, onde serão retornados os dados.

        <return xsi:type="xsd:string">VOCE PRECISA ESTAR  AUTENTICADO. MAIORES INFO ACESSE O SITE, Centro, Itaí, SP,</return>

A figura 08 é a interface básica para testar o acesso o Web Service.

Figura 08: Interface de testes.

Outras Funcionalidades

Test Case

Significa “Caso de Teste”. Esta funcionalidade nos proporciona realizar testes com as requisições, para isto clique com o botão direito sobre a requisição Padrão criada no tópico anterior e escolha “Add to TestCase”. Aparecerá uma janela para definição de um nome da “Test Suite” e o nome do “Test Case”. (recomendo deixar como “TestSuite1” e “TestCase1” )
Uma “Test Suite” serve para agrupar um conjunto de “Test Cases” com características em comum. Dentro de cada “Test Case” teremos um ou mais “Test Steps”. Cada “Test Step” representa uma requisição que será enviada ao Web Service.
Ver Figura 09.

Figura 09: “Test Case”.

Asserções

Basicamente, as asserções são validações que são feitas para confirmar se a resposta de uma requisição contém as informações esperadas. Se as asserções falharem, o “Test Step” e o “Test Case” indicarão um status de falha.
Podemos criar uma asserção por meio da janela "Test Step Editor", podendo também definir asserções (ou verificações) que serão executadas contra a resposta da requisição. Outra dica para adicionar uma asserção, seria clicando com o botão direito do mouse na aba "Assertions" localizada na parte inferior da janela "Test Step Editor". Ver Figura 10.

Figura 10: Adicionado Asserções.

O SoapUI oferece cinco tipos diferentes de asserções (ou verificações) para validar a resposta de uma requisição, sendo:

Schema Compliance: Valida as respostas das requisições contra o xml-schema definido no WSDL.
Simple Contains: Verifica a existência de uma string nas respostas das requisições.
Simple NotContains: Verifica a não existência de uma string nas respostas das requisições.
SOAP Fault: Verifica se a resposta da requisição não contém um soap-fault.
XPath Match: Compara o conteúdo das respostas das requisições contra uma expressão XPATH.

Referências

www.soapui.org

Conclusão
Muitas vezes nós programadores nos deparamos com situações que devemos consumir um web Service que nunca vimos ou até mesmo em pouco tempo hábil. Esta ferramenta se encaixa perfeitamente nestes casos, reduzindo e muito o tempo de testes para este serviço em questão. O propósito deste artigo é de demonstrar um pouco das funcionalidades desta ferramenta gratuita. Explorei suas principais características a fim de proporcionar futuras adequações conforme achem necessário.
Um forte Abraço, até o mês que vem!



Nenhum comentário:

Postar um comentário