december 17, 2021

SoapUI Common Assertions

in de vorige twee artikelen hebben we de details van Testspecifieke beweringen behandeld, die alleen van toepassing waren op een specifiek soort TestCase of webdienst die werd getest. Alle beweringen genoemd in het artikel “SoapUI Test Specific Assertions: REST Services” zijn alleen van toepassing op REST WebServices en alle beweringen genoemd in het artikel “SoapUI Test Specific Assertions: SOAP Services” zijn alleen van toepassing op SOAP WebServices. Nu, SoapUI biedt weinig andere beweringen ook, die van toepassing zijn voor zowel zeep en rust diensten zijn en staan bekend als de SoapUI gemeenschappelijke beweringen. In dit artikel zullen we het gebruik van al die veelvoorkomende beweringen begrijpen door de details onder de volgende onderwerpen te behandelen:

  • Wat zijn de gemeenschappelijke eigendom inhoud beweringen in SoapUI?
    • wat bevat bewering in SoapUI?
    • bovendien, Wat is niet bevat bewering in SoapUI?
    • Wat is XPath-bewering in SoapUI?
    • Wat is XQuery Match-bewering in SoapUI?
  • evenzo, wat zijn de gemeenschappelijke naleving, Status, en Standaard beweringen in SoapUI?
    • Wat zijn HTTP-statuscodes-beweringen van SoapUI?
    • bovendien, Wat is de Schema Compliance beweringen in SoapUI?
  • Wat zijn de gemeenschappelijke sla beweringen in SoapUI?

aangezien al deze beweringen van toepassing zijn op zowel SOAP-als RESTDIENSTEN, zullen we de volgende informatie gebruiken om al deze beweringen te valideren. :

  • het REST-project gemaakt met URI: “http://bookstore.toolsqa.com/BookStore/v1/Books “en het SOAP-project gemaakt met behulp van WSDL:” http://bookstore.toolsqa.com/BookStoreService.wsdl “volgens de details vermeld in het artikel” SoapUI: werken met projecten.”
  • u kunt verwijzen naar de voorbeelduitvoer van het REST-project uit het artikel “SoapUI Test Specific Assertions: REST Services”, en de voorbeelduitvoer van het SOAP-project uit het artikel “SoapUI Test Specific Assertions: SOAP Services”.

Wat zijn de beweringen over gemeenschappelijke Eigendomsinhoud in SoapUI?

zoals we al weten, valideren de beweringen over de inhoud van de eigenschap de inhoud van het ontvangen antwoord. SoapUI biedt meerdere inhoud beweringen die van toepassing zijn voor zowel zeep en REST verzoeken zijn. Laten we eens kijken in de secties hieronder, hoe we deze beweringen kunnen gebruiken?

wat bevat bewering in SoapUI?

De bevat bewering zoekt naar het bestaan van een tekenreeks in de eigenschapswaarde.

overweeg een scenario dat we in de boekhandel moeten controleren of een boek met de auteursnaam “Richard E. Silverman” bestaat?Laten we de onderstaande stappen volgen om hetzelfde te valideren met” Bevat ” bewering:

  1. ga eerst naar het dialoogvenster assertie toevoegen. Daarna, klik op de “Bevat” bewering onder de Eigenschap “Inhoud” bewering categorie, zoals hieronder beschreven:

Hoe toe te Voegen Bevat AssertionCommon voor zowel SOAP en REST In SoapUI

  1. ten Tweede, klik op de knop “Toevoegen”, en het zal weer de “Bevat Bewering” dialoog venster, zoals hieronder weergegeven:

Bevat Bewering dialoogvenster in SoapUI

  1. ten Derde, voer de naam van de auteur “Richard E. Silverman” in de “Inhoud” sectie. Het is de zoekstring die u wilt valideren in het antwoord van de webdienst.

  2. Ten vierde, in het bovenstaande dialoogvenster, ziet u ook twee selectievakjes. Zij zijn:

  • hoofdletter negeren: als u het selectievakje hoofdletter negeren inschakelt, zal het de tekenreeks valideren door de hoofdletter te negeren. Stel dat je “richARD E. SilVerMan” typt in het tekstvak inhoud en het selectievakje “Negeer case in vergelijking” aanvinkt. Bovendien zal het de case negeren en alleen controleren op de waarde van de ingevoerde tekenreeks.

