Přidání bodů verifikace Obsahuje

Pomocí bodů verifikace Obsahuje můžete kontrolovat, zda jeden či více prvků obsahu XML vráceného službou odpovídá fragmentu XML určenému v bodu verifikace.

Informace o této úloze

Při přidání bodů verifikace se výsledky z odpovědi služby porovnávají s očekávaným obsahem, který je určen v prvku testu bodu verifikace. Body verifikace Je rovno a Obsahuje umožňují přímé porovnání obsahu XML vráceného službou.

Komplexní požadavky na službu nebo body verifikace mohou obsahovat prázdné prvky XML, které v testovacím skriptu nejsou zapotřebí. Při přehrávání testu můžete tyto prázdné prvky XML přeskočit. V nabídce Okno > Předvolby > Test > Editor testů > Test služby se ujistěte, že je zaškrtnuto políčko Zobrazit sloupec 'Přeskočit, je-li prázdné' v prohlížeči stromu XML. Tato volba zobrazí sloupec Přeskočit, je-li prázdné v zobrazení stromu požadavku. Pak si můžete vybrat prvky XML, které se mají přeskočit.

Postup

  1. Otevřete editor testů a vyberte prvek odezvy služby.
  2. V oblasti Podrobnosti prvku testu klepněte na kartu Zpráva a vyberte pohled Formulář nebo Strom.
  3. Rozbalte řádek obálky, klepněte pravým tlačítkem myši na prvek, který chcete zkontrolovat, a vyberte volbu Vytvořit bod verifikace Obsahuje. Tato akce vytvoří bod verifikace Obsahuje, který obsahuje prvek XML ze zaznamenané odezvy.
    Poznámka: Bod verifikace Obsahuje můžete vytvořit také pomocí odezvy na zprávu, a to vybráním odezvy na zprávu v podokně Obsah testu a klepnutím na volbu Přidat > Bod verifikace Obsahuje. Výsledek je však de facto stejný jako bod verifikace Je rovno, protože bod verifikace obsahuje celý obsah XML odezvy na zprávu.
  4. Vyberte bod verifikace a v podokně Podrobnosti prvku testu zadejte název bodu verifikace.
  5. Vyberte volby ověření:
    • Chcete-li namísto na jednoduchém názvu provést ověření na kvalifikované struktuře dokumentu XML včetně značení oboru názvů, zaškrtněte políčko Testovat pomocí oborů názvů XML. Chcete-li kontrolovat pouze jednoduchý název prvku a konečnou návratovou hodnotu, tuto volbu zakažte.
    • Chcete-li do ověření zahrnout obsah textových prvků, zaškrtněte políčko Testovat textové uzly XML.
    • Chcete-li do ověření zahrnout obsah atributů, zaškrtněte políčko Testovat atributy XML.
  6. V případě potřeby vyberte pohled Formulář, Strom nebo Zdroj a upravte očekávaný fragment XML.

    V případě bodu verifikace Je rovno obsahují očekávaná data XML dokument XML z prvku testu odezvy. V případě potřeby můžete očekávaná data XML upravit.

    V pohledu Strom můžete určit standardní regulární výrazy Java™. Vyberte sloupec Regulární výraz na řádku atributu nebo textové hodnoty a zadejte regulární výraz do sloupce Hodnota. Například následující regulární výraz zkontroluje správné formátování e-mailové adresy: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/

    Při použití regulárních výrazů musí počet uzlů XML nebo fragmentů XML v bodu verifikace odpovídat počtu očekávaných uzlů. Bod verifikace vrátí stav Úspěch, pokud se shodují všechny regulární výrazy ve fragmentu XML.

Příklad

