Tutorial sul test dei servizi Web: come eseguire il test? Impara con l'esempio
Cos'è il WebService?
I servizi Web sono il meccanismo o il mezzo di comunicazione attraverso il quale due applicazioni/macchine si scambiano dati indipendentemente dalla loro architettura e tecnologia di base.
Cos'è il test dei servizi Web?
Test dei servizi Web è un tipo di test del software che convalida i servizi Web. Lo scopo del test dei servizi Web è verificare la funzionalità, l'affidabilità, le prestazioni e la sicurezza di un'API (Application Program Interface). In alcuni casi il test dei servizi Web è simile allo unit test. Puoi testare manualmente un servizio Web o creare il tuo codice di automazione o utilizzare uno strumento di automazione standard come Postman.
Perché è necessario il servizio Web?
In generale, le applicazioni software sono sviluppate per essere utilizzate 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 desideri 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 tali servizi nella tua applicazione.
Ad esempio, se desideri visualizzare le informazioni sulle previsioni del tempo di cui non è necessario raccogliere, elaborare e visualizzare i dati nella tua applicazione. Puoi acquistare i servizi da persone già affermate nell'elaborazione e 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
Fornisce valore azionario per una società.
Troviamo il prezzo delle azioni di Google (simbolo: GOOG)
La risposta XML fornisce il prezzo delle azioni.
Questo servizio Web può essere richiamato da un'applicazione software utilizzando il protocollo SOAP o HTTP.
Protocolli di servizi Web
I servizi Web possono essere implementati in diversi modi, ma i due approcci di implementazione più diffusi sono i seguenti.
- SOAP (protocollo di accesso semplice agli oggetti)
- Architettura REST (Representational State Transfer)
SOAP
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 ricevente all'interno degli inviluppi SOAP.
Poiché SOAP utilizza il semplice protocollo di trasporto http, i suoi messaggi non vengono bloccati dai firewall.
REST
REST significa REpresentational State Transfer; è un'architettura che generalmente funziona 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 usare XML per la richiesta, REST usa un semplice URL in alcuni casi. A differenza di SOAP, le applicazioni RESTFUL usano intestazioni HTTP integrate per trasportare 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 di richiesta API e i parametri del metodo possono essere inviati tramite entrambi POST or GET variabili.
L'API Rest supporta sia il formato XML che JSON per il test dell'API dei servizi Web. Di solito è preferito per Mobile e app Web in quanto rendono l'app più veloce e fluida
wsdl
WSDL (Servizi Web 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 possono essere chiamati i servizi, cioè quale valore di input dobbiamo fornire e quale sarà il formato della risposta che genererà per ciascun tipo di servizio.
Come testare un servizio Web?
Per testare il servizio web, puoi
- Prova manualmente
- Crea il tuo codice di automazione
- Utilizza uno strumento di automazione standard come SoapUI.
Il test di automazione dei servizi Web prevede i seguenti passaggi:
- Comprendere il file WSDL
- Determinare le operazioni fornite da un particolare servizio Web
- Determina il formato della richiesta XML che dobbiamo inviare
- Determinare il formato XML della risposta
- Utilizzando uno strumento o scrivendo codice per inviare la richiesta e convalidare la risposta
Supponiamo di voler testare il servizio web che fornisce la funzione di conversione della valuta. Saranno gli attuali tassi di conversione tra le valute dei diversi paesi. Questo servizio che possiamo utilizzare nelle nostre applicazioni per convertire i valori da una valuta all'altra valuta.
Ora diamo un'occhiata ai passaggi precedenti
Passaggi da 1 a 4: comprensione del WSDL e determinazione delle operazioni e dei formati XML
Valuta Convertor Il file WSDL può essere visualizzato @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) che fornirà le informazioni sulla valuta Convertor metodi del servizio web che supporterà, il parametro che dobbiamo passare e il tipo di parametri... ecc.
Passaggio 5: utilizzare uno strumento o scrivere codice per inviare la richiesta e convalidare la risposta
Sono disponibili numerosi strumenti di test dei servizi Web per testare il servizio Web SOAP. SoapUI è uno dei popolari Strumento API che ci aiuterà a testare i servizi web SOAP. Infatti è possibile utilizzare qualsiasi linguaggio di programmazione in grado di inviare la richiesta XML all'applicazione del fornitore di servizi Web tramite http e in grado di analizzare e convalidare la risposta XML rispetto al risultato atteso. In questo tutorial sul test dei servizi Web, testeremo il WebService
- utilizzando Java
- 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 file Java API di implementazione, 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 Java programma utilizzando l'API per creare il servizio web. Axis2 genererà il WSDL da Java programma che verrà utilizzato per comunicare i servizi offerti dal servizio web. Possiamo usare lo stesso Axis2 per generare il file Java class (stub) dal file WSDL che possiamo utilizzare come programma client per generare la richiesta del servizio web, inviare la richiesta all'endpoint del servizio ed elaborare la risposta.
- Fondamentalmente creeremo un semplice Java programma in cui istanziaremo la classe stub.
- Utilizzando lo stub invocheremo il metodo request passando tutte le informazioni richieste.
- Il programma stub convertirà quella richiesta nel formato di richiesta XML e la invierà all'endpoint del servizio che leggerà la richiesta, la elaborerà e invierà la risposta in formato XML.
- La risposta XML verrà convertita in Java classe per stub e ritornati al programma vero e proprio.
Diamo un'occhiata ai passaggi precedenti in dettaglio
Passaggio a) Scarica l'API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Imposta la variabile d'ambiente 'AXIS2_HOME'
Passaggio b) Creare una cartella per conservare tutti gli artefatti generati
Esempio: C:\Axis\Projects\CurrencyConverter
Passaggio c) Aprire il prompt dei comandi e passare alla struttura delle cartelle in cui si desidera generare gli artefatti ed eseguire il seguente comando che genererà gli stub
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertoConvertire le valute in org.apache.axis2.currencyconvertor -d adb –s
Passaggio d) Una volta eseguito correttamente il comando, vedrai la cartella con i file richiesti.
Fase e)Nel passaggio successivo di questo tutorial di Web Services Testing, dobbiamo creare il programma client, attraverso il quale invieremo la richiesta effettiva utilizzando gli stub generati. Apri eclipse e crea il nuovo Java progetto e seleziona la cartella che abbiamo creato sopra.
Passaggio f) Aggiungere tutti i jar relativi all'asse2 al percorso di creazione del progetto, che sarà presente nella cartella lib della cartella del software asse2
(ad esempio: C:\Axis\axis2-1.6.2\lib)
Passaggio g) Creane uno nuovo Java classe (es: Cliente.Java) e istanziare l'oggetto stub. Utilizzando l'oggetto stub possiamo chiamare tutti i metodi supportati dal particolare WebService.
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) Come testare l'utilizzo del servizio Web SoapUI
In SoapUI
- Vai su File > Nuovo progetto soap
- Immettere il nome del progetto e il percorso dell'URI WSDL
- fare clic su OK
- Espandi la prima richiesta e fai doppio clic su 'Request1'. Visualizzerà la richiesta SOAP nel formato XML.
- Immettere la valuta Da e la Valuta A
- Fare clic sul pulsante di invio
- L'XML di risposta verrà visualizzato nel riquadro a destra.
Come puoi concludere, l'utilizzo di strumenti di test dei servizi Web come SoapUI accelera lo sforzo di test di automazione dei servizi Web. Pertanto SoapUi sarà al centro del nostro apprendimento nei tutorial successivi.
Sintesi
- Le applicazioni software comunicano e scambiano dati tra loro utilizzando un WebService
- SOAP e REST sono 2 protocolli popolari per creare un servizio Web
- SOAP supporta lo scambio di dati basato su XML
- REST supporta XML, Json o scambio di dati in URL semplici per il test delle API dei servizi Web.
- WSDL è un linguaggio basato su XML che verrà utilizzato per descrivere i servizi offerti da un servizio web. SOAP è definito utilizzando WSDL.
-
Per testare WebService puoi
- Crea il tuo codice. Ad esempio, utilizza l'API Axis2 per Java
- Utilizzare strumenti di automazione del test dei servizi Web come SoapUI
- Strumenti di automazione come SoapUI daranno una spinta ai tuoi sforzi di test di automazione dei servizi Web, richiederanno meno sforzi di codifica rispetto alla creazione del tuo codice utilizzando l'API Axis2
FAQ
Scopri di più sui Test dell'API Web
Questo tutorial sul test dei servizi Web è reso possibile grazie al contributo di Narender Reddy Nukala