IgnoreCase bevat Assertion in SoapUI

dus, de assertion zal doorgaan als de karakters in de string hetzelfde zijn als we het geval negeren.

  • Reguliere Expressie: Als u de uitvoer wilt valideren op basis van een RegEx, kunt u dit selectievakje aanvinken en vervolgens uw reguliere expressie opgeven in het gedeelte Inhoud. SoapUI volgt de reguliere expressie patronen gespecificeerd door Oracle bijvoorbeeld, als we willen valideren dat de book service antwoord bevat ” O ‘ Reilly “in de reactie, kunt u opgeven”.O ‘ Reilly.”als een RegEx in de inhoud sectie, zoals hieronder getoond:

Reguliere Expressie In bevatten bewering in SoapUI

dus, we kunnen het bestaan van een tekenreeks in de reactie van de WebService valideren met behulp van de Bevat bewering, en we kunnen dit gebruiken voor zowel SOAP als REST Webservices.

wat bevat bewering in SoapUI?

in tegenstelling tot ‘bevat bewering’, zoekt de ‘niet bevat bewering’ naar het niet-bestaan van een tekenreeks in de eigenschapswaarde. Bovendien wordt deze bewering doorgegeven als het antwoord niet de opgegeven waarde bevat.

laten we aannemen; we willen valideren dat er geen boek is met de titel “Groovy Book” in de reactie van de book store service, we kunnen deze bewering gebruiken om de reactie van de BookStore API te valideren.

volg de onderstaande stappen om hetzelfde te valideren met” Not Contains “assertion:

  1. ga eerst naar het dialoogvenster Assertion toevoegen en klik op de” NOT Contains “assertion onder de categorie” Property Content ” assertion, zoals hieronder aangegeven:

hoe toe te voegen niet bevat assertionCommon voor zowel zeep en rust in SoapUI

  1. ten tweede, klik op de “Toevoegen” knop, en het zal de “nietbevat bewering” dialoogvenster weer te geven, zoals hieronder getoond:

  2. Ten derde, voer de naam van de string “Groo Book” in de “Content” sectie. Het is de zoekstring die u wilt valideren die niet bestaat in het antwoord van de webdienst.

opmerking: de twee selectievakjes (Negeer geval & RegEx) werken hier op dezelfde manier, zoals ze waren met de Bevat bewering.

  1. Ten Vierde, door op de knop “OK” te klikken, wordt de bewering uitgevoerd tegen het antwoord van de webdienst en wordt het resultaat getoond, zoals hieronder getoond:

bevat geen Assertieconfiguratie in SoapUI

  1. dus, zolang de string niet aanwezig is in het antwoord van de doel service, zal de bewering passeren.

Wat is XPath Match Assertion in SoapUI?

met de bevestiging van de XPath-Overeenkomst kunt u een XPath-expressie gebruiken om de inhoud van het specifieke knooppunt van het doelantwoord te selecteren en te vergelijken met de waarde die u verwacht.

stel dat u wilt valideren dat ISBN van het eerste boek aanwezig in de reactie van BookStore API is niet null. We kunnen hetzelfde snel valideren met de XPath assertion.

volg de onderstaande stappen om hetzelfde te valideren met” XPath Match ” assertion:

  1. ga eerst naar het dialoogvenster assertie toevoegen. Daarna, klik op de” XPath Match “bewering onder de” Property Content ” assertion categorie, zoals hieronder gemarkeerd:

het toevoegen van XPath Wedstrijd AssertionCommon voor zowel SOAP en REST in SoapUI

  1. ten Tweede, klik op de “Add” knop en verschijnt het “Xpath Overeenkomen met de Configuratie van de” dialoog venster, zoals hieronder weergegeven:

