SoapUI Common Assertions
az előző két cikkben a Tesztspecifikus állítások részleteit ismertük meg, amelyek csak egy adott teszt eset vagy webszolgáltatás esetében alkalmazhatók. A “SoapUI teszt specifikus állítások: REST szolgáltatások” cikkben említett összes állítás csak a REST Webszolgáltatásokra vonatkozik, a “SoapUI teszt specifikus állítások: SOAP szolgáltatások” cikkben említett összes állítás pedig csak a SOAP Webszolgáltatásokra vonatkozik. Most a SoapUI néhány más állítást is tartalmaz, amelyek mind a SOAP, mind a REST szolgáltatásokra alkalmazhatók, és SoapUI közös Állításokként ismertek. Ebben a cikkben, meg fogjuk érteni az összes általános állítás használatát azáltal, hogy a részleteket a következő témákban ismertetjük:
- melyek a SoapUI közös tulajdon tartalmi állításai?
- mit tartalmaz állítás SoapUI?
- ezenkívül mi nem tartalmaz állítást a SoapUI – ban?
- mi az XPath állítás a SoapUI – ban?
- mi az XQuery Match Assertionin SoapUI?
- hasonlóképpen, melyek a SoapUI-ban a közös megfelelés, státusz és Standard állítások?
- mik azok a HTTP állapotkódok, amelyeket a SoapUI nyújt?
- ezenkívül mi a séma megfelelőségi állítás a SoapUI – ban?
- melyek a SoapUI általános SLA állításai?
mivel ezek az állítások mind a SOAP, mind a REST szolgáltatásokra alkalmazhatók, a következő információkat fogjuk felhasználni ezen állítások érvényesítéséhez:
- az URI használatával létrehozott REST projekt: “http://bookstore.toolsqa.com/BookStore/v1/Books “és a WSDL használatával létrehozott SOAP projekt:” http://bookstore.toolsqa.com/BookStoreService.wsdl “a” SoapUI: Working with Projects ” cikkben említett részletek szerint.”
- a REST projekt mintakimenetét a “SoapUI teszt specifikus állítások: REST szolgáltatások” cikkből, a SOAP projekt mintakimenetét pedig a “SoapUI teszt specifikus állítások: SOAP szolgáltatások”cikkből tekintheti meg.
melyek a SoapUI közös tulajdon tartalmi állításai?
mint azt már tudjuk, a Tulajdonságtartalomra vonatkozó állítások érvényesítik a kapott válasz tartalmát. A SoapUI több tartalmi állítást biztosít, amelyek mind a SOAP, mind a REST kérelmekre alkalmazhatók. Lássuk az alábbi szakaszokban, hogyan tudjuk használni ezeket az állításokat?
mit tartalmaz állítás SoapUI?
a Contains állítás string token létezését keresi a tulajdonság értékében.
Vegyünk egy forgatókönyvet, hogy a könyvesbolt Szolgáltatás, meg kell, hogy ellenőrizze, hogy egy könyvet a szerző neve “Richard E. Silverman” létezik?Kövessük az alább említett lépéseket, hogy érvényesítsük ugyanezt a “Tartalmaz” állítással:
- először keresse meg az állítás hozzáadása párbeszédpanelt. Ezt követően kattintson a “Tartalmaz” állításra a “Tulajdonságtartalom” állítás kategóriában, az alábbiak szerint:
- másodszor, kattintson az ” Add “gombra, és megjelenik a” contains Assertion ” párbeszédpanel, az alábbiak szerint:
-
harmadszor, írja be a szerző nevét “Richard E. Silverman “a” Tartalom ” részben. Ez a keresési karakterlánc, amelyet érvényesíteni szeretne a webszolgáltatás válaszában.
-
negyedszer, a fenti párbeszédpanelen két jelölőnégyzet is megjelenik. Ezek:
- eset figyelmen kívül hagyása: Ha bejelöli az eset figyelmen kívül hagyása jelölőnégyzetet, akkor az az eset figyelmen kívül hagyásával érvényesíti a karakterláncot. Tegyük fel, hogy beírja a “richARD E. SilVerMan” szót A tartalom szövegmezőbe, és bejelöli az “eset figyelmen kívül hagyása összehasonlításban” jelölőnégyzetet. Ezenkívül figyelmen kívül hagyja az esetet, és csak a megadott karakterlánc értékét ellenőrzi.
tehát, az állítás fog múlni, mint a karakterlánc ugyanaz, ha figyelmen kívül hagyjuk az ügyet.
- reguláris kifejezés: Ha a kimenetet RegEx alapján szeretné érvényesíteni, jelölje be ezt a jelölőnégyzetet, majd adja meg a reguláris kifejezést A tartalom szakaszban. A SoapUI például az Oracle által megadott reguláris kifejezési mintákat követi, ha ellenőrizni akarjuk, hogy a könyvszolgáltatási válasz “O ‘ Reilly” – t tartalmaz-e a válaszban, megadhatja “.O ‘ Reilly.”Regexként A tartalom szakaszban, az alábbiak szerint:
fájlban tehát a Contains állítás használatával ellenőrizhetjük egy karakterlánc létezését a webszolgáltatás válaszában, és ezt felhasználhatjuk mind a SOAP, mind a REST Webszolgáltatásokra.
mi nem tartalmaz állítást a SoapUI – ban?
a Contains állítással ellentétben a Not Contains állítás arra keres, hogy egy karakterlánc nem létezik-e a tulajdonság értékében. Ezenkívül ez az állítás akkor is megtörténik, ha a válasz nem tartalmazza a megadott értéket.
tegyük fel; szeretnénk érvényesíteni, hogy a könyvesbolt szolgáltatás válaszában nincs “Groovy Book” című könyv, ezt az állítást felhasználhatjuk a könyvesbolt API válaszának érvényesítésére.
kövessük az alább említett lépéseket, hogy érvényesítsük ugyanezt a “nem tartalmaz” állítással:
- először keresse meg az állítás hozzáadása párbeszédpanelt, majd kattintson a” nem tartalmaz “állításra a” Tulajdonságtartalom ” állítás kategóriában, az alábbiak szerint:
-
másodszor, kattintson a “Hozzáadás” gombra, amely megjeleníti a” NotContains Assertion “párbeszédpanelt, az alábbiak szerint:
-
harmadszor, írja be a “Groo Book” karakterlánc nevét a “tartalom” szakaszba. Az érvényesíteni kívánt keresési karakterlánc nem létezik a webszolgáltatás válaszában.
megjegyzés: a két jelölőnégyzet(Ignore Case & RegEx) itt ugyanúgy működik, mint a Contains állítással.
- negyedszer, az “OK” gombra kattintva végrehajtja az állítást a WebService válasz ellen, és megmutatja az eredményt, az alábbiak szerint:
- tehát, amíg a karakterlánc nincs jelen a célszolgáltatás válaszában, az állítás elmúlik.
mi az XPath Match állítás a SoapUI-ban?
az XPath Match állítás lehetővé teszi, hogy XPath kifejezéssel válassza ki a tartalmat a célválasz adott csomópontjából, és hasonlítsa össze a várt értékkel.
tegyük fel, hogy ellenőrizni szeretné, hogy a BookStore API válaszában szereplő első könyv ISBN-értéke nem null. Ugyanezt gyorsan érvényesíthetjük az XPath állítással.
kövessük az alábbi lépéseket az “XPath Match” állítás érvényesítéséhez:
- először navigáljon hozzá állítás párbeszédpanel. Ezt követően kattintson az “XPath Match” állításra a “Property Content” állítás kategóriában, az alábbiak szerint:
- másodszor, kattintson a “Hozzáadás” gombra, és megjelenik az “Xpath Match Configuration” párbeszédpanel, az alábbiak szerint:
ahol,
-
Deklarálás: erre a gombra kattintva automatikusan letölti és feltölti a névteret. Ha biztos a névtér részleteiben, akkor manuálisan is beírhatja, különben csak kattintson a” Deklarálás ” gombra, és az alább látható módon kitölti a névtér részleteit:
- a SOAP szolgáltatás névtere az alábbiak szerint kerül kitöltésre:
- Hasonlóképpen a REST szolgáltatás névtere is fel lesz töltve, az alábbiak szerint:
a névtér deklarálása után megadhatjuk a kívánt csomópont XPATH-ját a szakaszban XPath kifejezés.
- megadhat egy mintát XPATH “//ns1:BooksResult/ns1:Books/ns1:CustomBookModel/ns1:Isbn” a SOAP szolgáltatáshoz az alábbiak szerint:
alkalmazásban hasonlóképpen megadhat egy mintát XPATH “//ns1:books//ns1:e/ns1:isbn” a REST szolgáltatáshoz az alábbiak szerint:
vegye figyelembe az ns1 névtér használatát mindkét esetben. A csomópontok eléréséhez a névtér használata kötelező.
- válasszon az aktuális közül: erre a gombra kattintva automatikusan kiválasztja a csomópont értékét, amint azt a várt eredmény szakaszban említettük, amely a fenti esetben isbn. Ezenkívül az isbn csomópont értékét “9781449325862” – ként választja ki. Ha erre a gombra kattintva nem szeretné automatikusan kiválasztani az értéket, akkor a várt eredményt manuálisan is beírhatja.
- teszt: a “Teszt” gombra kattintva tesztelheti a kimenetet, ha az állítás átmegy, akkor az alábbi sikerjelzést mutatja :
vagy ha az állítás nem sikerül, akkor dob hiba, és megmutatja a párbeszédablak, az alábbiak szerint:
- opcionális jelölőnégyzetek: a várt eredmény szakasz néhány jelölőnégyzetet is tartalmaz, amely további segítséget nyújt az állítás érvényesítésében. Értsük meg ezeknek a jelölőnégyzeteknek a részleteit:
- helyettesítő karakterek engedélyezése jelölőnégyzet: ha az érvényesíteni kívánt érték dinamikusan változik a célválaszban, akkor helyettesítő karaktereket használhatunk a válasz érvényesítéséhez. Tegyük fel, hogy ha figyelembe vesszük, hogy az 1.könyv isbn-je mindig “862” – vel végződik, akkor használhatjuk a *”862″ helyettesítő karaktert, amely igazolja, hogy az isbn mindig “862” – vel végződik. A várt eredmény szakaszban a következőképpen jelenik meg:
- a névtér előtag figyelmen kívül hagyása jelölőnégyzet: Ha figyelmen kívül akarjuk hagyni a névtér előtagot a válasz érvényesítése közben, ezt a jelölőnégyzet bejelölésével tehetjük meg.
- XML Megjegyzések figyelmen kívül hagyása jelölőnégyzet: ha figyelmen kívül akarjuk hagyni a válaszban szereplő megjegyzéseket, ezt a jelölőnégyzet bejelölésével érhetjük el.
- a fenti lehetőségek feltárása után kattintson a Mentés gombra az állítás mentéséhez. Meg kell felelnie az állítás, és megkapja a várt Isbn mint “9781449325862”. Következésképpen a minta kimenetét a következőképpen mutatja:
mi az XQuery Match Assertionin SoapUI?
az XQuery egyezés nagyon hasonlít az XPath állításra, azzal a különbséggel, hogy XQuery kifejezést használ, és összehasonlítja a várt eredménnyel.
Vegyünk egy forgatókönyvet tegyük fel, hogy érvényesíteni szeretné a válaszban elérhető könyvek összes “címét”, függetlenül attól, hogy milyen sorrendben léteznek. Írhatsz egy egyszerű XQuery-t, majd jó vagy.
kövessük az alább említett lépéseket, hogy érvényesítsük ugyanezt a “XQueryMatch” állítással:
- először keresse meg az állítás hozzáadása párbeszédpanelt. Ezt követően kattintson az “XQuery Match” állításra a “Property Content” állítás kategóriában, az alábbiak szerint:
- másodszor, kattintson a “Hozzáadás” gombra, amely megjeleníti az “XQuery Match Configuration” párbeszédpanelt, az alábbiak szerint:
ahol,
- XQuery kifejezés: ez az XQuery kifejezés, amelyet meg kell adnia az érték kibontásához a webszolgáltatás válaszából. Például az összes könyv címének megszerzéséhez az alábbiak szerint adhatjuk meg az XQuery kifejezést:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>
a fenti kódrészletben:
-
<Result>
az a címke, amelyben az XQuery válasz alapján tárolja az eredményt. Ezenkívül bármilyen címke lehet A felhasználó választása alapján. - ezenkívül a választ a for ciklus segítségével iteráljuk, a $z pedig bármilyen változó, amely
<CustomBookModel>
értéket kap. - //. megadja a CustomBookModel gyökerét, a névtér használatával is navigálhat, majd megadhatja a névteret a **”//helyett.”.***
- a fentieken kívül a “return” funkció visszaadja a
<Title>
címke értékét. - a “data” függvény a
<CustomBookModel>
címke minden címcímkéjének adatait is visszaadja.
2) Válasszon az aktuális közül: Kattintson a gombra az aktuális érték kiválasztásához a válaszból az említett XQuery szerint.
3) várható eredmény: miután rákattintott a “kiválasztás az aktuális” gombra, visszaadja az összes címet a szolgáltatás válaszából. A várt eredményt manuálisan is megadhatja.
4) a “Teszt” gombra kattintva megjelenik a sikerre adott válasz, az alábbiak szerint:
- az “OK” gombra kattintva megjelenik az állítás érvényes végrehajtása.
melyek a SoapUI Általános megfelelőségi, státuszbeli és Standard állításai?
a SoapUI által a “Property Content” szakaszban megadott általános állításokhoz hasonlóan a “Compliance, Status and Standard” kategóriában is tartalmaz néhány állítást, amelyek mind a SOAP, mind a REST webszolgáltatások esetében gyakoriak. Értsük meg ezeknek az állításoknak a részleteit a következő szakaszokban:
mik azok a HTTP állapotkódok, amelyeket a SoapUI nyújt?
mint mindannyian tudjuk, a HTTP állapotkódok jelzik, hogy egy HTTP kérés befejeződött-e vagy sem. Ezek a válaszkódok általában a következő kategóriákra oszlanak:
1 | 1xx: tájékoztató: ezek az állapotkódok a kérelem beérkezését és feldolgozását jelentik. |
2 | 2xx: siker: ezek az állapotkódok azt jelzik, hogy a műveletet sikeresen fogadták, feldolgozták és elfogadták. |
3 | 3xx: átirányítás: ezek az állapotkódok azt jelzik, hogy további műveletekre van szükség a kérés teljesítéséhez. |
4 | 4xx: Ügyfélhiba: ezek az állapotkódok azt jelzik, hogy a kérés helytelen szintaxist tartalmaz, vagy valami nincs rendben a kérésünkkel. |
5 | 5xx: szerverhiba: ezek az állapotkódok azt jelzik, hogy szerveroldali hiba történt, ami azt jelenti, hogy a szerver nem teljesítette az érvényes kérést. |
ezen állapotkódok érvényesítéséhez a SoapUI néhány állítást tartalmaz. Értsük meg ezen állítások részleteit a következő szakaszokban:
mi az érvényes HTTP állapotkódok állítás a SoapUI – ban?
ez az állítás igazolja, hogy a webszolgáltatás által visszaadott HTTP-válaszkód a várt HTTP-kódok listájában található.
tekintsünk egy olyan forgatókönyvet, amely szerint a könyvesbolt API esetében ellenőrizni szeretnénk, hogy a visszaadott válaszkód mindig 200 vagy 201. Használhatjuk az” érvényes HTTP állapotkódok ” állítást annak érvényesítésére.
kövessük az alább említett lépéseket, hogy érvényesítsük ugyanezt az” érvényes HTTP állapotkódok ” állítással:
- keresse meg az állítás hozzáadása párbeszédpanelt, majd kattintson az ” érvényes HTTP állapotkódok “állításra a” megfelelőség, állapot és szabvány “állítás kategóriában, az alábbiak szerint:
- kattintson a “Hozzáadás” gombra, ahol megjelenik az “érvényes HTTP állapotkódok állítás konfigurációja” párbeszédpanel, az alábbiak szerint:
- a” kódok megadása ” szakaszban tegye a 200, 201 értékeket. Megadhat egyetlen kódot vagy vesszővel elválasztott kódok listáját. Az “OK” gombra kattintva érvényesíti a HTTP állapotkódokat a szolgáltatás utolsó válaszával szemben.
Mi Az érvénytelen HTTP állapotkódok állítás a SoapUI-ban?
az “érvényes HTTP-állapotkódok” állítással ellentétben az “érvénytelen HTTP-állapotkódok” állítás igazolja, hogy a “várható kódok” lista nem tartalmazza a webszolgáltatás által visszaadott HTTP-állapotkódot.
Vegyünk egy forgatókönyvet, hogy a könyvesbolt API, szeretnénk ellenőrizni, hogy a válaszkód vissza nem 401. Használhatjuk Az” érvénytelen HTTP állapotkódok ” állítást annak érvényesítésére.
kövessük az alábbi lépéseket Az “érvénytelen HTTP állapotkódok” állítás érvényesítéséhez:
- keresse meg az állítás hozzáadása párbeszédpanelt, majd kattintson Az ” érvénytelen HTTP állapotkódok “állításra a” megfelelőség, állapot és szabvány “állítás kategóriában, az alábbiak szerint:
- kattintson a “Hozzáadás” gombra, ahol megjelenik az “érvénytelen HTTP állapotkódok állítás konfigurációja” párbeszédpanel, az alábbiak szerint:
- a” kódok megadása ” szakaszban tegye a 401 értékeket. Megadhat egyetlen kódot vagy vesszővel elválasztott kódok listáját. Az “OK” gombra kattintva érvényesíti a HTTP állapotkódok nem létezését a szolgáltatás utolsó válaszával szemben.
Megjegyzés: ezeket az állításokat mind a SOAP, mind a REST végpontokra alkalmazhatjuk.
mik a séma megfelelőségi állítások a SoapUI – ban?
Eltekintve státusz kódok, a SoapUI, azt is érvényesíteni a válasz üzenet ellen a meghatározás a WSDL(SZAPPAN), vagy WADL(a TÖBBI) a cél szerinti szolgáltatást, teszt.
Fontolja meg egy olyan forgatókönyv, hogy azt akarjuk, hogy gyorsan ellenőrizze, hogy a SZAPPAN választ, ami vagyunk, hogy az megfelel-e a WSDL, vagy nem?
kövessük a lépéseket, hogy az alább említett, hogy érvényesítse ugyanaz a “Séma Megfelelés” állítás:
- keresse meg az állítás hozzáadása párbeszédpanelt, majd kattintson a “séma Megfelelőség” állításra a “megfelelőség, állapot és szabvány” állítás kategóriában, az alábbiak szerint:
-
kattintson a “Hozzáadás” gombra, és megjelenik a “séma megfelelőségi állítás konfigurálása” párbeszédpanel, az alábbiak szerint:
-
a konfigurációs párbeszédpanelen automatikusan feltölti a projektet létrehozó WSDL-t, de ha más WSDL-t szeretne megadni, frissítheti azt is. Kattintson az OK gombra a folytatáshoz.
- ha a válasz megfelel az említett sémának, látni fogja a sikerválaszt, a fentiek szerint. A hiba akkor jelenik meg, ha az utolsó válasz nem felel meg a WSDL sémának.
Megjegyzés: Hasonlóképpen érvényesítheti a REST szolgáltatás válaszát egy megadott WADL-rel szemben.
melyek a SoapUI általános SLA állításai?
mint mindannyian tudjuk, a szolgáltatási szintű megállapodást (SLA) általában a Szolgáltató és az ügyfél közötti megállapodásnak nevezik. A megállapodást különféle elfogadott jellemzők, például rendelkezésre állás, minőség, válaszidő stb. SoapUI biztosítja a funkciót, hogy érvényesítse a válaszidő egy adott szolgáltatás.
Vegyünk egy hipotetikus forgatókönyvet, amely szerint a könyvesbolt Webszolgáltatásának egyeztetett válaszideje kevesebb, mint 4 másodperc. Ugyanezt érvényesíthetjük a SoapUI – ban az” SLA ” állítás kategóriákkal.
kövessük az alább említett lépéseket, hogy érvényesítsük ugyanezt a “Response SLA” állítással:
- keresse meg az állítás hozzáadása párbeszédpanelt, majd kattintson a “válasz SLA” állításra az ” SLA ” állítás kategóriában, az alábbiak szerint:
- kattintson az ” Add “gombra, és megjelenik a” Response SLA Assertion configuration ” párbeszédpanel, az alábbiak szerint:
- adja meg azt a maximális időt (ms-ban), amelyben a szolgáltatás várhatóan visszaadja a választ. Forgatókönyvünkhöz 4000 ms-ot adtunk meg. kattintson az OK gombra az állítás hozzáadásához. Megmutatja a teszt eredményét, az alábbiak szerint:
- Mint látjuk a fenti képen, mint a válasz, amikor a szolgáltatás 1374 ms, így ez alatt az említett SLA 4000 ms eredményezte, hogy egy sikeres állítás.
Gombot Átvétel
- SoapUI széles skáláját biztosítja állítások, amelyeket alkalmazni lehet mind a SZAPPANOS TÖBBI webes szolgáltatások.
- Továbbá, néhány közös kijelentések Tartalmazza, Nem Tartalmazhat, Xpath, valamint XQuery Mérkőzés, amelyeket az érvényesítés a válasz a tartalom Útját.
- ezenkívül a SoapUI által biztosított általános állítások egy másik csoportját használják a HTTP állapotkódok és a webszolgáltatások válaszának sémájának érvényesítésére.
- a SoapUI egy SLA állítást is nyújt, amely felhasználható mind a SOAP, mind a REST szolgáltatások válaszidejének érvényesítésére.
térjünk át a következő cikkre, ahol tovább mélyedünk, hogy megértsük, hogyan valósíthatunk meg néhány előzetes állítást a SoapUI “szkript állításai” használatával.