Tvrzení v SoapUISkripty, XQuery, XPath typy – tutoriál

Co je to tvrzení?

Tvrzení znamená akt potvrzení nebo prohlášení něčeho. Může být také interpretován jako kontrolní bod nebo ověřovací bod.

Jakmile je požadavek odeslán na webový server, je přijata odpověď. Musíme ověřit, zda odpověď obsahuje data, která očekáváme. Abychom potvrdili odpověď, musíme použít aserce.

Typy tvrzení

There are various ways of asserting a response; however, we will focus on the commonly used SoapUI Assertions types while validating a response. Below are the ones that are available in Open Source version of SoapUI.

  1. Obsah nemovitosti
  2. Standard stavu shody
  3. Scénář
  4. SLA
  5. JMS
  6. Bezpečnost
Types of Assertions in SoapUI
Types of Assertions in SoapUI

Kromě těch, které jsou uvedeny výše, má verze PRO také vestavěný JDBC Assertion, pomocí kterého můžeme potvrdit, zda webová služba aktualizovala databázi správně.

OBSAHUJE UPŘESNĚNÍ

Hledá existenci zadaného řetězce. Podporuje také regulární výraz.

Budeme pokračovat stejným příkladem z předchozího tutoriálu s požadavkem WSDL jako http://www.dneonline.com/calculator.asmx.

Krok 1: Ve výchozím nastavení neexistují žádná tvrzení.

  • Počet tvrzení je uveden v záložce tvrzení.
  • Chcete-li přidat nové tvrzení, klikněte na tlačítko 'Přidat nové tvrzení'.

Obsahuje tvrzení

Krok 2: Teď,

  1. Vyberte kategorii tvrzení.
  2. Vyberte Typ tvrzení.
  3. Klikněte na 'Přidat'

Obsahuje tvrzení

Krok 3: Ověřte, zda v odpovědi existuje řetězec '46'. Klikněte na 'OK'

Poznámka: Můžeme také ignorovat velká a malá písmena a přidat regulární výraz.

Obsahuje tvrzení

Krok 4: Po jeho přidání se okamžitě provede aserce a zobrazí se, zda je PLATNÁ nebo NEPLATNÁ.

Obsahuje tvrzení

Krok 5: Now Let us say we change the content of ‘Contains Assertion in SoapUI’ to ’47’ and see what happens.

Obsahuje tvrzení

Krok 6: Vyhodnocení je provedeno a výsledek je předán uživateli. Protože v odpovědi nemáme řetězec '47', tvrzení selhalo.

Obsahuje tvrzení

NEOBSAHUJE Tvrzení

Hledá Neexistenci zadaného řetězce. Podporuje také regulární výraz.

Krok 1: Nyní po kliknutí na tlačítko „přidat nová tvrzení“

  1. Vyberte kategorii tvrzení.
  2. Vyberte typ tvrzení – v tomto případě „NEOBSAHUJE“
  3. Klikněte na 'Přidat'

Neobsahuje tvrzení

Krok 2: Ověřte, zda v odpovědi existuje řetězec 'intA'. Zadejte řetězec 'FromCurrency' a klikněte na 'OK'

Neobsahuje tvrzení

Krok 3: Jakmile je výraz přidán, provede se a zobrazí výsledek. Zatím jsme přidali dvě tvrzení, takže obě tvrzení se provedou a zobrazí výsledek.

Neobsahuje tvrzení

Krok 4: Nyní změňme obsah 'Neobsahuje tvrzení' a uvidíme, co se stane. Zkontrolujeme neexistenci řetězce „AddResult“.

Neobsahuje tvrzení

Krok 5: Řetězec 'AddResult' je skutečně přítomen v odpovědi, proto tvrzení 'NOT obsahuje' selže, jak je uvedeno níže.

Neobsahuje tvrzení

PŘIPOJENÍ XPATH

použití XPath výraz pro výběr cílového uzlu a jeho hodnot. XPath je dotazovací jazyk XML pro výběr uzlů z dokumentu XML.

Krok 1: Nyní po kliknutí na tlačítko „Přidat nová tvrzení“

  1. Vyberte kategorii tvrzení.
  2. Vyberte typ tvrzení – v tomto případě „XPath Match“
  3. Klikněte na 'Přidat'

Shoda XPath