Xpath Wedstrijd Bewering ConfigurationsCommon voor zowel SOAP en REST in SoapUI

Waar,

  • Declareren: klik op deze knop haalt en vult de naamruimte automatisch. Als u zeker bent van de details van de naamruimte, kunt u het handmatig, anders klikt u op de “Verklaren” – knop en u vult het naamruimte details, zoals hieronder weergegeven:

    • De naamruimte voor de SOAP zal worden ingevuld, zoals hieronder weergegeven:

Waarbij Naamruimte voor SOAP-service in Xpath wedstrijd bewering in SoapUI

  • Ook de naamruimte voor de REST dienst zal worden ingevuld, zoals hieronder weergegeven:

naamruimte declareren voor REST service in XPath match assertion in SoapUI

na het declareren van de naamruimte, kunnen we XPATH van het gewenste knooppunt opgeven in de sectie XPath expressie.

  • u kunt een voorbeeld opgeven XPATH “//ns1:BooksResult / ns1: Books/ns1: CustomBookModel / ns1: Isbn ” voor de SOAP service zoals hieronder getoond:

het specificeren van XPath voor een SOAP service in SoapUI

evenzo kunt u een voorbeeld XPath “//ns1:books//ns1:e/ns1:isbn” voor de REST service opgeven zoals hieronder getoond:

het specificeren van XPath voor een RESTDIENST in SoapUI

let op het gebruik van naamruimte ns1 in beide gevallen. Voor toegang tot de knooppunten is het gebruik van de naamruimte verplicht.

  • Selecteer uit current: door op deze knop te klikken, selecteert het automatisch de waarde van het knooppunt zoals hierboven vermeld in de sectie verwacht resultaat, die in het bovenstaande geval isbn is. Daarnaast selecteert het de waarde van node isbn als “9781449325862”. Als u de waarde niet automatisch wilt selecteren door op deze knop te klikken, kunt u het verwachte resultaat ook handmatig typen.
  • Test: Door te klikken op de “Test” knop, kunt u het testen van de output, als de bewering gaat, toont de onderstaande succes alert :

Xpath Match Test bericht alert in SoapUI

Of als de bewering niet lukt, gooit Fout en geeft een dialoog venster, zoals hieronder weergegeven:

XpathMatch test Fout

  • Optioneel Selectievakjes: Het Verwachte Resultaat sectie bevat een aantal aankruisvakken ook, die zorgt voor extra hulp bij het valideren van de bewering. Laten we de details van deze selectievakjes begrijpen:
  • Wildcard toestaan Checkbox: als de waarde die we dynamisch willen valideren veranderingen in het doel antwoord, dan kunnen we jokertekens gebruiken om het antwoord te valideren. Stel, als we bedenken dat het isbn van het 1e boek altijd eindigt op” 862″, dan kunnen we de Joker *” 862 “gebruiken, die zal valideren dat het isbn altijd eindigt op”862”. Het zal verschijnen in de sectie verwacht resultaat als:

Wildcard XPath-overeenkomst toestaan in SoapUI

  • selectievakje naamruimte-voorvoegsel negeren: Als we het naamruimtevoorvoegsel willen negeren tijdens het valideren van het antwoord, kunnen we dat doen door dit selectievakje aan te vinken.
  • XML-opmerkingen negeren Checkbox: als we de opmerkingen in het antwoord willen negeren, kunnen we dit bereiken door dit selectievakje te selecteren.
  • na het verkennen van alle bovenstaande opties, klikt u op de knop Opslaan om de bewering op te slaan. Het zal doorgaan als de bewering en zal de verwachte Isbn krijgen als “9781449325862”. Bijgevolg zal het de steekproefoutput als volgt tonen:

XPath Match AssertionCommon for both SOAP and RESToutput View in SoapUI

Wat is XQuery Match Assertionin SoapUI?

