understanding assertions soapui soapui tutorial 5
Abbiamo lavorato sulle basi di SoapUI come creazione di progetti, aggiunta di WSDL, invio di una richiesta e ricezione di risposte e la generazione di asset di test che li seguano fino ad ora.
In questo quinto tutorial SoapUI, impareremo tutto sulle asserzioni in SoapUI. Ti consigliamo vivamente di farlo segui la serie completa di formazione SoapUI su questa pagina per apprendere tutte queste caratteristiche principali.
Cosa imparerai:
- Introduzione alle asserzioni
- Lavorare con diversi tipi di asserzioni in SoapUI
- Conclusione
- Lettura consigliata
Introduzione alle asserzioni
Come con qualsiasi test, dobbiamo confrontare ciò che vogliamo che il sistema faccia e ciò che sta effettivamente facendo, per arrivare a una certa convalida o asserzione, che è ciò che viene chiamato nel contesto dei servizi web. Come tester, non importa se abbiamo eseguito 1000 o addirittura milioni di passaggi di test, ma per noi il confronto dei risultati è ciò che determina il risultato di un test.
Pertanto, spenderemo l'intero articolo per capire come possiamo farlo con SoapUI, sebbene i servizi web possano essere affermati manualmente. Inoltre, un'asserzione manuale richiede tempo quando sono presenti più risposte e risposte con dati di grandi dimensioni. Le affermazioni di SoapUI sono eccellenti per superare queste carenze.
Asserzioni SOAPUI confrontare le parti / tutto il messaggio di risposta con il risultato atteso. Possiamo aggiungere una serie di affermazioni fornite da SoapUI a qualsiasi passaggio del test. Ogni tipo di asserzione mira a convalide specifiche sulla risposta come la corrispondenza del testo, il confronto di XPATH o potremmo anche scrivere query in base alle nostre esigenze.
Quando le fasi del test vengono eseguite, le asserzioni associate ricevono la risposta per le rispettive fasi del test. Se una qualsiasi risposta non riesce, la rispettiva asserzione verrà elaborata e il passaggio del test corrispondente verrà contrassegnato come non riuscito. Questa notifica può essere visualizzata nella visualizzazione dello scenario di test. Inoltre, possiamo trovare passaggi di test non riusciti nel registro di esecuzione del test. La schermata di asserzione della fase del test di esempio ha il seguente aspetto:
Nell'immagine sopra, alcuni passaggi del test sono NON RIUSCITI e alcuni sono SUPERATI. Il motivo è l'affermazione.
Come abbiamo discusso in precedenza, se la condizione di asserzione non è soddisfatta con i risultati attesi, il risultato è FALLITO.
Lavorare con diversi tipi di asserzioni in SoapUI
Vediamo ora come lavorare con diversi tipi di asserzioni come:
- Contiene e non contiene asserzioni
- XPath match e
- Asserzioni di corrispondenza XQuery.
In primo luogo, abbiamo bisogno di una posizione dello schema WSDL valida.
Segui i passaggi come di seguito:
Passo 1. Crea un nuovo progetto SOAP premendo CTRL + N e seguire i passaggi. Dopo aver creato il progetto, SOAPUI genera l'elenco delle interfacce e le richieste corrispondenti.
Passo 2. Per aggiungere la suite di test a questo progetto, segui questi passaggi:
- Fare clic con il tasto destro sul nome dell'interfaccia MedicareSupplierSoap
- Clic Genera Testsuite opzione dal menu contestuale
- Fare clic su OK nella finestra sottostante che si apre:
- Nel popup successivo, è necessario inserire il nome della suite di test desiderata e fare clic su OK
- SOAPUI PRO genererà la suite di test insieme alle richieste nel pannello di navigazione.
- Sotto la suite di test, vedrai alcuni passaggi del test con il passaggio della richiesta SOAP.
Passaggio 3. Per eseguire questa suite di test, fare doppio clic sul passaggio della richiesta e specificare il valore di input nella rispettiva posizione. Ad esempio, apri GetSupplierByCity richiesta ed entra New York tra i tag della città.
- Avvia questa richiesta facendo clic sull'icona ESEGUI: questa riceverà la risposta.
- Ora aggiungiamo le affermazioni. Per questo, fai clic su Asserzioni scheda presente nella parte superiore delle schede di registro.
- Facendo clic con il pulsante destro del mouse, verrà visualizzato un menu popup con alcune opzioni di base relative alle asserzioni come di seguito:
# 1) Contiene asserzione
Fai clic sull'opzione Aggiungi asserzione o fai clic su di essa dalla barra degli strumenti - Aggiungi asserzione sullo schermo appare la finestra con diversi tipi di affermazioni.
1. Fare clic su Contenuto della proprietà categoria dall'elenco: vengono visualizzati i tipi di asserzioni associate e la loro descrizione
2. Fare clic su Contiene affermazione e fare clic sul pulsante Aggiungi
3. Questa è la finestra di configurazione dell'asserzione. Qui stesso dobbiamo specificare la condizione attesa in base alla risposta.
Ad esempio e, fammi entrare New York testo in questo campo di testo. Ignora maiuscole e minuscole in confronto la casella di controllo ignorerà anche se il valore atteso è in maiuscolo o minuscolo.
4. Ora esegui la suite di test e verifica i risultati. Come hai visto nella finestra della suite di test, il verde indica l'esecuzione riuscita e il rosso indica il fallimento.
# 2) Non contiene asserzioni
Possiamo utilizzare l'asserzione 'non contiene' per convalidare le richieste in scenari negativi. Possiamo usare GetSupplierByZipCode richiesta di apprenderlo.
Apri la scheda della richiesta facendo doppio clic su di essa. Nella richiesta di input, inserisci il codice postale non valido nella posizione appropriata, ad esempio 10029 . Esegui questa richiesta ora. Controlla i dati di risposta che hanno i dettagli del fornitore per il codice postale specificato - dai un'occhiata all'immagine qui sotto:
(Clicca sull'immagine per ingrandirla)
L'asserzione 'non contiene', viene evidenziata in verde quando viene eseguita con successo.
Nella finestra di configurazione, abbiamo configurato con un valore atteso positivo come di seguito:
Restituisce true se il valore condizionale previsto non viene trovato e restituisce false se il valore previsto viene trovato nel messaggio di risposta.
Allo stesso modo, possiamo modificare la condizione ed eseguire nuovamente la richiesta. Genera i risultati di conseguenza.
# 3) Asserzione corrispondenza XPath
L'asserzione di corrispondenza XPath è leggermente diversa in termini di affermazione della risposta utilizzando i dati di risposta effettivi.
Per esempio , se disponiamo di un servizio web di autenticazione del login che autenticherà le credenziali dell'utente e invierà il riconoscimento al client con alcuni tipi di dati booleani che possono essere VERO o FALSO sotto forma di XML.
Come sai i documenti XML sono costruiti dai tag. Quindi, quando si specifica il valore previsto nella configurazione, dovrebbe essere in forma di XML.
come aprire il file flash Shockwave
Proviamo a farlo:
Aggiungi un'altra asserzione per GetSupplierByCity richiesta. Nella finestra Aggiungi asserzione, fare clic su Contenuto della proprietà categoria e quindi fare clic su Partita XPath asserzione.
Viene visualizzata la finestra seguente:
La sezione superiore è la parte della dichiarazione e la sezione inferiore è la parte del risultato atteso.
Quando facciamo clic sul file Dichiarare opzione otterremo alcuni script di dichiarazione generati automaticamente come di seguito:
declare namespace soap = ’http: //schemas.xmlsoap.org/soap/envelope/’;
dichiarare lo spazio dei nomi ns1 = ’http: //www.webservicex.net/’;
Negli script precedenti, la prima riga indica la risposta che dovrebbe essere dati XML e tag SOAP inclusi. Nella riga successiva, l'intera risposta verrà assegnata o copiata nel file ns1 variabile dello spazio dei nomi durante l'esecuzione. Se vogliamo filtrare dati particolari dall'intera risposta, dobbiamo aggiungere il seguente script.
// ns1: SupplierData (1)
Come sai, se esegui il file GetSupplierByCity richiesta, produrrà la risposta che contiene l'elenco dei dati personali del fornitore a cui appartiene New York City .
Qui abbiamo usato XPath Match espressione per estrarre i dettagli personali del fornitore specifico dalla risposta in blocco. A tale scopo, abbiamo utilizzato un file ns1 variabile. Ora fai clic sul file Seleziona da una corrente pulsante.
Quindi SOAPUI genera il seguente risultato:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
Si prega di fare riferimento a questo screenshot:
Qui nei dati di risposta è possibile visualizzare i dati personali di un solo fornitore. In base al numero presente all'interno delle parentesi angolari, verrà generato l'output.
Finora, si tratta di scegliere la parte della risposta richiesta, come possiamo / stiamo usando XPath Match asserzione?
Andiamo a quello: Fare clic sul pulsante Salva una volta che sei d'accordo con la risposta.
Inizialmente, se avresti eseguito questo servizio dopo aver configurato l'asserzione di corrispondenza XPath senza modifiche, il risultato sarà una risposta positiva, lo stato evidenziato in verde.
Ma cambiamo il parametro di input nella richiesta di input in qualcosa che sia una città non valida: 'XYZ o ABC'. Esegui la richiesta e controlla i risultati e lo stato dell'asserzione. Otterremo una risposta di errore e un'indicazione di stato rossa per l'asserzione. Perché avevamo già specificato che i dati del particolare fornitore dovrebbero essere presenti nella risposta del servizio nella configurazione del risultato previsto e quando il nome della città non è valido, quel fornitore chiaramente non è presente.
In questo modo possiamo affermare la risposta XML utilizzando l'asserzione dell'espressione XPath Match. D'accordo sul fatto che questo è abbastanza semplice per iniziare, ma se provi con risposte di servizio diverse, avrai un'idea molto migliore.
Possiamo anche utilizzare funzioni aggregate nell'espressione XPath Match. Sono Sum, Min, Max, Count e Avg.
Per esempio , se vogliamo conoscere il numero totale di fornitori conteggiati nei risultati attesi, scrivi il seguente script.
count (// ns1: SupplierData) e ritorna 536 di conseguenza. Ricorda che tutte le funzioni aggregate dovrebbero essere in minuscolo.
# 4) Asserzione corrispondenza XQuery
Questo è leggermente simile all'asserzione XPath Match. Come abbiamo visto nella configurazione dell'asserzione XPath Match, ci saranno due sezioni: dichiarazione e risultato atteso.
- Aggiungi l'asserzione XQuery Match per la richiesta
- Nella finestra di configurazione, fare clic su dichiarare e scrivi il seguente script
- Ora fai clic Seleziona da Corrente pulsante
- SOAPUI genera la risposta per lo script
L'espressione XQuery supporta anche l'espressione di corrispondenza XPath, ma ha una propria sintassi di scripting che non può essere utilizzata nell'asserzione di corrispondenza XPath.
Per esempio :
Vedremo un esempio per recuperare tutta la risposta dei dati del fornitore utilizzando l'espressione XQuery. Guarda questo screenshot di esempio per capire meglio.
Script effettivo:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
Sono disponibili più funzioni integrate da utilizzare nell'espressione XQuery. Sono dove, ordina per, per, ritorno e così via.
Conclusione
Bene, queste sono le affermazioni più comunemente usate per te.
Il punto di enfasi qui è che: Le affermazioni sono più importanti per prevedere accuratamente il risultato atteso dei servizi web. Questo è il motivo per cui è una delle chiavi caratteristiche in SOAPUI PRO .
Prossimo tutorial : Nel prossimo tutorial, ci divertiremo con le basi dello scripting e altro ...
Per favore resta connesso. Come sempre, i tuoi commenti, domande e suggerimenti sono i benvenuti.
Lettura consigliata
- Come eseguire test basati sui dati in SoapUI Pro - SoapUI Tutorial # 14
- Oltre 15 tutorial SoapUI: il miglior strumento di test delle API dei servizi Web
- Tutorial approfonditi su Eclipse per principianti
- Come utilizzare le proprietà in SoapUI Groovy Script - SoapUI Tutorial # 7
- 7 Caratteristiche importanti di SoapUI e SoapUI Pro - Tutorial 2
- Lavorare con le proprietà SoapUI - SoapUI Tutorial # 8
- 4 Caratteristiche importanti di SoapUI Pro per Pro Audience - SoapUI Tutorial # 12
- Processo di download e installazione di SoapUI passo dopo passo - Tutorial SoapUI # 3