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 por meio do qual dois aplicativos / máquinas trocarão os dados, independentemente de sua arquitetura e tecnologia subjacentes.

O que é o teste de serviço da Web?

Teste de serviços da web é um tipo de teste de software que valida os serviços da web. O objetivo do Web Services Testing é 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 serviço da Web manualmente ou criar seu próprio código de automação ou usar uma ferramenta de automação pronta para uso, como o Postman.

Por que o WebService é necessário?

Em geral, os aplicativos de software são desenvolvidos para serem consumidos por seres humanos, 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 em 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 para coletar, processar e renderizar os dados em seu aplicativo. Você pode comprar 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)

O XML de resposta fornece o preço da ação.

Este WebService pode ser chamado por um aplicativo de software usando o protocolo SOAP ou HTTP.

Protocolos de serviço da web

Os serviços da Web podem ser implementados de maneiras diferentes, mas os dois a seguir são as abordagens de implementação populares.

  1. SOAP (Simple Object Access Protocol)
  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ço da web.

SOAP usa o Formato XML para enviar e receber o pedido e, portanto, os dados são dados independentes da plataforma. As mensagens SOAP são trocadas entre os aplicativos do provedor e o aplicativo de recebimento nos envelopes SOAP.

Como o SOAP usa 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 sobre 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, o REST usa URL simples em alguns casos. Ao contrário do SOAP, os aplicativos RESTFUL usam HTTP compilado em cabeçalhos para transportar meta-informações.

Existem vários códigos que 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 inválida 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 por meio de qualquer PUBLICAR ou PEGUE variáveis.

Rest API suporta os formatos XML e JSON para WebServices API Testing. Geralmente é preferido para aplicativos móveis e da web, pois torna o aplicativo mais rápido e suave

WSDL

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

WSDL descreve todas as operações oferecidas pelo serviço da Web específico no formato XML. Também define como os serviços podem ser chamados, ou seja, qual valor de entrada temos que fornecer e qual será o formato da resposta que vai gerar para cada tipo de serviço.

Como testar um serviço da Web?

Para testar o serviço 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 determinado serviço da web fornece
  3. Determine o formato do pedido XML que precisamos enviar
  4. Determine o formato XML da resposta
  5. Usando uma ferramenta ou escrevendo código para enviar a solicitação e validar a resposta

Suponha que queremos testar o serviço da web que fornece facilidade de conversão de moeda. Será as taxas de conversão atuais entre as moedas de diferentes países. Podemos usar este serviço em nossos aplicativos para converter os valores de uma moeda para outra moeda.

Agora vamos dar uma olhada nas etapas acima

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

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



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

Existem várias ferramentas de teste de WebService disponíveis para testar o serviço da web SOAP. SoapUI é um dos mais populares Ferramenta API 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 Web Services, testaremos o WebService

  1. Usando Java
  2. Usando SoapUI

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

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

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

O Axis2 é capaz de enviar mensagens SOAP e Recebe e Processa as mensagens SOAP. Podemos escrever um pequeno programa Java usando a API para criar o serviço da web. O Axis2 irá gerar o WSDL do programa Java que será usado para comunicar os serviços oferecidos pelo serviço da web. Podemos usar o mesmo Axis2 para gerar a classe Java (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 terminal de serviço e processar a resposta.

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

Vejamos as etapas acima em detalhes

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

Etapa b) Crie uma pasta para manter todos os artefatos gerados

Ex: C: Axis Projects CurrencyConverter

Etapa c) Abra o prompt de comando e navegue até a estrutura de pasta 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

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

Etapa e) Na próxima etapa deste tutorial de Teste de Web Services, 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 projeto Java e selecione a pasta que criamos acima.

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

(por ex: C: Axis axis2-1.6.2 lib)

Etapa g) Criar uma nova classe Java (ex: Client.Java) e instanciar o objeto stub. Usando o objeto stub, podemos chamar todos os métodos suportados do WebService específico.



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 {// Crie o objeto stub passando o URL do ponto final do serviço CurrencyConvertorStub stub = new CurrencyConvertorStub ('http://www.webservicex.net /CurrencyConvertor.asmx '); // ConversionRate é a classe que devemos usar para mencionar a moeda de e para // O objeto ConversionRate será o parâmetro para a operação conversionRate ConversionRate conversionRate = new ConversionRate (); conversionRate.setFromCurrency (Currency.USD); conversionRate.setToCurrency (Currency.INR); // Criar o objeto ConversionRateResponse, que será usado para capturar a resposta // chamar o serviço conversionRate usando o objeto stub ConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate); // Podemos usar o objeto conversionRateResponse para recuperar a resposta do serviço ConversionRate System.out.println ('Taxa de conversão de INR para USD:' + conversionRateResponse.getConversionRateResult ()); } catch (Exception e) {e.printStackTrace (); }}}

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

Em SoapUI

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

  1. Expanda a primeira solicitação e clique duas vezes em 'Solicitação1'. Ele exibirá a solicitação SOAP no formato XML.
  2. Insira a partir da moeda e até a moeda
  3. Clique no botão enviar
  4. O XML de resposta será exibido no painel direito.

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

Resumo

  • Os aplicativos de software se comunicam e trocam dados entre si usando um serviço da web
  • 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 WebServices API Testing.
  • WSDL é uma linguagem baseada em XML que será usada para descrever os serviços oferecidos por um serviço da web. SOAP é definido usando WSDL.
  • Para testar o WebService, você pode
    • Crie seu próprio código. Por exemplo, use Axis2 API para Java
    • Use ferramentas de automação de teste de WebService como SoapUI
  • Ferramentas de automação como SoapUI darão início aos 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

Qual é a diferença entre WebService e WebAPI?

Serviço de internet

API da web

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

Aprender mais sobre Teste de API da Web

Este tutorial de Teste de Serviços da Web é possível com as contribuições do Sr. Narender Reddy Nukala