Tutorial sul test dei servizi Web: come eseguire il test? Impara con l'esempio

Sommario:

Anonim

Cos'è WebService?

I Web Services sono il meccanismo o il mezzo di comunicazione attraverso il quale due applicazioni / macchine si scambieranno i dati indipendentemente dalla loro architettura sottolineata e dalla tecnologia.

Che cos'è il test del servizio Web?

Il test dei servizi Web è un tipo di test del software che convalida i servizi Web. Lo scopo del test dei servizi Web è controllare la funzionalità, l'affidabilità, le prestazioni e la sicurezza di un'API (Application Program Interface). Il test del servizio Web è simile al test di unità in alcuni casi. Puoi testare un servizio Web manualmente o creare il tuo codice di automazione o utilizzare uno strumento di automazione standard come Postman.

Perché è necessario WebService?

In generale, le applicazioni software sono sviluppate per essere consumate dagli esseri umani, dove una persona invia una richiesta a un servizio software che a sua volta restituisce una risposta in formato leggibile dall'uomo.

Nell'era moderna della tecnologia, se si desidera creare un'applicazione software, non è necessario creare tutto da zero. Sono disponibili molti servizi già pronti che puoi collegare alla tua applicazione e puoi iniziare a fornire quei servizi nella tua applicazione.

Ad esempio, si desidera visualizzare le informazioni sulle previsioni del tempo che non è necessario raccogliere, elaborare e visualizzare i dati nella propria applicazione. È possibile acquistare i servizi dalle persone che sono già ben consolidate nel trattamento e nella pubblicazione di questo tipo di dati.

I servizi Web ci consentono di eseguire questo tipo di implementazioni.

Ad esempio, considera il seguente WebService

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

Dà valore azionario per un'azienda.

Troviamo il prezzo delle azioni per Google (Simbolo: GOOG)

L'XML di risposta fornisce il prezzo delle azioni.

Questo WebService può essere chiamato da un'applicazione software utilizzando il protocollo SOAP o HTTP.

Protocolli di servizio Web

I servizi Web possono essere implementati in modi diversi, ma i due seguenti sono gli approcci di implementazione più diffusi.

  1. SOAP (Simple Object Access Protocol)
  2. REST (Representational State Transfer architecture)

SAPONE

SOAP è un protocollo standard definito dallo standard W3C per l'invio e la ricezione di richieste e risposte di servizi Web.

SOAP utilizza il formato XML per inviare e ricevere la richiesta e quindi i dati sono dati indipendenti dalla piattaforma. I messaggi SOAP vengono scambiati tra le applicazioni del provider e l'applicazione di ricezione all'interno delle buste SOAP.

Poiché SOAP utilizza il semplice protocollo di trasporto http, i suoi messaggi non vengono bloccati dai firewall.

RIPOSO

RIPOSO significa Trasferimento di stato rappresentativo; è un'architettura che generalmente gira su HTTP. Lo stile REST enfatizza le interazioni tra client e servizi, che sono migliorate da un numero limitato di operazioni. REST è un'alternativa a SOAP (Simple Object Access Protocol) e invece di utilizzare XML per la richiesta, REST utilizza in alcuni casi un URL semplice. A differenza di SOAP, le applicazioni RESTFUL utilizzano intestazioni di compilazione HTTP per trasportare le meta-informazioni.

Esistono vari codici che REST utilizza per determinare se l'utente ha accesso all'API o meno, come il codice 200 o 201 indica un'interazione riuscita con il corpo della risposta mentre 400 indica una richiesta errata o l'URI della richiesta non corrisponde alle API nel sistema. Tutti i parametri della richiesta API e i parametri del metodo possono essere inviati tramite variabili POST o GET .

L'API Rest supporta il formato XML e JSON per il test dell'API WebServices. Di solito è preferito per le app per dispositivi mobili e web in quanto rende il lavoro delle app più veloce e fluido

WSDL

WSDL (Web Services Description Language) è un linguaggio basato su XML che verrà utilizzato per descrivere i servizi offerti da un servizio web.

