soapUI Common Assertions
Nei due articoli precedenti, abbiamo trattato i dettagli delle asserzioni specifiche del test, che erano applicabili solo per un tipo specifico di TestCase o WebService in prova. Tutte le asserzioni menzionate nell’articolo “Asserzioni specifiche di test soapUI: Servizi REST” sono applicabili solo ai servizi Web REST e tutte le asserzioni menzionate nell’articolo “Asserzioni specifiche di test soapUI: Servizi SOAP” sono applicabili solo ai servizi Web SOAP. Ora, soapUI fornisce anche poche altre asserzioni, che sono applicabili sia per i servizi SOAP che REST e sono conosciute come asserzioni comuni soapUI. In questo articolo, capiremo l’uso di tutte quelle asserzioni comuni coprendo i dettagli sotto i seguenti argomenti:
- Quali sono le asserzioni di contenuto delle proprietà comuni in soapUI?
- Cosa contiene l’asserzione in soapUI?
- Inoltre, ciò che non contiene asserzione in soapUI?
- Che cos’è l’asserzione XPath in soapUI?
- Che cosa è Xquery Partita Assertionin soapUI?
- Allo stesso modo, quali sono la conformità, lo stato e le asserzioni standard comuni in soapUI?
- Quali sono le asserzioni dei codici di stato HTTP fornite da soapUI?
- Inoltre, quali sono le asserzioni di conformità dello schema in soapUI?
- Quali sono le asserzioni SLA comuni in soapUI?
Poiché tutte queste asserzioni sono applicabili sia per i servizi SOAP che REST, utilizzeremo le seguenti informazioni per la convalida di tutte queste asserzioni:
- Il progetto REST creato utilizzando URI: “http://bookstore.toolsqa.com/BookStore/v1/Books “e il progetto SOAP creato usando WSDL:” http://bookstore.toolsqa.com/BookStoreService.wsdl “come per i dettagli menzionati nell’articolo” soapUI: lavorare con i progetti.”
- È possibile fare riferimento all’output di esempio del progetto REST dall’articolo “soapUI Test Assertions Specific: REST Services” e all’output di esempio del progetto SOAP dall’articolo “SOAP Test Assertions Specific: SOAP Services”.
Quali sono le asserzioni di contenuto delle proprietà comuni in soapUI?
Come già sappiamo, le asserzioni del contenuto della proprietà convalidano il contenuto della risposta ricevuta. soapUI fornisce più asserzioni di contenuto che sono applicabili sia per le richieste SOAP che REST. Vediamo nelle sezioni seguenti, come possiamo usare quelle asserzioni?
Cosa contiene l’asserzione in soapUI?
L’asserzione Contiene cerca l’esistenza di un token stringa nel valore della proprietà.
Considera uno scenario che nel servizio di libreria, dobbiamo verificare se esiste un libro con il nome dell’autore “Richard E. Silverman”?Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione “Contiene”:
- Per prima cosa, passare alla finestra di dialogo Aggiungi asserzione. Dopo di che, fare clic su “Contiene” asserzione sotto il “Contenuto della Proprietà” asserzione di categoria, come di seguito evidenziato:
- in Secondo luogo, fare clic sul pulsante “Aggiungi”, e verrà visualizzato il “Contiene Affermazione di dialogo”, come mostrato di seguito:
-
in Terzo luogo, inserire il nome dell’autore “Richard E. Silverman” in “Contenuti” della sezione. È la stringa di ricerca che si desidera convalidare nella risposta del WebService.
-
In quarto luogo, nella finestra di dialogo sopra, vedrai anche due caselle di controllo. Lo sono:
- Ignora caso: se si seleziona la casella di controllo Ignora caso, verrà convalidata la stringa ignorando il caso. Supponiamo di digitare ” richARD E. SilVerMan “nella casella di testo del contenuto e selezionare la casella di controllo” Ignora caso in confronto”. Inoltre, ignorerà il caso e controllerà solo il valore della stringa inserita.
Quindi, l’asserzione passerà come i caratteri nella stringa sono gli stessi se ignoriamo il caso.
- Espressione regolare: se si desidera convalidare l’output in base a una RegEx, è possibile selezionare questa casella di controllo e quindi specificare l’espressione regolare nella sezione Contenuto. soapUI segue i modelli di espressioni regolari specificati da Oracle, ad esempio, se vogliamo convalidare che la risposta del servizio libro contenga “O’Reilly” nella risposta, è possibile specificare “.O’Reilly.”come RegEx nella sezione Contenuto, come mostrato di seguito:
Quindi, possiamo convalidare l’esistenza di una stringa nella risposta del servizio Web utilizzando Contains assertion e possiamo usarlo sia per i servizi Web SOAP che REST.
Cosa non contiene asserzione in soapUI?
A differenza di Contains assertion, Not Contains assertion cerca la non esistenza di una stringa nel valore della proprietà. Inoltre, questa asserzione passerà se la risposta non contiene il valore specificato.
Supponiamo; vogliamo convalidare che non ci sia un libro con il titolo “Groovy Book” nella risposta del servizio book store, possiamo usare questa affermazione per convalidare la risposta dell’API BookStore.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione” Non contiene”:
- Innanzitutto, passare alla finestra di dialogo Aggiungi asserzione e fare clic sull’asserzione” Non contiene “nella categoria di asserzione “Contenuto proprietà”, come evidenziato di seguito:
-
in Secondo luogo, fare clic sul pulsante “Aggiungi”, e verrà visualizzato il “NotContains Affermazione di dialogo”, come mostrato di seguito:
-
in Terzo luogo, inserire il nome della stringa “Groo Libro” nel “Contenuto” sezione. È la stringa di ricerca che si desidera convalidare che non esiste nella risposta del WebService.
Nota: Le due caselle di controllo(Ignora Case & RegEx) qui funzionano allo stesso modo, come lo erano con l’asserzione Contains.
- in Quarto luogo, cliccando sul pulsante “OK” per eseguire l’affermazione contro il WebService di risposta e di mostrare il risultato, come mostrato di seguito:
- Quindi, fintanto che la stringa non è presente nella risposta del servizio di destinazione, l’affermazione passerà.
Che cos’è l’asserzione di corrispondenza XPath in soapUI?
L’asserzione XPath Match consente di utilizzare un’espressione XPath per selezionare il contenuto dal nodo specifico della risposta di destinazione e confrontarlo con il valore previsto.
Supponiamo di voler convalidare che ISBN del primo libro presente nella risposta di BookStore API non sia null. Possiamo convalidare rapidamente lo stesso usando l’asserzione XPath.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione” XPath Match”:
- In primo luogo, passare alla finestra di dialogo Aggiungi asserzione. Successivamente, fai clic sull’asserzione “XPath Match” sotto la categoria di asserzione “Property Content” , come evidenziato di seguito:
- in Secondo luogo, fare clic sul pulsante “Aggiungi”, e verrà visualizzato il “Xpath Corrispondenza Configurazione di dialogo”, come mostrato di seguito:
Dove,
-
Dichiarare: Cliccando su questo pulsante recupera e popola lo spazio dei nomi automaticamente. Se si è sicuri dei dettagli dello spazio dei nomi, è possibile digitare manualmente, altrimenti è sufficiente fare clic su “Dichiarare” pulsante e popola lo spazio dei nomi dettagli, come illustrato di seguito:
- Lo spazio dei nomi per il servizio SOAP verrà popolato, come mostrato di seguito:
- Allo stesso modo, lo spazio dei nomi per il RESTO il servizio verrà popolato, come mostrato di seguito:
Dopo aver dichiarato lo spazio dei nomi, possiamo specificare XPATH del nodo desiderato nella sezione XPath Expression.
- È possibile specificare un campione di XPATH “//ns1:BooksResult/ns1:Libri/ns1:CustomBookModel/ns1:Isbn” per il servizio SOAP, come illustrato di seguito:
allo stesso modo, è possibile specificare un campione di XPATH “//ns1:libri//ns1:e/ns1:isbn”, per il RESTO servizio come mostrato di seguito:
Si noti l’utilizzo dello spazio dei nomi ns1 in entrambi i casi. Per accedere ai nodi, l’utilizzo dello spazio dei nomi è obbligatorio.
- Seleziona da corrente: Facendo clic su questo pulsante, selezionerà automaticamente il valore del nodo come menzionato sopra nella sezione Risultato atteso, che è isbn nel caso precedente. Inoltre, selezionerà il valore del nodo isbn come “9781449325862”. Se non si desidera selezionare automaticamente il valore facendo clic su questo pulsante, è anche possibile digitare manualmente il risultato previsto.
- Test: cliccando sul pulsante “Test”, è possibile verificare l’output, se l’affermazione passa, mostrerà il seguente avviso successo :
O se l’affermazione non riesce, si genera l’Errore e mostra una finestra di dialogo, come mostrato di seguito:
- Opzionale Caselle di controllo: Il Risultato Atteso sezione fornisce alcune caselle di controllo, che fornisce un aiuto in più per la convalida dell’asserzione. Comprendiamo i dettagli di queste caselle di controllo:
- Allow Wildcard Checkbox: se il valore che vogliamo convalidare cambia dinamicamente nella risposta di destinazione, allora possiamo usare i caratteri jolly per convalidare la risposta. Supponiamo, se consideriamo che l’isbn del 1 ° libro termina sempre con “862”, allora possiamo usare il carattere jolly *” 862″, che convaliderà che l’isbn termina sempre con”862″. Apparirà nella sezione Risultato atteso come:
- Casella di controllo Ignora prefisso spazio nomi: Se vogliamo ignorare il prefisso dello spazio dei nomi mentre convalidiamo la risposta, possiamo farlo selezionando questa casella di controllo.
- Ignora commenti XML Casella di controllo: se vogliamo ignorare i commenti nella risposta, possiamo ottenere questo risultato selezionando questa casella di controllo.
- Dopo aver esplorato tutte le opzioni di cui sopra, fare clic sul pulsante Salva per salvare l’asserzione. Passerà come asserzione e otterrà l’Isbn previsto come “9781449325862”. Di conseguenza, mostrerà l’output del campione come segue:
Che cosa è Xquery Match Assertionin soapUI?
La corrispondenza XQuery è abbastanza simile all’asserzione XPath, con l’unica differenza che utilizza un’espressione XQuery e la confronta con il risultato che ti aspetti.
Considera uno scenario supponiamo di voler convalidare tutti i “Titoli” dei Libri disponibili nella risposta, indipendentemente dall’ordine in cui esistono. Puoi scrivere un semplice XQuery e poi sei a posto.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione” XQueryMatch”:
- Innanzitutto, passare alla finestra di dialogo Aggiungi asserzione. Dopo di che, fare clic su “XQuery Match” affermazione sotto il “Contenuto della Proprietà” asserzione di categoria, come di seguito evidenziato:
- in Secondo luogo, fare clic sul pulsante “Aggiungi”, e verrà visualizzato il “XQuery Corrispondenza Configurazione di dialogo”, come mostrato di seguito:
Dove,
- Espressione XQuery: Questa è l’espressione XQuery che è necessario specificare per estrarre il valore dalla risposta del WebService. Ad esempio, per ottenere il Titolo di tutti i libri, possiamo specificare l’espressione XQuery come segue:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>
Nel frammento di codice sopra:
-
<Result>
è il tag in cui memorizzerà il risultato in base alla risposta XQuery. Inoltre, può essere qualsiasi tag in base alla scelta dell’utente. - Inoltre, stiamo iterando la risposta usando il ciclo for e z z è una variabile qualsiasi, che otterrà il valore da
<CustomBookModel>
. - //. specifica la radice del CustomBookModel, puoi anche navigare usando lo spazio dei nomi e quindi specificare lo spazio dei nomi invece di**”//.”.***
- In aggiunta a quanto sopra, la funzione “return” restituirà il valore del tag
<Title>
. - Inoltre, la funzione “dati” restituisce i dati di ogni tag title nel tag
<CustomBookModel>
.
2) Seleziona da corrente: Fare clic sul pulsante per selezionare il valore corrente dalla risposta come da XQuery menzionato.
3) Risultato atteso: Dopo aver cliccato sul pulsante “Seleziona da corrente”, restituirà tutti i titoli dalla risposta del servizio. È inoltre possibile specificare manualmente il risultato previsto.
4) Facendo clic sul pulsante “Test” verrà visualizzata la risposta di successo, come mostrato di seguito:
- Facendo clic sul pulsante ” OK ” verrà visualizzata l’esecuzione valida dell’asserzione.
Quali sono la conformità, lo stato e le asserzioni standard comuni in soapUI?
Come le asserzioni comuni fornite da soapUI nella sezione “Contenuto delle proprietà”, fornisce anche alcune asserzioni sotto la categoria “Conformità, stato e standard” asserzioni, che sono comuni sia per i servizi Web SOAP che REST. Comprendiamo i dettagli di tutte queste asserzioni nelle seguenti sezioni:
Quali sono le asserzioni dei codici di stato HTTP fornite da soapUI?
Come tutti sappiamo, i codici di stato HTTP rappresentano se una richiesta HTTP è stata completata o meno. Tutti questi codici di risposta generalmente suddivisi nelle seguenti categorie:
1 | 1xx: Informativo: Questi codici di stato rappresentano il ricevimento della richiesta e la sua elaborazione. |
2 | 2xx: Successo: questi codici di stato rappresentano che l’azione è stata ricevuta, elaborata e accettata con successo. |
3 | 3xx: Reindirizzamento: questi codici di stato indicano che è necessaria un’ulteriore azione per completare la richiesta. |
4 | 4xx: Errore del client: questi codici di stato rappresentano che la richiesta contiene sintassi errata o che c’è qualcosa di sbagliato nella nostra richiesta. |
5 | 5xx: Errore del server: questi codici di stato indicano che c’è un errore lato server, il che significa che il server non è riuscito a soddisfare una richiesta valida. |
Per la convalida di questi codici di stato, soapUI fornisce un paio di asserzioni. Comprendiamo i dettagli di queste asserzioni nelle sezioni seguenti:
Che cos’è un’asserzione di codici di stato HTTP valida in soapUI?
Questa asserzione convalida che il codice di risposta HTTP restituito dal Webservice si trova nell’elenco dei codici HTTP previsti.
Si consideri uno scenario che per l’API BookStore, vogliamo convalidare che il codice di risposta restituito sia sempre 200 o 201. Possiamo usare l’asserzione “Valid HTTP Status Codes” per convalidare lo stesso.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione” Valid HTTP Status Codes”:
- Naviga per Aggiungere Affermazione di dialogo e fare clic su “Valida Codici di Stato HTTP” asserzione sotto la “Conformità, lo Stato e Standard” asserzione di categoria, come di seguito evidenziato:
- fare Clic sul pulsante “Aggiungi”, e sarà visualizzato il “Valido codici di stato HTTP Affermazione di Configurazione di dialogo”, come mostrato di seguito:
- Nella sezione” Specifica codici”, inserisci i valori 200, 201. È possibile specificare un singolo codice o un elenco di codici separati da virgole. Facendo clic sul pulsante” OK ” verranno convalidati i codici di stato HTTP rispetto all’ultima risposta del servizio.
Che cos’è un’asserzione di codici di stato HTTP non valida in soapUI?
In contrasto con l’asserzione “Codici di stato HTTP validi”, l’asserzione “Codici di stato HTTP non validi” convalida che l’elenco “Codici attesi” non contiene il codice di stato HTTP restituito dal Webservice.
Si consideri uno scenario che per l’API BookStore, vogliamo convalidare che il codice di risposta restituito non sia 401. Possiamo usare l’asserzione “Codici di stato HTTP non validi” per convalidare lo stesso.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione “Codici di stato HTTP non validi”:
- Naviga per Aggiungere Affermazione di dialogo e fare clic su “Voci di Codici di Stato HTTP” asserzione sotto la “Conformità, lo Stato e Standard” asserzione di categoria, come di seguito evidenziato:
- fare Clic sul pulsante “Aggiungi”, e sarà visualizzato il “Invalid codici di stato HTTP Affermazione di Configurazione di dialogo”, come mostrato di seguito:
- Nella sezione” Specifica codici”, inserisci i valori 401. È possibile specificare un singolo codice o un elenco di codici separati da virgole. Facendo clic sul pulsante” OK ” si convaliderà l’inesistenza dei codici di stato HTTP rispetto all’ultima risposta del servizio.
Nota: Possiamo applicare queste asserzioni sia agli endpoint SOAP che REST.
Quali sono le asserzioni di conformità dello schema in soapUI?
Oltre ai codici di stato, in soapUI, possiamo anche convalidare il messaggio di risposta rispetto alla definizione in WSDL(SOAP) o WADL(REST) del servizio di destinazione in prova.
Considera uno scenario che vogliamo verificare rapidamente se la risposta SOAP che stiamo ottenendo è conforme al WSDL o no?
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione “Conformità allo schema”:
- Naviga per Aggiungere Affermazione di dialogo e fare clic su “Schema di Conformità” asserzione sotto la “Conformità, lo Stato e Standard” asserzione di categoria, come di seguito evidenziato:
-
fare Clic sul pulsante “Aggiungi”, e visualizzare lo “Schema di Conformità Affermazione di Configurazione di dialogo”, come mostrato di seguito:
-
Nella finestra di dialogo di configurazione, popola automaticamente il WSDL, che ha creato il progetto, ma se si desidera specificare un altro WSDL, è anche possibile aggiornarlo. Fare clic su OK per procedere.
- Se la risposta è conforme secondo lo schema menzionato, vedrai la risposta di successo, come mostrato sopra. Verrà visualizzato l’errore ogni volta che l’ultima risposta non è compatibile con lo schema WSDL.
Nota: Allo stesso modo, è possibile convalidare la risposta del servizio REST rispetto a un WADL specificato.
Quali sono le asserzioni SLA comuni in soapUI?
Come tutti sappiamo, un Service Level Agreement(SLA) è generalmente indicato come l’accordo tra un fornitore di servizi e un cliente. L’accordo può essere classificato in base a varie caratteristiche concordate come disponibilità, qualità, tempo di risposta, ecc. soapUI fornisce la funzionalità per convalidare il tempo di risposta di un servizio specifico.
Si consideri uno scenario ipotetico che il tempo di risposta concordato per il servizio Web BookStore sia inferiore a 4 secondi. Possiamo convalidare lo stesso in soapUI usando le categorie di asserzione “SLA”.
Seguiamo i passaggi indicati di seguito per convalidare lo stesso utilizzando l’asserzione” Response SLA”:
- Passare alla finestra di dialogo Aggiungi asserzione e fare clic sull’asserzione “SLA risposta” nella categoria asserzione “SLA”, come evidenziato di seguito:
- fare Clic sul pulsante “Aggiungi”, e visualizzare la “Risposta SLA Affermazione di configurazione di dialogo”, come mostrato di seguito:
- Specificare il tempo massimo (in ms), in cui il servizio prevede di restituire la risposta. Per il nostro scenario, abbiamo specificato 4000 ms. Fare clic sul pulsante OK per aggiungere l’asserzione. Mostrerà il risultato del test, come mostrato di seguito:
- Come possiamo vedere nello screenshot qui sopra, poiché il tempo di risposta del servizio era 1374 ms, quindi era sotto lo SLA menzionato di 4000 ms e ha portato a un’affermazione di successo.
Key Takeaways
- soapUI fornisce una vasta gamma di asserzioni che possono essere applicate sia ai servizi Web SOAP che REST.
- Inoltre, alcune delle asserzioni comuni sono Contain, Not Contain, Xpath e Xquery Match, che vengono utilizzate per la convalida della risposta del contenuto del Webservice.
- Inoltre, un altro insieme di asserzioni comuni fornite da soapUI viene utilizzato per la validazione dei codici di stato HTTP e lo Schema della risposta dei servizi Web.
- Inoltre, soapUI fornisce anche un’asserzione SLA che può essere utilizzata per la convalida del tempo di risposta di entrambi i servizi SOAP e REST.
Passiamo al prossimo articolo dove approfondiremo ulteriormente per capire come possiamo implementare alcune asserzioni avanzate usando “Asserzioni di script” in soapUI.