Krok 2: Otevře se okno Přidat XPath.

Before Adding SoapUI XPath, we need to declare the NameSpace. An XML namespace is a collection of names, identified by a Uniform Resource Identifier (URI) reference, which are used in XML documents as element and attribute names. The same is used in SOAP UI XPath Assertion.

Pro deklaraci jmenného prostoru XML stačí kliknout na tlačítko 'Deklarovat', které udělá práci za nás, jinak můžeme jmenný prostor deklarovat i ručně sami.

Po deklaraci jmenného prostoru potřebujeme odkazovat na cestu XPath pomocí vytvořeného jmenného prostoru.

Po kliknutí na tlačítko 'Declare' se objeví dva jmenné prostory, protože máme dva URI. Jedna z nich je adresa URL schématu a druhá odpovídá skutečné adrese URL webové služby. Při odkazování na XPath musíme použít skutečný jmenný prostor, kde se webová služba nachází, a NE jmenný prostor schématu.

Shoda XPath

deklarovat jmenný prostor soap='http://schemas.xmlsoap.org/soap/envelope/';

deklarovat jmenný prostor ns1='http://tempuri.org/';

Shoda XPath

Krok 3: Nyní musíme zadat XPath uzlu XML, který potřebujeme ověřit.

//ns1:AddResult Dává nám hodnotu uzlu uzavřeného mezi & a ns1 odpovídá deklarovanému jmennému prostoru, který ukazuje na 'http://tempuri.org/'

Po zadání XML musíme kliknout na 'Vybrat z aktuální', aby se hodnota z aktuální odpovědi vybrala pro budoucí srovnání.

Shoda XPath

Krok 4: Tak daleko,

  1. Po deklaraci jmenných prostorů jsme zadali XPath uzlu XML, který potřebujeme ověřit.
  2. Musíme kliknout na „Vybrat z aktuálního“, aby se aktuální hodnota stala očekávanou hodnotou.
  3. Uživateli se zobrazí aktuální hodnota, kterou můžeme v případě potřeby upravit.
  4. Klikněte na 'Uložit'.

Shoda XPath

Krok 5: The added Assertion in SoapUI will be displayed as shown below.

Shoda XPath

Skriptování tvrzení

Tato technika tvrzení je nejpoužívanější, protože je extrémně obtížné spravovat a udržovat stovky tvrzení.

SOAP UI uses either Groovy Skriptování popř JavaScénář pro skriptování asercí. Technika skriptování se používá pro vývojping framework pro testování SOAP. Skriptovací aserce se používají za následujících okolností.

Skriptování umožňuje uživateli provádět některé operace před a po provedení TestCase pomocí metod nastavení a odstranění. Nastavení je procedura, která se provádí před provedením konkrétní metody (příklad – Vytvoření a inicializace objektu), zatímco rozklad je procedura, která se provede po provedení metody (např.: Zničení objektů a vyčištění). Tato funkce není dostupná u jiných typů tvrzení a lze ji provést pouze pomocí kódování.

Umožňuje uživatelům otevřít/zavřít projekt, inicializovat nebo vyčistit nastavení související s projektem a také pracovat s proměnnými prostředí, což je velmi užitečné při skriptování.

Pomáhá nám prosazovat dynamický obsah odezvy.

Scripting assertions are used for creating user defined assertions that are NOT predefined by SOAP UI.

For Demonstrating Script assertion in SoapUI, we will make use of calculator WSDL, the test case ‘Add’ that we had created earlier.

Krok 1: Kroky pro přidání groovy skriptu jsou stejné jako u jiných tvrzení kromě toho, že tvrzení není předem definované. Místo toho je to uživatelsky definované tvrzení, které nabízí větší flexibilitu než vestavěné.

Vyberte krok Test, ke kterému má být výraz přidán.

Skriptování tvrzení

Klikněte na tlačítko 'Přidat tvrzení', jak je znázorněno níže.

Skriptování tvrzení

Krok 2: Nyní vyberte kategorii Assertion.

  1. V tomto případě je to Script.
  2. vybrat SoapUI Script Assertion and there no sub-types associated with it.
  3. Klikněte na 'Přidat'.

Skriptování tvrzení

Krok 3: Otevře se dialogové okno Skriptování, kde bude uživatel moci napsat uživatelsky definovaný skript pro ověření XML odpovědi.