WSDL descrive tutte le operazioni offerte dal particolare servizio web nel formato XML. Definisce anche come i servizi possono essere chiamati, cioè quale valore di input dobbiamo fornire e quale sarà il formato della risposta che genererà per ogni tipo di servizio.

Come testare un servizio Web?

Per testare il servizio web, puoi

  1. Prova manualmente
  2. Crea il tuo codice di automazione
  3. Usa uno strumento di automazione standard come SoapUI.

Il test dell'automazione dei servizi Web prevede i seguenti passaggi:

  1. Comprendi il file WSDL
  2. Determina le operazioni fornite da un particolare servizio web
  3. Determina il formato della richiesta XML che dobbiamo inviare
  4. Determina il formato XML della risposta
  5. Utilizzando uno strumento o scrivendo un codice per inviare la richiesta e convalidare la risposta

Supponiamo di voler testare il servizio web che fornisce lo strumento di conversione di valuta. Sarà l'attuale tasso di conversione tra le diverse valute dei paesi. Questo servizio possiamo utilizzare nelle nostre applicazioni per convertire i valori da una valuta all'altra.

Ora diamo un'occhiata ai passaggi precedenti

Passaggio da 1 a 4: comprensione di WSDL e determinazione delle operazioni e dei formati XML

Il file WSDL di Currency Convertor può essere visto @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) che fornirà le informazioni sui metodi del servizio web Currency Convertor che supporterà, il parametro che dobbiamo passare e il tipo di parametri

… eccetera

Passaggio 5: utilizzo di uno strumento o scrittura di codice per inviare la richiesta e convalidare la risposta

Sono disponibili molti strumenti di test WebService per testare il servizio Web SOAP. SoapUI è uno dei popolari strumenti API che ci aiuterà a testare i servizi web SOAP. In effetti è possibile utilizzare qualsiasi linguaggio di programmazione in grado di inviare la richiesta XML all'applicazione del provider di servizi Web tramite http e in grado di analizzare e convalidare l'XML di risposta rispetto al risultato atteso. In questo tutorial sul test dei servizi Web, testeremo il servizio Web

  1. Utilizzando Java
  2. Utilizzando SoapUI

PARTE 1) Test del servizio web utilizzando l'API Apache Axis2 (Java).

Generalmente il servizio web accetta la richiesta e invia la risposta in formato XML.

Il progetto API Apache Axis2 è un'API di implementazione Java, che verrà utilizzata per creare i servizi Web sia per il lato server (fornitore di servizi) che per il lato client (consumatore di servizi).

Axis2 è in grado di inviare messaggi SOAP e riceve ed elabora i messaggi SOAP. Possiamo scrivere un piccolo programma Java utilizzando l'API per creare il servizio web. Axis2 genererà il WSDL dal programma Java che verrà utilizzato per comunicare i servizi offerti dal servizio web. Possiamo utilizzare lo stesso Axis2 per generare la classe Java (stub) dal file WSDL che possiamo utilizzare come programma client per generare la richiesta del servizio web, per inviare la richiesta all'endpoint del servizio e per elaborare la risposta.

  1. Fondamentalmente creeremo un semplice programma Java in cui istanzeremo la classe stub.
  2. Usando lo stub invocheremo il metodo di richiesta passando tutte le informazioni richieste.
  3. Il programma Stub convertirà tale richiesta in formato di richiesta XML e le invierà l'endpoint del servizio che leggerà la richiesta ed elaborerà la richiesta e invierà la risposta in formato XML.
  4. La risposta XML verrà convertita nella classe Java dallo stub e restituita al programma effettivo.

Diamo un'occhiata ai passaggi precedenti in dettaglio

Passaggio a) Scarica l'API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi e imposta la variabile di ambiente "AXIS2_HOME"

Passaggio b) Creare una cartella per conservare tutti gli artefatti generati

Es: C: \ Axis \ Projects \ CurrencyConverter

Passaggio c) Apri il prompt dei comandi e vai alla struttura delle cartelle in cui desideri generare gli artefatti ed esegui il seguente comando che genererà gli stub

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

