Tutorial de teste de serviços da Web: como testar? Aprenda com o exemplo

O que é WebService?

Web Services é o mecanismo ou meio de comunicação através do qual duas aplicações/máquinas trocarão dados independentemente de sua arquitetura subjacente e da tecnologia.

O que é teste de serviço da Web?

Teste de serviços da web é um tipo de teste de software que valida serviços da Web. O objetivo do teste de serviços da Web é verificar a funcionalidade, confiabilidade, desempenho e segurança de uma API (Application Program Interface). O teste de serviço da Web é semelhante ao teste de unidade em alguns casos. Você pode testar um Webservice manualmente ou criar seu próprio código de automação ou usar uma ferramenta de automação pronta para uso como Postman.

Por que o WebService é necessário?

Em geral, as aplicações de software são desenvolvidas para serem consumidas pelo ser humano, onde uma pessoa envia uma solicitação a um serviço de software que por sua vez retorna uma resposta em formato legível por humanos.

Na era moderna da tecnologia, se você deseja construir um aplicativo de software, não precisa construir tudo do zero. Existem muitos serviços prontos disponíveis que você pode conectar ao seu aplicativo e começar a fornecer esses serviços em seu aplicativo.

Por exemplo, você deseja exibir informações de previsão do tempo que não precisa coletar, processar e renderizar os dados em seu aplicativo. Você pode adquirir os serviços de pessoas que já estão bem estabelecidas no processamento e publicação desse tipo de dados.

Os serviços da Web nos permitem fazer esse tipo de implementação.

Como exemplo, considere o seguinte WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Dá valor às ações de uma empresa.

Vamos encontrar o preço das ações do Google (símbolo: GOOG)

Teste de serviço da Web

O XML de resposta fornece o preço das ações.

Teste de serviço da Web

Este WebService pode ser chamado por uma Aplicação de Software utilizando o protocolo SOAP ou HTTP.

Protocolos de serviço da Web

Os serviços da Web podem ser implementados de diferentes maneiras, mas as duas seguintes são as abordagens de implementação mais populares.

  1. SOAP (Protocolo Simples de Acesso a Objetos)
  2. REST (arquitetura de transferência de estado representacional)

SABÃO

SOAP é um protocolo padrão definido pelo padrão W3C para enviar e receber solicitações e respostas de serviços da web.

SOAP usa o Formato XML para enviar e receber a solicitação e, portanto, os dados são dados independentes de plataforma. As mensagens SOAP são trocadas entre os aplicativos provedores e os aplicativos receptores dentro dos envelopes SOAP.

Como o SOAP utiliza o protocolo de transporte http simples, suas mensagens não são bloqueadas pelos firewalls.

DESCANSO

REST significa Transferência de Estado Representacional; é uma arquitetura que geralmente roda em HTTP. O estilo REST enfatiza as interações entre clientes e serviços, que são aprimoradas por ter um número limitado de operações. REST é uma alternativa ao SOAP (Simple Object Access Protocol) e em vez de usar XML para solicitação, REST usa URL simples em alguns casos. Ao contrário do SOAP, os aplicativos RESTFUL usam cabeçalhos HTTP integrados para transportar metainformações.

Existem vários códigos que o REST usa para determinar se o usuário tem acesso à API ou não, como o código 200 ou 201 indica interação bem-sucedida com o corpo da resposta, enquanto 400 indica uma solicitação incorreta ou o URI da solicitação não corresponde às APIs no sistema. Todos os parâmetros de solicitação de API e parâmetros de método podem ser enviados via POST or ENTRE variáveis.

A API Rest oferece suporte aos formatos XML e JSON para testes de API de serviços Web. Geralmente é preferido para Mobile e aplicativos da web, pois faz com que o aplicativo funcione de maneira mais rápida e suave

wsdl

WSDL (Serviços Web Description Language) é uma linguagem baseada em XML que será usada para descrever os serviços oferecidos por um serviço web.

WSDL descreve todas as operações oferecidas por um serviço web específico no formato XML. Define também como os serviços podem ser chamados, ou seja, qual valor de entrada devemos fornecer e qual será o formato da resposta que irá gerar para cada tipo de serviço.

Como testar um serviço Web?

Para testar o serviço da web, você pode

  1. Teste manualmente
  2. Crie seu próprio código de automação
  3. Use uma ferramenta de automação pronta para uso como SoapUI.

O teste de automação de serviços da Web envolve as seguintes etapas -

  1. Entenda o arquivo WSDL
  2. Determine as operações que um serviço web específico fornece
  3. Determine o formato de solicitação XML que precisamos enviar
  4. Determine o formato XML da resposta
  5. Usando uma ferramenta ou escrevendo código para enviar solicitação e validar a resposta

Suponha que queiramos testar um serviço web que fornece facilidade de conversão de moeda. Serão as taxas de conversão atuais entre as moedas dos diferentes países. Podemos utilizar este serviço em nossas aplicações para converter os valores de uma moeda para outra moeda.

Agora vamos dar uma olhada nas etapas acima

Etapa 1 a 4: Entendendo WSDL e determinando operações e formatos XML

Moeda Convertor O arquivo WSDL pode ser visto @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) que dará as informações sobre a Moeda ConvertoOs métodos de serviço da web que ele suportará, o parâmetro que precisamos passar e o tipo de parâmetros… etc.

WSDL e determinação de operações e formatos XML

WSDL e determinação de operações e formatos XML

Etapa 5: usar uma ferramenta ou escrever código para enviar solicitação e validar a resposta