de XQuery-overeenkomst is vergelijkbaar met de bewering van XPath, met het enige verschil dat het een XQuery-uitdrukking gebruikt en vergelijkt met het resultaat dat u verwacht.

overweeg een scenario als u alle “titels” van de boeken die beschikbaar zijn in het antwoord wilt valideren, ongeacht de volgorde waarin ze bestaan. U kunt een eenvoudige XQuery schrijven en dan bent u klaar om te gaan.

volg de onderstaande stappen om hetzelfde te valideren met “xquerymatch” assertion:

  1. ga eerst naar het dialoogvenster assertie toevoegen. Daarna, klik op de “XQuery Match” bewering onder de “Property Content” assertion categorie, zoals hieronder gemarkeerd:

hoe toe te voegen XQuery Match AssertionCommon voor zowel zeep en rust in SoapUI

  1. ten tweede, klik op de “Toevoegen” knop, en het zal de “XQuery Match Configuration” dialoogvenster weer te geven, zoals hieronder getoond:

XQuery Match Assertion configuratie gebruikelijk voor zowel SOAP als REST In SoapUI

waar,

  • XQuery-expressie: Dit is de XQuery-expressie die u moet specificeren om de waarde uit het antwoord van de webdienst te extraheren. Om bijvoorbeeld de titel van alle boeken te krijgen, kunnen we de XQuery-expressie als volgt specificeren:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>

In het bovenstaande codefragment:

  • <Result> is de tag waarin het resultaat wordt opgeslagen op basis van de XQuery-reactie. Bovendien kan het elke tag zijn op basis van de keuze van de gebruiker.
  • daarnaast herhalen we het antwoord met de for-lus, en $z is elke variabele, die de waarde van <CustomBookModel>krijgt.
  • //. Hiermee geeft u de root van het CustomBookModel op, u kunt ook navigeren met naamruimte en vervolgens de naamruimte opgeven in plaats van **”//.”.***
  • naast het bovenstaande retourneert de functie “return” de waarde van het <Title> label.
  • ook geeft de functie” data ” de gegevens van elk titellabel in het <CustomBookModel> – label terug.

2) selecteren uit huidige: Klik op de knop om de huidige waarde van het antwoord te selecteren volgens de genoemde XQuery.

3) verwacht resultaat: na het klikken op de” Selecteer van de huidige ” knop, zal het alle titels uit het antwoord van de service retourneren. U kunt ook handmatig het verwachte resultaat opgeven.

4) Als u op de “Test” knop klikt, wordt het antwoord op succes weergegeven, zoals hieronder getoond:

succesvolle XQuery match Assertion in SoapUI

  1. klikken op de” OK ” knop zal de geldige uitvoering van de bewering te tonen.

Wat zijn de Algemene beweringen over Compliance, Status en standaard in SoapUI?

net als de veelvoorkomende beweringen van SoapUI onder de sectie “inhoud van het onroerend goed”, bevat het ook enkele beweringen onder de categorie “Compliance, Status and Standard”, die gebruikelijk zijn voor zowel SOAP-als REST-Webservices. Laten we de details van al deze beweringen in de volgende secties begrijpen:

Wat zijn HTTP-statuscodes beweringen geleverd door SoapUI?

zoals we allemaal weten, geven de HTTP-statuscodes aan of een HTTP-aanvraag is voltooid of niet. Al deze responscodes zijn over het algemeen opgesplitst in de volgende categorieën:

1 1xx: informatief: deze statuscodes vertegenwoordigen de ontvangst van het verzoek en de verwerking ervan.
2 2xx: succes: deze statuscodes geven aan dat de actie met succes is ontvangen, verwerkt en geaccepteerd.
3 3xx: omleiding: deze statuscodes geven aan dat er verdere actie nodig is om het verzoek te voltooien.
4 4xx: Client Error: deze statuscodes geven aan dat het verzoek onjuiste syntaxis bevat, of er is iets mis met ons verzoek.
5 5xx: serverfout: deze statuscodes geven aan dat er een fout aan de serverzijde is, wat betekent dat de server Een geldig verzoek niet heeft kunnen vervullen.

