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ę.
- Punkty weryfikacji zawierania zwracają status Zakończone powodzeniem, gdy
odpowiedź w postaci treści XML zawiera oczekiwany fragment XML.
- Punkty weryfikacji równości zwracają status Zakończone powodzeniem, gdy
treść XML odpowiedzi jest zgodna z całą oczekiwaną treścią XML.
Procedura
- Otwórz edytor testów i wybierz element odpowiedzi usługi.
- W obszarze Szczegóły elementu testowego kliknij
kartę Komunikat i wybierz widok Formularz lub Drzewo.
- 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ę . Jednak
rzeczywisty wynik jest taki sam jak w przypadku punktu weryfikacji równości, ponieważ punkt weryfikacji zawiera całą treść XML odpowiedzi komunikatu.
- Wybierz punkt weryfikacji i wpisz jego nazwę na panelu
Szczegóły elementu testowego.
- 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.
- 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 'http://Samples.ICalculator/Add', 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.