Pomocí bodu verifikace Obsahuje můžete zkontrolovat, že odezva na zprávu obsahuje pouze specifický prvek se specifickou hodnotou. Prohlédněte si například následující odezvu na zprávu:
<s:Envelope
 xmlns:a="http://www.w3.org/2005/08/addressing"
 xmlns:s="http://www.w3.org/2003/05/soap-envelope">
  <s:Header>
    <a:Action
     s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
    <a:RelatesTo>uuid:ed9bc447-d739-452f-989d-cd48344d494a</a:RelatesTo>
  </s:Header>
  <s:Body>
    <s:Fault>
      <s:Code>
        <s:Value>s:Sender</s:Value>
        <s:Subcode>
          <s:Value
           xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc">a:BadContextToken</s:Value>
        </s:Subcode>
      </s:Code>
      <s:Reason>
        <s:Text
         xml:lang="en-US">Zprávu nelze zpracovat. S největší pravděpodobností je to způsobeno tím, že je akce &apos;http://Samples.ICalculator/Add&apos; chybná nebo že zpráva obsahuje neplatný nebo uplynulý token kontextu zabezpečení nebo že je neshoda mezi vazbami. Token kontextu zabezpečení by byl neplatný, pokud by služba předčasně ukončila kanál v důsledku nečinnosti. Chcete-li službě zabránit v předčasném uzavření nečinné relace, zvyšte časový limit přijetí na vazbě koncového bodu služby.</s:Text>
      </s:Reason>
      <s:Node>http://www.w3.org/1999/xlink</s:Node>
      <s:Role>http://www.w3.org/1999/xlink</s:Role>
      <s:Detail
       xmlns:tns0="http://schemas.com/2003/10/Serialization/"
       xmlns:tns15="http://Samples.Windows"
       tns0:Id="id"
       tns0:Ref="idref">
        <tns15:GetCallerIdentityResponse>
          <tns15:GetCallerIdentityResult>str</tns15:GetCallerIdentityResult>
        </tns15:GetCallerIdentityResponse>
      </s:Detail>
    </s:Fault>
  </s:Body>
</s:Envelope>
Pro kontrolu prvku Subcode je očekávaný obsah bodu verifikace Obsahuje následující fragment XML:
<s:Subcode
  xmlns:a="http://www.w3.org/2005/08/addressing"
  xmlns:s="http://www.w3.org/2003/05/soap-envelope">
   <s:Value
   xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc">a:BadContextToken</s:Value>
</s:Subcode>
Při výchozím nastavení bod verifikace Obsahuje zkontroluje, zda prvek s názvem Subcode obsahuje jeden prvek s názvem Value. Můžete použít následující volby:
  • Testovat pomocí oborů názvů XML: Při použití této volby bod verifikace zkontroluje, zda prvek s názvem "http://www.w3.org/2003/05/soap-envelope":SubCode obsahuje jeden prvek s názvem "http://www.w3.org/2003/05/soap-envelope":Value.
  • Testovat textové uzly XML: Při použití této volby bod verifikace také zkontroluje, zda prvek s názvem Value obsahuje text a:BadContextToken.
  • Testovat atributy XML: Při použití této volby bod verifikace také zkontroluje, zda atributy odpovídají očekávanému fragmentu XML. V tomto příkladu není volba Testovat atributy XML nutná, protože prvek Subcode žádné atributy nemá.
K provedení kontroly, zda prvek Detail řádně vrátí specifickou hodnotu pro GetCallerIdentityResult, je očekávaným obsahem bodu verifikace Obsahuje následující fragment XML:
<s:Detail
 xmlns:a="http://www.w3.org/2005/08/addressing"
 xmlns:s="http://www.w3.org/2003/05/soap-envelope"
 xmlns:tns0="http://schemas.com/2003/10/Serialization/"
 xmlns:tns15="http://Samples.Windows"
 tns0:Id="regular_expression"
 tns0:Ref="idref">
  <tns15:GetCallerIdentityResponse>
    <tns15:GetCallerIdentityResult>IdentityValue</tns15:GetCallerIdentityResult>
  </tns15:GetCallerIdentityResponse>
</s:Detail>
Můžete použít následující volby:
  • Testovat textový uzel XML: Při použití této volby bod verifikace také zkontroluje, zda prvek s názvem GetCallerIdentityResult obsahuje text IdentityValue.
  • Testovat atributy XML: Při použití této volby bod verifikace také zkontroluje, zda má atribut Id, na který odkazuje tns0:Id, očekávanou hodnotu. Regulární výraz pro tuto hodnotu můžete určit pomocí sloupce Regulární výraz v pohledu Strom bodu verifikace. Například regulární výraz tns0:Id="[a-zA-Z]" zkontroluje, že hodnota neobsahuje čísla.

Jak pokračovat dále

Jednotlivé body verifikace můžete povolit nebo zakázat klepnutím pravým tlačítkem myši na bod verifikace v editoru testů a vybráním volby Povolit nebo Zakázat.

Váš názor