voor de validatie van deze statuscodes, SoapUI biedt een paar beweringen. Laten we de details van deze beweringen in de volgende secties begrijpen:

Wat is een geldige HTTP-statuscode-bewering in SoapUI?

deze bewering bevestigt dat de HTTP-antwoordcode die door de Webservice wordt geretourneerd, in de lijst met verwachte HTTP-codes staat.

overweeg een scenario dat Voor de BookStore API, we willen valideren dat de antwoordcode die wordt geretourneerd altijd 200 of 201 is. We kunnen de bewering “Valid HTTP Status Codes” gebruiken om hetzelfde te valideren.

volg de onderstaande stappen om hetzelfde te valideren met” Valid HTTP Status Codes ” assertion:

  1. Navigeer naar het dialoogvenster Assertion toevoegen en klik op de” Valid HTTP Status Codes “assertion onder de” Compliance, Status and Standard “assertion categorie, zoals hieronder gemarkeerd:

hoe een geldige HTTP-statuscode assertionCommon toe te voegen voor zowel SOAP als REST In SoapUI

  1. klik op de” Add ” knop, en het zal het “Valid HTTP status codes Assertion Configuration” dialoogvenster, zoals hieronder getoond:

geldige HTTP-statuscode Assertion configurationsCommon voor zowel SOAP als REST In SoapUI

  1. in de” codes specificeren ” sectie, zet de waarden 200, 201. U kunt een enkele code of een lijst met door komma ‘ s gescheiden codes opgeven. Klikken op de” OK ” knop zal de HTTP status codes te valideren tegen de laatste reactie van de service.

Wat is een ongeldige bewering voor HTTP-statuscodes in SoapUI?

in tegenstelling tot de bewering” geldige HTTP-statuscodes”, valideert de bewering” ongeldige HTTP-statuscodes “dat de lijst” verwachte codes ” niet de HTTP-statuscode bevat die door de Webservice wordt geretourneerd.

overweeg een scenario dat Voor de BookStore API, we willen valideren dat de antwoordcode die wordt geretourneerd niet 401 is. We kunnen de bewering” ongeldige HTTP-statuscodes ” gebruiken om hetzelfde te valideren.

volg de onderstaande stappen om hetzelfde te valideren met “ongeldige HTTP-statuscodes” bewering:

  1. Navigeer naar het dialoogvenster Assertion toevoegen en klik op de” Invalid HTTP Status Codes “assertion onder de” Compliance, Status and Standard “assertion categorie, zoals hieronder gemarkeerd:

hoe ongeldige HTTP-statuscode assertionCommon op te geven voor zowel SOAP als REST in SoapUI

  1. klik op de knop “Toevoegen” en het zal het dialoogvenster “ongeldige HTTP-statuscodes Assertieconfiguratie” weergeven, zoals hieronder getoond:

ongeldige HTTP-statuscode Assertieconfiguraties gebruikelijk voor zowel SOAP als REST in SoapUI

  1. in de” codes specificeren ” sectie, zet waarden 401. U kunt een enkele code of een lijst met door komma ‘ s gescheiden codes opgeven. Als u op de knop “OK” klikt, wordt het niet-bestaan van HTTP-statuscodes vergeleken met het laatste antwoord van de service.

opmerking: We kunnen deze beweringen toepassen op zowel SOAP-als REST-eindpunten.

Wat zijn de beweringen over de naleving van Schema ‘ s in SoapUI?

behalve statuscodes kunnen we in SoapUI ook het antwoordbericht valideren tegen de definitie in de WSDL(SOAP) of WADL (REST) van de te testen doeldienst.

overweeg een scenario dat we snel willen controleren of de SOAP-respons die we krijgen voldoet aan de WSDL of niet?