Skriptování tvrzení

Krok 4: Nyní napíšeme skvělý skript pro ověření konverzního poměru. Skript je připojen níže s vloženými komentáři. Doporučuje se mít znalosti o Java Skript resp Groovy Než se pokusíte napsat svůj vlastní skript, vytvořte skript.

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"

//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")

//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult

//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. Kliknutím na tlačítko 'Execute' spustíte spuštění.
  2. Výstup skriptu je zobrazen v podokně Výstup. Vytisklo jak hodnotu konverze, tak i konečný výsledek (vyhovuje nebo nevyhovuje)
  3. Zobrazí se informace, že 'Script Assertion Passed'. Klepněte na tlačítko OK.

Poznámka: Poslední vyskakovací okno Information se vždy zobrazí se zprávou 'Script Assertion Passed', pokud je skript syntakticky správný. Nemá to žádnou korelaci s vaším tvrzením ve skriptu.

Skriptování tvrzení

klepněte na tlačítko OK

Krok 5: Nyní karta tvrzení zobrazuje všechna tvrzení, která jsme přidali pro tuto testovací sadu, se stavem proti každému z nich.

Skriptování tvrzení

Krok 6: Teď

  1. Vyberte Test Suite ze stromu Navigator
  2. Klikněte na tlačítko 'Spustit'
  3. Výsledky by se zobrazily pro celou sadu testů.

Skriptování tvrzení

Xquery shoda tvrzení

It Uses an Xquery expression to select content from the target property. We need a much bigger response XML in order to better understand XQuery assertion in SoapUI. Let us import one other WSDL as shown below: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Krok 1: Klikněte pravým tlačítkem na existující projekt a vyberte 'Přidat WSDL'.

Xquery shoda tvrzení

Krok 2: Klikněte pravým tlačítkem na existující projekt a vyberte 'Přidat WSDL'. Ponechte ostatní možnosti jako výchozí a klikněte na tlačítko 'OK'.

Xquery shoda tvrzení

Krok 3: Všechny operace jsou uvedeny níže.

Xquery shoda tvrzení

Krok 4: Nyní přidáme a Testovací případ ve stejné testovací sadě, pro kterou jsme vytvořili Testování převodník měn.

Xquery shoda tvrzení

Krok 5: Zadejte název testovacího případu a klikněte na tlačítko 'OK'

Xquery shoda tvrzení

Krok 6: Testovací případ je vytvořen, jak je znázorněno níže.

Xquery shoda tvrzení

Krok 7: přidat
nový testovací krok typu „Žádost o test mýdla“, jak je uvedeno níže.

Xquery shoda tvrzení

Krok 8: Zadejte název kroku testu. Řekněme – Supplier_by_City, což by bylo smysluplnější Klikněte na 'OK'.

Xquery shoda tvrzení

Krok 9: Vybrat Operakteré bychom chtěli ověřit. V tomto případě je to 'MedicareSupplierSoap -> GetSupplierByCity'. Klikněte na 'OK'.

Xquery shoda tvrzení

Krok 10: Zadejte název testovacího případu a klikněte na 'OK'.

Xquery shoda tvrzení

Krok 11: Přehled XML požadavku by se zobrazil, jak je uvedeno níže.

 Xquery shoda tvrzení

Krok 12: Nyní najdeme všechny informace o dodavatelích pro město „New York“.

Chcete-li tak učinit, přidejte do kódu následující řádky.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

WSDL na níže uvedené adrese URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Xquery shoda tvrzení

Krok 13: Po provedení testu obdržíme níže uvedenou odpověď

Xquery shoda tvrzení

Krok 14: Řekněme, že potřebujeme ověřit všechna čísla dodavatele. Nemůžeme použít XPath Assertion, protože potřebujeme stovky XPath Assertion. Použití XQuery je tedy v tomto případě nevyhnutelné.

XQuery Assertion nám pomáhá ověřit skupinu odpovědí XML, které se svou povahou opakují.

Xquery shoda tvrzení

Krok 15: Nyní klikněte na 'Přidat tvrzení',

  1. V tomto případě vyberte „Kategorii tvrzení“ – Obsah nemovitosti.
  2. Vyberte typ tvrzení jako „XQuery Assertion“
  3. Klikněte na 'Přidat'.