Existem muitas ferramentas de teste de WebService disponíveis para testar o serviço da web SOAP. SoapUI é um dos populares Ferramenta de API o que nos ajudará a testar os serviços da web SOAP. Na verdade, você pode usar qualquer linguagem de programação que seja capaz de enviar a solicitação XML para o aplicativo do provedor de serviços da Web através do http e capaz de analisar e validar o XML de resposta em relação ao resultado esperado. Neste tutorial de teste de serviços da Web, testaremos o WebService

  1. utilização Java
  2. Usando SoapUI

PARTE 1) Teste de WebService usando API Apache Axis2 (Java).

Geralmente o serviço web recebe a solicitação e envia a resposta no formato XML.

O projeto da API Apache Axis2 é um Java API de implementação, que será usada para criar os serviços Web tanto para o lado do servidor (provedor de serviços) quanto para o lado do cliente (consumidor de serviços).

O Axis2 é capaz de enviar mensagens SOAP e receber e processar as mensagens SOAP. Podemos escrever um pequeno Java programa usando a API para criar o serviço da web. Axis2 irá gerar o WSDL a partir de Java programa que será utilizado para comunicar os serviços oferecidos pelo serviço web. Podemos usar o mesmo Axis2 para gerar o Java classe (stub) do arquivo WSDL que podemos usar como um programa cliente para gerar a solicitação de serviço da web, para enviar a solicitação ao ponto final do serviço e para processar a resposta.

  1. Basicamente vamos criar um simples Java programa no qual instanciaremos a classe stub.
  2. Usando o stub invocaremos o método request passando todas as informações necessárias.
  3. O programa stub converterá essa solicitação em formato de solicitação XML e a enviará ao ponto final do serviço que lerá a solicitação, processará a solicitação e enviará a resposta em formato XML.
  4. A resposta XML será convertida em Java classe por stub e retornado ao programa real.

Vejamos as etapas acima em detalhes

Etapa a) Baixe a API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Defina a variável de ambiente 'AXIS2_HOME'

Teste de WebService usando API Apache Axis2 (Java)

Passo b) Crie uma pasta para guardar todos os artefatos gerados

Ex: C:\Axis\Projects\CurrencyConverter

Etapa c) Abra o prompt de comando e navegue até a estrutura de pastas onde deseja gerar os artefatos e execute o seguinte comando que irá gerar os stubs

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s

Teste de WebService usando API Apache Axis2 (Java)

Etapa d) Assim que o comando for executado com sucesso, você verá a pasta com os arquivos necessários.

Teste de WebService usando API Apache Axis2 (Java)

Etapa e) Na próxima etapa deste tutorial de Teste de Serviços Web, temos que criar o programa cliente, por meio do qual enviaremos a solicitação real usando os stubs gerados. Abra o eclipse e crie o novo Java projeto e selecione a pasta que criamos acima.

Teste de WebService usando API Apache Axis2 (Java)

Etapa f) Adicione todos os jars relacionados ao axis2 ao caminho de construção do projeto, que estará na pasta lib da pasta do software axis2

(por exemplo: C:\Axis\axis2-1.6.2\lib)

Teste de WebService usando API Apache Axis2 (Java)

Etapa g) Crie um novo Java classe (ex: Cliente.Java) e instanciar o objeto stub. Usando o objeto stub podemos chamar todos os métodos suportados de um WebService específico.

Teste de WebService usando API Apache Axis2 (Java)

Client.Java Program
package org.apache.axis2.currencyconvertor;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;

public class Client {
 public static void main(Java.lang.String args[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

PARTE 2) Como testar usando o serviço Web SoapUI

Em SoapUI

  1. Vá em Arquivo> Novo Projeto Soap
  2. Insira o nome do projeto e a localização do URI do WSDL
  3. clique em OK

Teste usando o serviço da Web SoapUI

  1. Expanda a primeira solicitação e clique duas vezes em 'Request1'. Ele exibirá a solicitação SOAP no formato XML.
  2. Insira a moeda inicial e a moeda final
  3. Clique no botão enviar
  4. O XML de resposta será exibido no painel do lado direito.

Teste usando o serviço da Web SoapUI

Como você pode concluir, o uso de ferramentas de teste de WebService como SoapUI agiliza seu esforço de teste de automação de serviços da Web. Conseqüentemente, o SoapUi será o foco de nosso aprendizado nos tutoriais seguintes.

Resumo

  • Aplicativos de software se comunicam e trocam dados entre si usando um WebService
  • SOAP e REST são 2 protocolos populares para criar um WebService
  • SOAP suporta troca de dados baseada em XML
  • REST suporta XML, Json ou troca de dados em URL simples para testes de API de WebServices.
  • WSDL é uma linguagem baseada em XML que será usada para descrever os serviços oferecidos por um serviço web. SOAP é definido usando WSDL.
  • Para testar o WebService você pode
    • Crie seu próprio código. Por exemplo, use a API Axis2 para Java
    • Use ferramentas de automação de testes de WebService como SoapUI
  • Ferramentas de automação como SoapUI impulsionarão seus esforços de teste de automação de serviços da Web e exigirão menos esforço de codificação em comparação com a criação de seu próprio código usando a API Axis2

Perguntas frequentes

Serviço de internet API da web
Definido pelo W3C, toda comunicação e troca de dados é baseada em XML A comunicação da API da Web e a troca de dados podem ser XML, JSON ou dados simples
Possui padrões definidos – WSDL Nenhum padrão definido
Você não pode compactar os dados, mas pode compactar a solicitação HTML Você pode compactar os dados
Exemplo: SOAP Exemplo: REST

Saiba mais sobre o Teste de API da Web

Este tutorial de teste de serviços da Web foi possível com as contribuições do Sr. Narender Reddy Nukala