Passaggio d) Una volta eseguito correttamente il comando, vedrai la cartella con i file richiesti.

Passaggio e) Nel passaggio successivo di questo tutorial sul test dei servizi Web, dobbiamo creare il programma client, attraverso il quale invieremo la richiesta effettiva utilizzando gli stub generati. Apri l'eclissi e crea il nuovo progetto Java e seleziona la cartella che abbiamo creato sopra.

Passaggio f) Aggiungi tutti i jar relativi ad axis2 al percorso di compilazione del progetto, che sarà nella cartella lib della cartella del software axis2

(ad esempio: C: \ Axis \ axis2-1.6.2 \ lib)

Passaggio g) Creare una nuova classe Java (es: Client.Java) e istanziare l'oggetto stub. Utilizzando l'oggetto stub possiamo chiamare tutti i metodi supportati del particolare WebService.

Programma Client.Javapacchetto 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 []) {provare {// Crea l'oggetto stub passando l'URL dell'endpoint del servizioCurrencyConvertorStub stub = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate è la classe che dobbiamo usare per menzionare la valuta da e a// L'oggetto ConversionRate sarà il parametro per l'operazione conversionRateConversionRate conversionRate = new ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Crea l'oggetto ConversionRateResponse, che verrà utilizzato per catturare la risposta// chiama il servizio conversionRate utilizzando l'oggetto stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Possiamo utilizzare l'oggetto conversionRateResponse per recuperare la risposta del servizio ConversionRateSystem.out.println ("Tasso di conversione da INR a USD: + conversionRateResponse.getConversionRateResult ());} catch (eccezione e) {e.printStackTrace ();}}}

PARTE 2) Come eseguire il test utilizzando il servizio Web SoapUI

In SoapUI

  1. Vai a File> Nuovo progetto Soap
  2. Immettere il nome del progetto e la posizione dell'URI WSDL
  3. Fare clic su OK
  1. Espandi la prima richiesta e fai doppio clic su "Request1". Visualizzerà la richiesta SOAP nel formato XML.
  2. Immettere Da valuta e A valuta
  3. Fare clic sul pulsante di invio
  4. L'XML di risposta verrà visualizzato nel riquadro a destra.

Come si può concludere, l'utilizzo di strumenti di test WebService come SoapUI accelera il lavoro di test dell'automazione dei servizi Web. Quindi SoapUi sarà al centro del nostro apprendimento nei tutorial successivi.

Sommario

  • Le applicazioni software comunicano e scambiano dati tra loro utilizzando un WebService
  • SOAP e REST sono 2 protocolli popolari per creare un WebService
  • SOAP supporta lo scambio di dati basato su XML
  • REST supporta XML, Json o scambio di dati in URL semplice per WebServices API Testing.
  • WSDL è un linguaggio basato su XML che verrà utilizzato per descrivere i servizi offerti da un servizio web. SOAP viene definito utilizzando WSDL.
  • Per testare WebService puoi
    • Crea il tuo codice. Ad esempio, utilizza l'API Axis2 per Java
    • Utilizza strumenti di automazione del test WebService come SoapUI
  • Strumenti di automazione come SoapUI faranno ripartire i tuoi sforzi di test dell'automazione dei servizi Web, richiederanno meno sforzi di codifica rispetto alla creazione del tuo codice utilizzando l'API Axis2

FAQ

Qual è la differenza tra WebService e WebAPI?

Servizio web

API Web

  • Definito da W3C, tutte le comunicazioni e lo scambio di dati si basano su XML
  • La comunicazione e lo scambio di dati tramite API Web possono essere XML, JSON o semplici dati
  • Ha degli standard definiti: WSDL
  • Nessuno standard definito
  • Non è possibile comprimere i dati ma è possibile comprimere la richiesta HTML
  • Puoi comprimere i dati
  • Esempio: SOAP
  • Esempio: REST

Ulteriori informazioni sui test delle API Web

Questo tutorial sul test dei servizi Web è stato reso possibile grazie ai contributi del Sig. Narender Reddy Nukala