understanding assertions soapui soapui tutorial 5
Vi har arbetat med grunderna i SoapUI som skapa projekt, lägga till WSDL, skicka en begäran och ta emot svar och generera testtillgångar för att följa med dem hittills.
I denna 5: e SoapUI-handledning lär vi oss allt om påståenden i SoapUI. Vi rekommenderar starkt att du gör det följ hela SoapUI-träningsserien på den här sidan för att lära sig alla dessa kärnfunktioner.
Vad du kommer att lära dig:
- Introduktion till påståenden
- Arbeta med olika slags påståenden i SoapUI
- Slutsats
- Rekommenderad läsning
Introduktion till påståenden
Som med alla tester måste vi jämföra vad vi vill att systemet ska göra och vad det faktiskt gör, för att nå en viss validering eller påstående, vilket är vad det kallas i samband med webbtjänster. Som testare spelar det ingen roll om vi utförde 1000 eller till och med miljoner teststeg, men för oss är resultatjämförelsen det som avgör resultatet av ett test.
Därför kommer vi att spendera hela denna artikel på att förstå hur vi kan göra det med SoapUI, även om webbtjänster kan göras manuellt. Manuellt påstående är också tidskrävande när det finns flera svar och svar med stora data. Påståenden från SoapUI är utmärkta för att övervinna dessa brister.
SOAPUI påståenden jämföra delarna / hela svarsmeddelandet med det förväntade resultatet. Vi kan lägga till en mängd olika påståenden från SoapUI till vilket teststeg som helst. Varje typ av påståenden riktar sig mot specifika valideringar på svaret, som att matcha text, jämföra XPATH eller så kan vi också skriva frågor baserat på vårt behov.
När teststegen körs får de associerade påståendena svaret för respektive teststeg. Om något svar misslyckas kommer respektive påstående att behandlas och motsvarande teststeg kommer att markeras som misslyckat. Detta meddelande kan visas i testfallsvyn. Vi kan också hitta misslyckade teststeg i testkörningsloggen. Exempel på teststeg påstående skärm ser ut som nedan:
I bilden ovan har några av teststegen misslyckats och några av dem har klarat. Anledningen är påståendet.
Som vi diskuterade tidigare, om påståendevillkoret inte uppfylls med förväntade resultat, misslyckas resultatet.
Arbeta med olika slags påståenden i SoapUI
Låt oss nu se hur man arbetar med olika typer av påståenden som:
- Innehåller och innehåller inte påståenden
- XPath-matchning och
- XQuery matchar påståenden.
För det första behöver vi en giltig plats för WSDL-schema.
Följ stegen nedan:
Steg 1. Skapa ett nytt SOAP-projekt genom att trycka på CTRL + N och följ stegen. Efter skapandet av projektet genererar SOAPUI listan över gränssnitt och motsvarande förfrågningar.
Steg 2. Följ dessa steg för att lägga till testsviten i detta projekt:
- Högerklicka på gränssnittsnamnet MedicareSupplierSåpa
- Klick Skapa testsvit alternativ från snabbmenyn
- Klicka på OK i fönstret nedan som kommer upp:
- I nästa popup måste du ange önskat testsvitens namn och klicka på OK
- SOAPUI PRO kommer att generera testpaketet tillsammans med förfrågningarna i navigatorpanelen.
- Under testpaketet kommer du att se några av teststegen med SOAP-begäran.
Steg 3. För att utföra denna testsvit dubbelklickar du på begäran och anger inmatningsvärdet på respektive plats. Öppna till exempel GetSupplierByCity begär och ange New York mellan stadskoderna.
- Starta denna begäran genom att klicka på KÖR-ikonen - detta får svaret.
- Låt oss nu lägga till påståenden. Klicka för att göra det Påståenden fliken finns högst upp på loggflikarna.
- När du högerklickar visas en popup-meny med några grundläggande påstående relaterade alternativ enligt nedan:
# 1) Innehåller påstående
Klicka på alternativet Lägg till påstående eller klicka på det från verktygsfältet - Lägg till påstående fönstret visas på skärmen med olika typer av påståenden.
1. Klicka på Fastighetsinnehåll kategori från listan - associerade påståendetyper och deras beskrivning visas
2. Klicka på Innehåller påstående och klicka på knappen Lägg till
3. Detta är konfigurationsfönstret för påståendet. Här måste vi specificera det förväntade tillståndet baserat på svaret.
För exempel är, låt mig komma in New York text i detta textfält. Ignorera fall i jämförelse kryssrutan ignoreras även om det förväntade värdet är i gemener eller gemener.
4. Kör nu testpaketet och verifiera resultaten. Som du har sett i testsvitens fönster indikerar grönt det lyckade utförandet och rött betyder fel.
# 2) Innehåller inte påstående
Vi kan använda påståendet 'innehåller inte' för att validera förfrågningar i negativa scenarier. Vi kan använda GetSupplierByZipCode begär att få veta det.
Öppna fliken förfrågan genom att dubbelklicka på den. I inmatningsförfrågan anger du ogiltigt postnummer på lämplig plats, t.ex. 10029 . Kör denna begäran nu. Kontrollera svarsuppgifterna med leverantörsinformation för det angivna postnumret - ta en titt på bilden nedan:
(Klicka på bilden för förstorad vy)
Påståendet ”innehåller inte” är markerat i grön färg när det körs framgångsrikt.
I konfigurationsfönstret har vi konfigurerat med positivt förväntat värde enligt nedan:
Det returnerar sant om det förväntade villkorliga värdet inte hittas och returnerar falskt om det förväntade värdet finns i svarsmeddelandet.
På samma sätt kan vi ändra villkoret och köra begäran igen. Det genererar resultaten därefter.
# 3) XPath Match-påstående
XPath match påstående är lite annorlunda i termer att det kommer att hävda svaret med hjälp av faktiska svarsdata.
Till exempel , om vi har en inloggningsautentisering webbtjänst som autentiserar användaruppgifterna och skickar bekräftelsen till klienten med någon Boolean typ av data som kan vara SANT eller FALSK i form av XML.
Som du vet skapas XML-dokument av taggar. Så när du anger det förväntade värdet i konfigurationen ska det vara i form av XML.
implementera prioritetskön c ++
Låt oss försöka göra det:
Lägg till ytterligare ett påstående för GetSupplierByCity begäran. Klicka på i fönstret Lägg till påstående Fastighetsinnehåll och klicka sedan på XPath-matchning påstående.
Fönstret nedan visas:
Den övre delen är deklarationsdelen och den nedre delen är den förväntade resultatdelen.
När vi klickar på Deklarera alternativ får vi några automatiskt genererade deklarationsskript som nedan:
förklara namespace soap = ’http: //schemas.xmlsoap.org/soap/envelope/’;
förklara namespace ns1 = ’http: //www.webservicex.net/’;
I ovanstående skript anger den första raden svaret som ska vara XML-data och bifogade SOAP-taggar. I nästa rad kommer hela svaret att tilldelas eller kopieras till ns1 namespace-variabel under körningen. Om vi vill filtrera viss data från hela svaret måste vi lägga till följande skript.
// ns1: SupplierData (1)
Som du vet, om du kör GetSupplierByCity begäran kommer det att ge svaret som innehåller listan över leverantörens personuppgifter som tillhör New York City .
Här har vi använt XPath Match uttryck för att extrahera den specifika leverantörens personliga information från bulksvaret För detta ändamål har vi använt en ns1 variabel. Klicka nu på Välj från en ström knapp.
Sedan genererar SOAPUI följande resultat:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
Se denna skärmdump:
Här i svarsdata kan du bara se en leverantörs personuppgifter. Baserat på antalet som finns i vinkelfästena genereras utmatningen.
Hittills handlar det om att välja den del av svaret som krävs, hur kan / använder vi XPath Match påstående?
Låt oss komma till det: Klicka på Spara-knappen när du är OK med svaret.
Till att börja med, om du skulle ha utfört den här tjänsten efter att du har konfigurerat XPath-matchning utan ändringar, blir resultatet ett framgångsrikt svar, status markerad i grönt.
Men låt oss ändra inmatningsparametern i inmatningsförfrågan till något som är en ogiltig stad - 'XYZ eller ABC'. Kör begäran och kontrollera resultaten samt påståendestatus. Vi får felrespons och röd statusindikering för påståendet. Eftersom vi redan hade specificerat att den specifika leverantörsdata skulle finnas i tjänstens svar i den förväntade resultatkonfigurationen och när stadsnamnet är ogiltigt, är den leverantören helt klart inte närvarande.
Så här kan vi hävda XML-svaret med XPath Match-uttryck. Enades om att det här är ganska enkelt att börja med, men om du försöker med olika servicesvar får du en mycket bättre uppfattning.
Vi kan också använda aggregerade funktioner i XPath Match-uttryck. De är Sum, Min, Max, Count och Avg.
Till exempel , om vi vill veta det totala antalet leverantörer som räknas i de förväntade resultaten, skriv följande skript.
count (// ns1: SupplierData) och det återvänder 536 som ett resultat. Kom ihåg att alla aggregerade funktioner ska vara små.
# 4) XQuery Match-påstående
Detta liknar något av påståendet XPath Match. Som vi har sett i XPath Match-påståendekonfigurationen kommer det att finnas två avsnitt - deklaration och förväntat resultat.
- Lägg till XQuery Match-påstående för begäran
- Klicka på i konfigurationsfönstret deklarera knappen och skriv följande skript
- Klicka nu Välj från aktuell knapp
- SOAPUI genererar svaret för skriptet
XQuery-uttryck stöder också XPath Match-uttryck men det har sin egen skriptsyntax som inte kan användas i XPath-matchning.
Till exempel :
Vi kommer att se ett exempel för att hämta allt leverantörssvar med XQuery-uttryck. Titta på detta exempel på skärmdump för att förstå bättre.
Verkligt manus:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
Det finns fler inbyggda funktioner tillgängliga för användning i XQuery-uttryck. Dom är där, beställ av, för, retur och så vidare.
Slutsats
Det är de vanligaste påståendena för dig.
Tyngdpunkten här är att: Påståenden är viktigast för att förutsäga det förväntade resultatet av webbtjänsterna exakt. Det är anledningen till att det är en av nycklarna funktioner i SOAPUI PRO .
Nästa handledning : I nästa handledning kommer vi att få groovy med grunderna om skript och mer ...
Håll kontakten. Som alltid är dina kommentarer, frågor och förslag mycket välkomna.
Rekommenderad läsning
- Hur man utför datadriven testning i SoapUI Pro - SoapUI-handledning nr 14
- 15+ SoapUI-handledning: Det bästa testtjänstprogrammet för webbtjänster
- Fördjupade förklaringar om förmörkelser för nybörjare
- Hur man använder egenskaper i SoapUI Groovy Script - SoapUI-handledning nr 7
- 7 Viktiga funktioner i SoapUI och SoapUI Pro - Handledning 2
- Arbeta med SoapUI Properties - SoapUI Tutorial # 8
- 4 Viktiga funktioner i SoapUI Pro för Pro Audience - SoapUI Tutorial # 12
- Steg för steg SoapUI nedladdnings- och installationsprocess - SoapUI-handledning nr 3