Xquery shoda tvrzení

Krok 16: Podobně jako u XPath Assertion musíme deklarovat jmenný prostor.

  1. Click ‘Declare’ Button to automatically allow SOAP UI to declare the namespace. Upon clicking on declare button a ‘POP up’ with the message ‘declare namespace from schema instead’ will be displayed to the user. Click ‘Yes’ to proceed as shown below.

    Poznámka: Po stisknutí tlačítka 'Declare' můžete skončit s různými adresami URL jako deklarací jmenného prostoru, avšak skutečný jmenný prostor umístění webové služby je tím, co by bylo považováno za kódování.

    Xquery shoda tvrzení

  2. Abychom získali všechna čísla dodavatele, musíme napsat dotaz XPath a vložíme jej do < SupplierNumber> a Tagy.
  3. Klikněte na 'Vybrat z aktuálního', které se spustí z aktuální odpovědi.
  4. Po kliknutí na „Vybrat z aktuálního“ se zobrazí všechna čísla dodavatelů.
  5. Klikněte na 'Uložit'.
// Namespace declaration
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webservicex.net/';
declare namespace x = '';

// Placing the result in Myresult Tags

{
// Iterating through all the supplier number 
for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData

//Return all the Supplier number within ‘SupplierNumber’ Tags.
return {data($x/ns1:SupplierNumber)}
}

Xquery shoda tvrzení

Krok 17: Spustí se XQuery Assertion a zobrazí konečný výsledek v panelu 'Assertion', jak je znázorněno níže. Nyní jsme úspěšně přidali výraz Xquery, pomocí kterého jsme ověřili všechny informace o čísle dodavatele. Totéž by bylo porovnáno se skutečností pokaždé, když je požadavek odeslán na webový server.

Poznámka: Skutečné hodnoty se nezobrazí. Pokud jsou všechny skutečné hodnoty stejné jako očekávané hodnoty, zobrazí se VALID, jinak se zobrazí 'Failed'.

Xquery shoda tvrzení

Kdy použít vestavěné tvrzení?

  • Když je odpověď krátká, takže ji lze ověřit pomocí jednoho z těchto vestavěných asercí.
  • Můžeme také použít Inbuilt Assertion, pokud je odpověď odeslaná z webového serveru vždy statická. Pokud je dynamická, nebudeme ji moci prosadit pomocí vestavěných asercí.
  • Když se použití vestavěných asercí, jako jsou asertace s časovým limitem a bezpečnostní deklarace, stane nevyhnutelným.
  • Inbuilt Assertions se docela dobře drží pro jednorázové použití, kde se testy nemusí opakovat.

Možnosti tvrzení

Vytvořená tvrzení lze nejlépe ovládat pomocí ovládacího panelu, který je zvýrazněn níže.

Možnosti tvrzení

Vytvořené aserce umožňují testerům konfigurovat následující věci ze sady nástrojů asercí.

Volba Description

Možnosti tvrzení

Vybrané tvrzení se posune v pořadí nahoru.

Možnosti tvrzení

Vybrané tvrzení se posune v pořadí dolů.

Možnosti tvrzení

Odebere vybrané tvrzení

Možnosti tvrzení

Znovu nakonfigurujte/upravte vybrané tvrzení.
  • Below are the features available exclusively in PRO Version of SOAP UI. PRO version also helps us to Group assertions so that we can add one more layer of validation to the created assertions.
  • A: Všechna tvrzení jsou vyhodnocena jako PLATNÁ, což bude mít za následek skupinovou podmínku PASSED. NEBO: Alespoň jedno z tvrzení ve skupině musí být PLATNÉ, aby bylo možné uplatnit skupinovou podmínku PASSED.

  • Verze Pro také umožňuje Klonování tvrzení: Tato možnost umožňuje testerům povolit kopírování výrazu do jiného testovacího kroku ve stejném nebo jiném projektu.
  • Disable/Enable Assertions: Tato možnost umožňuje deaktivovat nebo povolit všechna seskupená nebo neseskupená tvrzení. Pokud je aserce zakázána, je zašedlá a když je spuštěn testovací případ, zakázaná aserce nebudou provedena.
  • Oddělit tvrzení: Pokud se tak testeři rozhodnou, lze oddělit všechna seskupená tvrzení.

