Dodawanie punktów weryfikacji zawierania

Przy użyciu punktów weryfikacji zawierania można sprawdzić, czy jakiekolwiek elementy treści XML zwracane przez usługę są zgodne z fragmentem XML podanym w punkcie weryfikacji.

O tym zadaniu

Po dodaniu punktów weryfikacji wyniki z odpowiedzi usługi są porównywane z oczekiwaną treścią podaną w elemencie testu punktu weryfikacji. Punkty weryfikacji równość lub zawieranie umożliwiają bezpośrednie porównanie treści XML zwracanej przez usługę.

Złożone żądania usług lub punkty weryfikacji mogą zawierać puste elementy XML, które nie są wymagane w skrypcie testowym. Podczas odtwarzania testu można pominąć takie puste elementy XML. W sekcji Okna > Preferencje > Test > Edytor testów > Test usługi upewnij się, że zaznaczone jest pole wyboru Wyświetl kolumnę „Pomiń, jeśli puste” w przeglądarce drzewa XML. Ta opcja powoduje wyświetlenie kolumny Pomiń, jeśli puste w widoku drzewa żądania. Można następnie wybrać elementy XML do pominięcia.

Procedura

  1. Otwórz edytor testów i wybierz element odpowiedzi usługi.
  2. W obszarze Szczegóły elementu testowego kliknij kartę Komunikat i wybierz widok Formularz lub Drzewo.
  3. Rozwiń wiersz koperty, kliknij prawym przyciskiem myszy element, który chcesz sprawdzić, a następnie kliknij opcję Utwórz punkt weryfikacji zawierania. To działanie utworzy punkt weryfikacji zawierania, który obejmuje element XML z zarejestrowanej odpowiedzi.
    Uwaga: Punkt weryfikacji zawierania można również utworzyć razem z odpowiedzią komunikatu, wybierając odpowiedź komunikatu na panelu Zawartość testu i klikając opcję Dodaj > Punkt weryfikacji zawierania. Jednak rzeczywisty wynik jest taki sam jak w przypadku punktu weryfikacji równości, ponieważ punkt weryfikacji zawiera całą treść XML odpowiedzi komunikatu.
  4. Wybierz punkt weryfikacji i wpisz jego nazwę na panelu Szczegóły elementu testowego.
  5. Wybierz opcje weryfikacji:
    • Zaznacz pole wyboru Testuj za pomocą przestrzeni nazw XML, aby zweryfikować pełną strukturę dokumentu XML (w tym znakowania przestrzeni nazw) zamiast nazwy prostej. Wyłącz tę opcję, aby sprawdzić tylko nazwę prostą elementu i końcową wartość zwracaną.
    • Zaznacz pole wyboru Testuj węzły tekstowe XML, aby podczas weryfikacji uwzględnić treść elementów tekstu.
    • Zaznacz pole wyboru Testuj atrybuty XML, aby podczas weryfikacji uwzględnić treść atrybutów.
  6. Jeśli jest to konieczne, wybierz widok Formularz, Drzewo lub Źródło, aby zmodyfikować oczekiwany fragment XML.

    W przypadku punktu weryfikacji równości oczekiwane dane XML zawierają dokument XML z elementu testu odpowiedzi. W razie potrzeby można edytować oczekiwane dane XML.

    W widoku Drzewo można podać standardowe wyrażenia regularne Java™. Należy wybrać kolumnę Wyrażenie regularne w wierszu atrybutu lub wartości tekstowej i należy wpisać wyrażenie regularne w kolumnie Wartość. Na przykład poniższe wyrażenie regularne sprawdza, czy adres e-mail został poprawnie sformatowany: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/

    Podczas używania wyrażeń regularnych liczba węzłów XML lub fragmentów XML w punkcie weryfikacji musi być zgodna z oczekiwaną liczbą węzłów. Punkt weryfikacji zwraca status Zakończone powodzeniem, jeśli są spełnione wszystkie wyrażenia regularne we fragmencie XML.

Przykład

Aby sprawdzić, czy odpowiedź komunikatu zawiera tylko konkretny element z konkretną wartością, można użyć punktu weryfikacji zawierania. Jako przykładu można użyć następującej odpowiedzi komunikatu:
<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="pl-pl">Nie można przetworzyć komunikatu. Prawdopodobna przyczyna: niepoprawne działanie &apos;http://Samples.ICalculator/Add&apos;, komunikat zawiera niepoprawny lub nieważny znacznik kontekstu zabezpieczeń albo istnieje niezgodność między powiązaniami. Znacznik kontekstu zabezpieczeń jest niepoprawny, jeśli usługa spowodowała przerwanie kanału z powodu nieaktywności. Aby zapobiec przerywaniu bezczynnych sesji przez usługę, należy wcześniej zwiększyć limit czasu odbierania w powiązaniu punktu końcowego usługi.</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>
Aby sprawdzić element Subcode, można założyć, że oczekiwaną treścią punktu weryfikacji zawierania będzie następujący 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>
Domyślnie punkty weryfikacji zawierania sprawdzają, czy element o nazwie Subcode zawiera jeden element o nazwie Value. Dostępne są następujące opcje:
  • Testuj za pomocą przestrzeni nazw XML: przy użyciu tej opcji punkt weryfikacji sprawdza, czy element o nazwie "http://www.w3.org/2003/05/soap-envelope":SubCode zawiera jeden element o nazwie "http://www.w3.org/2003/05/soap-envelope":Value.
  • Testuj węzeł tekstowy XML: przy użyciu tej opcji punkt weryfikacji sprawdza również, czy element o nazwie Value zawiera tekst a:BadContextToken.
  • Testuj atrybuty XML: przy użyciu tej opcji punkt weryfikacji sprawdza również, czy atrybuty są zgodne z oczekiwanym fragmentem XML. W tym przykładzie nie trzeba używać opcji Testuj atrybuty XML, ponieważ element Subcode nie ma żadnych atrybutów.
Aby sprawdzić, czy element Detail poprawnie zwraca konkretną wartość dla elementu GetCallerIdentityResult, można założyć, że oczekiwaną treścią punktu weryfikacji zawierania będzie następujący 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>
Dostępne są następujące opcje:
  • Testuj węzeł tekstowy XML: przy użyciu tej opcji punkt weryfikacji sprawdza również, czy element o nazwie GetCallerIdentityResult zawiera tekst IdentityValue.
  • Testuj atrybuty XML: przy użyciu tej opcji punkt weryfikacji sprawdza również, czy atrybut Id przywoływany przez element tns0:Id ma oczekiwaną wartość. Dla tej wartości można podać wyrażenie regularne za pomocą kolumny Wyrażenie regularne w widoku Drzewo punktu weryfikacji. Na przykład wyrażenie tns0:Id="[a-zA-Z]" sprawdza, czy wartość nie zawiera cyfr.

Co dalej

Każdy punkt weryfikacji można włączyć lub wyłączyć, klikając go prawym przyciskiem myszy w edytorze testów, a następnie klikając opcję Włącz lub Wyłącz.

Opinia