volg de onderstaande stappen om hetzelfde te valideren met behulp van “Schema Compliance” assertion:

  1. Navigeer naar het dialoogvenster Assertion toevoegen en klik op de” Schema Compliance “assertion onder de” Compliance, Status and Standard “assertion category, zoals hieronder aangegeven:

hoe toe te voegen Schema Compliance AssertionCommon voor zowel zeep en rust in SoapUI

  1. klik op de knop “Toevoegen” en het zal het dialoogvenster “Schema Compliance Assertion Configuration” weergeven, zoals hieronder getoond:

  2. In het dialoogvenster Configuratie vult het automatisch de WSDL aan, die het project heeft gemaakt, maar als u een andere WSDL wilt opgeven, kunt u deze ook bijwerken. Klik op OK om verder te gaan.

Antwoordweergave voor naleving van Schema-beweringen in SoapU

  1. als het antwoord compatibel is volgens het genoemde schema, ziet u het antwoord op succes, zoals hierboven weergegeven. U ziet de fout wanneer het laatste antwoord niet voldoet aan het WSDL-schema.

Noot: Op dezelfde manier kunt u de reactie van de REST service valideren tegen een opgegeven WADL.

Wat zijn de veel voorkomende sla beweringen in SoapUI?

zoals we allemaal weten, wordt een Service Level Agreement (SLA) in het algemeen aangeduid als de overeenkomst tussen een dienstverlener en een klant. De Overeenkomst kan worden ingedeeld op basis van verschillende overeengekomen kenmerken zoals beschikbaarheid, kwaliteit, responstijd, enz. SoapUI biedt de functionaliteit om de responstijd van een specifieke dienst te valideren.

overweeg een hypothetisch scenario dat de overeengekomen responstijd voor de webdienst van de boekwinkel minder dan 4 seconden bedraagt. We kunnen hetzelfde valideren in SoapUI met behulp van de” SLA ” assertion categorieën.

volg de onderstaande stappen om hetzelfde te valideren met” Response SLA “assertion:

  1. Navigeer naar Assertion dialoogvenster Toevoegen en klik op de” Response SLA “assertion onder de” SLA ” assertion categorie, zoals hieronder gemarkeerd:

Hoe voeg Reactie SLA assertionCommon voor zowel SOAP en REST in SoapUI

  1. Klik op de knop “Toevoegen”, en het zal weer de “Reactie SLA Bewering configuratie” dialoogvenster zoals hieronder weergegeven:

Configureren SLA assertionCommon voor zowel SOAP en REST in SoapUI_0

  1. Geef de maximale tijd (in ms), waarin de dienst verwacht om terug te keren de reactie. Voor ons scenario hebben we 4000 ms opgegeven. klik op de OK knop om de bewering toe te voegen. Het zal het testresultaat tonen, zoals hieronder getoond:

SLA Assertiereactieweergave in SoapUI

  1. zoals we kunnen zien in de bovenstaande screenshot, als de responstijd van de dienst was 1374 ms, dus het was onder de genoemde SLA van 4000 ms en resulteerde in een succesvolle bewering.

Key Takeaways

  • SoapUI biedt een breed scala aan beweringen die kunnen worden toegepast op zowel SOAP-als REST-webservices.
  • bovendien zijn enkele van de veelvoorkomende beweringen bevatten, niet bevatten, Xpath en XQuery Match, die worden gebruikt voor de validatie van de reactie van de inhoud van de webdienst.
  • bovendien wordt een andere reeks algemene beweringen van SoapUI gebruikt voor de validatie van de HTTP-statuscodes en het schema van de respons van de WebServices.
  • SoapUI biedt ook een SLA-bewering die kan worden gebruikt voor de validatie van de responstijd van zowel SOAP-als RESTDIENSTEN.

laten we verder gaan naar het volgende artikel waar we dieper zullen duiken om te begrijpen hoe we sommige voorafgaande beweringen kunnen implementeren met behulp van “Script Assertions” in SoapUI.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.