Kompletní seznam metod dostupných v různých typech tvrzení

Mechanismus prosazování

Description

OBSAH MAJETKU
obsahuje Hledá existenci zadaného řetězce. Podporuje také regulární výraz.
Neobsahuje Hledá Neexistenci zadaného řetězce. Podporuje také regulární výraz.
XPath Match Používá výraz XPath k výběru cílového uzlu a jeho hodnot.
XQuery Match Používá výraz Xquery k výběru obsahu z cílové vlastnosti.
Shoda, stav, standardy
HTTP Stáhnout všechny zdroje Ověřuje dokument HTML po stažení a platí pro jakoukoli vlastnost obsahující HTML.
Neplatný stav HTTP Codes Ověřuje, zda odpověď HTML obsahuje stavový kód, který není v seznamu definovaných kódů.
Není chyba SOAP Ověřuje, zda poslední přijatá zpráva není chyba SOAP. Je velmi zřejmé, že je použitelný pouze pro testovací kroky SOAP.
Schema Compliance Ověřuje, zda je poslední přijatá zpráva v souladu se standardní definicí schématu WSDL nebo WADL. Hodí se pro testovací kroky SOAP a REST.
Chyba SOAP Ověřuje, zda je poslední přijatá zpráva chyba SOAP. Je to opak chybových tvrzení 'NOT SOAP'.
Odezva SOAP Ověřuje, zda je poslední přijatá odpověď platnou odpovědí SOAP a platí pouze pro kroky testovacího požadavku SOAP.
Platný stav HTTP Codes Ověřuje, zda HTML odpověď obsahuje stavový kód, který je v seznamu definovaných kódů. Jedná se o inverzi k „Neplatný stav HTTP“. CodeTvrzení.
WS-Addressing Request Ověřuje, zda poslední přijatý požadavek obsahuje příslušná záhlaví WS-Addressing.
WS-Addressing Response Ověřuje, zda poslední přijatá odpověď obsahuje příslušná záhlaví WS-Addressing.
Stav zabezpečení WS Ověřuje, zda poslední přijatá zpráva obsahuje platná záhlaví WS-Security a platí pouze pro požadavky SOAP.
Scénář
Uplatnění skriptu Umožňuje uživatelům spouštět vlastní skript k provádění uživatelem definovaných ověření.
SLA
Odpověď SLA Ověřuje, zda byla doba odezvy poslední přijaté odpovědi v rámci definovaného limitu.
JMS
Stav JMS Ověřuje, zda byl požadavek JMS testovacího kroku úspěšně proveden a zda platí pro testovací kroky s koncovým bodem JMS.
Časový limit JMS Ověřuje, zda odpověď JMS na testovací krok netrvala déle než zadané trvání.
Bezpečnost
Vystavení citlivým informacím Ověřuje, zda zpráva odpovědi neodhaluje citlivé informace o cílovém systému. Toto tvrzení můžeme použít pro testovací kroky REST, SOAP a HTTP.

STÁHNĚTE SI PROJEKT SOAPUI OBSAHUJÍCÍ VÝŠE UVEDENÉ Tvrzení

Běžné chyby a odstraňování problémů

Použijte správný jmenný prostor. Prostor jmen by měl být URL, kde se webová služba nachází.

Pokud se při vývoji vyskytne chybaping skriptovací assessment, použijte 'log.info' k výpisu obsahu proměnných

Pokud nemáte požadovaný výstup, ověřte, zda je v požadavku předán platný vstup.

Pokud například v převodníku měn zadáte „intA“ jako „x“, což není celé číslo, výstup vyhodí chybový kód jako „SOAP-Client“, což znamená, že problém je s parametrem, který je předáván z klientská strana.

Běžné chyby a odstraňování problémů

Běžné chyby a odstraňování problémů

Při používání výrazu XPATH a XQuery se ujistěte, že používáte správnou syntaxi. Při použití výše uvedeného tvrzení byste NEMĚLI používat tečku (.) místo dvojtečky (:). Syntaxe je //namespace:Tagname a NOT //namespace.tagname. Pokud tak učiníte, můžete skončit se zprávou, že „žádná shoda v aktuální odpovědi“, i když je název značky správný.

Běžné chyby a odstraňování problémů

Shrňte tento příspěvek takto: