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...
- 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.
- 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>
<soapenv:Body>
<byjg:obterLogradouro soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<cep xsi:type="xsd:string">?</cep>
</byjg:obterLogradouro>
</soapenv:Body>
</soapenv:Envelope>
</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/">
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.
<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.
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.
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
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