understanding assertions soapui soapui tutorial 5
We hebben gewerkt aan de basis van SoapUI zoals projecten aanmaken, WSDL toevoegen, een verzoek versturen & reacties ontvangen en het genereren van testmiddelen die tot nu toe bij hen passen.
In deze 5e SoapUI-tutorial leren we alles over beweringen in SoapUI. We raden u ten zeerste aan volg de volledige SoapUI trainingsreeks op deze pagina om al deze kernfuncties te leren.
Wat je leert:
- Inleiding tot beweringen
- Werken met verschillende soorten beweringen in SoapUI
- Gevolgtrekking
- Aanbevolen literatuur
Inleiding tot beweringen
Zoals bij elke test, moeten we vergelijken wat we willen dat het systeem doet en wat het werkelijk doet, om tot een bepaalde validatie of bewering te komen, zoals het wordt genoemd in de context van webservices. Als testers maakt het niet uit of we 1000 of zelfs miljoen teststappen hebben uitgevoerd, maar voor ons bepaalt de resultaatvergelijking de uitkomst van een test.
Daarom zullen we dit hele artikel besteden aan het begrijpen hoe we dat kunnen doen met SoapUI, hoewel webservices handmatig kunnen worden bevestigd. Ook is een handmatige bewering tijdrovend als er meerdere reacties zijn en reacties met grote hoeveelheden gegevens. SoapUI-beweringen zijn uitstekend in het overwinnen van deze tekortkomingen.
SOAPUI-beweringen vergelijk de delen / het gehele antwoordbericht met het verwachte resultaat. We kunnen een verscheidenheid aan beweringen van SoapUI aan elke teststap toevoegen. Elk type bewering is gericht op specifieke validaties van het antwoord, zoals het matchen van tekst, het vergelijken van XPATH of we kunnen ook vragen schrijven op basis van onze behoefte.
Wanneer de teststappen worden uitgevoerd, ontvangen de bijbehorende beweringen het antwoord voor de respectieve teststappen. Als een reactie is mislukt, wordt de respectieve bewering verwerkt en wordt de bijbehorende teststap gemarkeerd als mislukt. Deze melding kan worden bekeken in de testcaseweergave. We kunnen ook mislukte teststappen vinden in het testuitvoeringslogboek. Het voorbeeld van een teststapbevestigingsscherm ziet er als volgt uit:
In de bovenstaande afbeelding zijn enkele van de teststappen MISLUKT en sommige zijn GESLAAGD. De reden is de bewering.
Zoals we eerder hebben besproken, is het resultaat MISLUKT als niet aan de assert-voorwaarde wordt voldaan met de verwachte resultaten.
Werken met verschillende soorten beweringen in SoapUI
Laten we nu eens kijken hoe we met verschillende soorten beweringen kunnen werken, zoals:
- Bevat en bevat geen beweringen
- XPath-overeenkomst en
- XQuery-match-beweringen.
Ten eerste hebben we een geldige WSDL-schemalocatie nodig.
Volg de onderstaande stappen:
Stap 1. Maak een nieuw SOAP-project door op CTRL + N te drukken en de stappen te volgen. Nadat het project is gemaakt, genereert SOAPUI de lijst met interfaces en de bijbehorende verzoeken.
Stap 2. Volg deze stappen om de testsuite aan dit project toe te voegen:
- Klik met de rechtermuisknop op de interfacenaam MedicareSupplierSoap
- Klik Genereer Testsuite optie uit het contextmenu
- Klik op OK in het onderstaande venster dat verschijnt:
- In de volgende pop-up moet u de gewenste naam van de testsuite invoeren en op OK klikken
- SOAPUI PRO genereert de testsuite samen met de verzoeken in het navigatievenster.
- Onder de testsuite ziet u enkele teststappen met de SOAP-verzoekstap.
Stap 3. Om deze testsuite uit te voeren, dubbelklikt u op de aanvraagstap en specificeert u de invoerwaarde op de betreffende locatie. Open bijvoorbeeld GetSupplierByCity verzoek en voer New York tussen de city-tags.
- Start dit verzoek door op het RUN-pictogram te klikken - dit zal het antwoord ontvangen.
- Laten we nu beweringen toevoegen. Klik daarvoor op het Beweringen tabblad aanwezig bovenaan logtabbladen.
- Door met de rechtermuisknop te klikken, verschijnt een pop-upmenu met enkele basisopties voor beweringen, zoals hieronder:
# 1) Bevat bewering
Klik op de optie Bevestiging toevoegen of klik erop vanuit de werkbalk - Voeg een bewering toe venster verschijnt op het scherm met verschillende soorten beweringen.
1. Klik op Eigenschap Inhoud categorie uit de lijst - de bijbehorende assertietypes en hun beschrijving worden weergegeven
2. Klik op Bevat assertion en klik op de knop Toevoegen
3. Dit is het configuratievenster voor beweringen. Hier zelf moeten we de verwachte conditie specificeren op basis van de respons.
Bijvoorbeeld is, laat me binnen New York tekst in dit tekstveld. Negeer hoofdletters in vergelijking selectievakje wordt genegeerd, zelfs als de verwachte waarde in hoofdletters of kleine letters is.
4. Voer nu de testsuite uit en verifieer de resultaten. Zoals u in het testsuite-venster hebt gezien, geeft groen de succesvolle uitvoering aan en rood geeft een mislukking aan.
# 2) Bevat geen bewering
We kunnen de bewering 'niet bevat' gebruiken voor het valideren van verzoeken in negatieve scenario's. We kunnen gebruiken GetSupplierByZipCode verzoek om dat te leren.
Open het aanvraagtabblad door erop te dubbelklikken. Voer in het invoerverzoek de ongeldige postcode op de juiste locatie in, zoals 10029 Voer dit verzoek nu uit. Controleer de responsgegevens met de leveranciersgegevens voor de opgegeven postcode - bekijk de onderstaande afbeelding:
(Klik op afbeelding voor vergrote weergave)
De bewering 'niet bevat' wordt groen gemarkeerd wanneer deze met succes wordt uitgevoerd.
In het configuratievenster hebben we geconfigureerd met een positieve verwachte waarde zoals hieronder:
Het retourneert true als de verwachte voorwaardelijke waarde niet wordt gevonden en geeft false als de verwachte waarde wordt gevonden in het antwoordbericht.
Op dezelfde manier kunnen we de voorwaarde wijzigen en de aanvraag opnieuw uitvoeren. Het genereert de resultaten dienovereenkomstig.
# 3) XPath Match Assertion
XPath-match-assertion is een beetje anders in termen van dat het de respons zal bevestigen met behulp van werkelijke responsgegevens.
Bijvoorbeeld , als we een webservice voor inlogverificatie hebben die de gebruikersreferenties verifieert en de bevestiging naar de klant stuurt met een of ander Booleaans type gegevens dat WAAR of ONWAAR kan zijn in de vorm van XML.
Zoals u weet, worden XML-documenten gemaakt door middel van tags. Dus wanneer u de verwachte waarde in de configuratie specificeert, moet deze in de vorm van XML zijn.
gratis studio youtube naar mp3 converter
Laten we dat proberen:
Voeg nog een bewering toe voor de GetSupplierByCity verzoek. Klik in het venster Assertion toevoegen op het Eigenschap Inhoud categorie en klik vervolgens op XPath-overeenkomst bewering.
Het onderstaande venster wordt weergegeven:
Het bovenste gedeelte is het declaratiegedeelte en het onderste gedeelte is het verwachte resultaatgedeelte.
Als we op het Verklaren optie krijgen we enkele automatisch gegenereerde declaratiescripts zoals hieronder:
declareer namespace soap = ’http: //schemas.xmlsoap.org/soap/envelope/’;
declareer de naamruimte ns1 = ’http: //www.webservicex.net/’;
In de bovenstaande scripts geeft de eerste regel het antwoord aan dat XML-gegevens en ingesloten SOAP-tags moet zijn. Op de volgende regel wordt het hele antwoord toegewezen aan of gekopieerd naar het ns1 namespace-variabele tijdens de uitvoering. Als we bepaalde gegevens uit het hele antwoord willen filteren, moeten we het volgende script toevoegen.
// ns1: SupplierData (1)
Zoals u weet, als u het GetSupplierByCity verzoek, zal het het antwoord produceren dat de lijst bevat met de persoonlijke gegevens van de leverancier waartoe behoort New York City
Hier hebben we gebruikt XPath-wedstrijd expressie om de persoonlijke gegevens van de specifieke leverancier uit de bulkrespons te halen. Voor dat doel hebben we een ns1 variabele. Klik nu op het Kies uit een Current knop.
Vervolgens genereert SOAPUI het volgende resultaat:
Raadpleeg deze screenshot:
Hier in de responsgegevens ziet u slechts één persoonlijke gegevens van een leverancier. Op basis van het aantal dat tussen de punthaken staat, wordt de uitvoer gegenereerd.
Tot dusverre gaat dit over het kiezen van het deel van de respons dat nodig is, hoe kunnen / gebruiken we dit XPath-wedstrijd bewering?
Laten we daar op ingaan: Klik op de knop Opslaan als u eenmaal akkoord bent met het antwoord.
Als u deze service in eerste instantie zou hebben uitgevoerd na het configureren van XPath-matchbevestiging zonder wijzigingen, is het resultaat een succesvolle reactie, de status is groen gemarkeerd.
Maar laten we de invoerparameter in het invoerverzoek wijzigen in iets dat een ongeldige stad is - 'XYZ of ABC'. Voer het verzoek uit en controleer de resultaten en de status van de bewering. We krijgen een foutreactie en een rode statusindicatie voor de bewering. Omdat we al hadden aangegeven dat de betreffende leveranciersgegevens in de servicerespons in de verwachte resultaatconfiguratie aanwezig zouden moeten zijn en wanneer de plaatsnaam ongeldig is, is die leverancier duidelijk niet aanwezig.
Dit is hoe we het XML-antwoord kunnen bevestigen met behulp van XPath Match-expressie-assertion. Overeengekomen dat dit in het begin vrij eenvoudig is, maar als u het probeert met verschillende servicereacties, krijgt u een veel beter idee.
We kunnen ook geaggregeerde functies gebruiken in de XPath Match-expressie. Dit zijn Som, Min, Max, Count en Avg.
Bijvoorbeeld , als we willen weten dat het totale aantal leveranciers meetelt in de verwachte resultaten, schrijf dan het volgende script.
count (// ns1: SupplierData) en het keert terug 536 als resultaat. Onthoud dat alle geaggregeerde functies in kleine letters moeten staan.
# 4) XQuery Match-bewering
Dit lijkt enigszins op de bewering van XPath Match. Zoals we hebben gezien in de XPath Match-assertionconfiguratie, zullen er twee secties zijn: declaratie en verwacht resultaat.
- Voeg XQuery Match-bewering toe voor het verzoek
- Klik in het configuratievenster op verklaren knop en schrijf het volgende script
- Klik nu Kies uit Huidig knop
- SOAPUI genereert het antwoord voor het script
XQuery-expressie ondersteunt ook XPath Match-expressie, maar het heeft zijn eigen scriptsyntaxis die niet kan worden gebruikt in XPath-matchbevestiging.
Bijvoorbeeld
We zullen een voorbeeld zien om alle antwoorden op leveranciersgegevens op te halen met behulp van de XQuery-expressie. Bekijk dit voorbeeldscherm voor een beter begrip.
Werkelijk script:
Er zijn meer ingebouwde functies beschikbaar om te gebruiken in XQuery-expressie. Zij zijn waar, bestellen door, voor, retourneren enzovoort.
Gevolgtrekking
Nou, dat zijn de meest gebruikte beweringen voor jou.
Het aandachtspunt hierbij is dat: Beweringen het belangrijkst zijn om het verwachte resultaat van de webservices nauwkeurig te voorspellen. Dat is de reden waarom het een van de belangrijkste is functies in SOAPUI PRO
Volgende tutorial : In de volgende tutorial zullen we groovy worden met de basisprincipes van scripting en meer ...
Blijf alstublieft verbonden. Zoals altijd zijn uw opmerkingen, vragen en suggesties van harte welkom.
Aanbevolen literatuur
- Gegevensgestuurde tests uitvoeren in SoapUI Pro - SoapUI-zelfstudie # 14
- 15+ SoapUI-zelfstudies: de beste API-testtool voor webservices
- Diepgaande Eclipse-zelfstudies voor beginners
- Eigenschappen in SoapUI Groovy Script gebruiken - SoapUI Tutorial # 7
- 7 Belangrijke kenmerken van SoapUI en SoapUI Pro - Tutorial 2
- Werken met SoapUI-eigenschappen - SoapUI-zelfstudie # 8
- 4 Belangrijke kenmerken van SoapUI Pro voor professioneel publiek - SoapUI Tutorial # 12
- Stap voor stap SoapUI download- en installatieproces - SoapUI Tutorial # 3