understanding assertions soapui soapui tutorial 5
Pracowaliśmy nad podstawami SoapUI like tworzenie projektów, dodawanie WSDL, wysyłanie zapytań i otrzymywanie odpowiedzi i generowanie zasobów testowych, aby do tej pory z nimi współpracować.
W tym piątym samouczku SoapUI dowiemy się wszystkiego o asercjach w SoapUI. Zdecydowanie zalecamy wykonaj całą serię szkoleń SoapUI na tej stronie nauczyć się wszystkich tych podstawowych funkcji.
Czego się nauczysz:
- Wprowadzenie do twierdzeń
- Praca z różnymi rodzajami twierdzeń w SoapUI
- Wniosek
- rekomendowane lektury
Wprowadzenie do twierdzeń
Podobnie jak w przypadku każdego testowania, musimy porównać, co chcemy, aby system robił i co faktycznie robi, aby dojść do pewnej walidacji lub potwierdzenia, jak to się nazywa w kontekście usług sieciowych. Jako testerzy nie ma znaczenia, czy wykonaliśmy 1000, czy nawet miliony kroków testowych, ale dla nas porównanie wyników jest tym, co określa wynik testu.
Dlatego cały ten artykuł poświęcimy na zrozumienie, jak możemy to zrobić za pomocą SoapUI, chociaż usługi internetowe można potwierdzić ręcznie. Ponadto ręczne potwierdzenie jest czasochłonne, gdy istnieje wiele odpowiedzi i odpowiedzi zawierających duże ilości danych. Twierdzenia SoapUI doskonale radzą sobie z tymi niedociągnięciami.
Asercje SOAPUI porównaj części / całość komunikatu odpowiedzi z oczekiwanym wynikiem. Do każdego kroku testowego możemy dodać różne stwierdzenia dostarczone przez SoapUI. Każdy typ asercji ma na celu określone weryfikacje odpowiedzi, takie jak dopasowanie tekstu, porównanie XPATH lub możemy również pisać zapytania w zależności od naszych potrzeb.
Po wykonaniu kroków testu skojarzone z nimi potwierdzenia otrzymują odpowiedź dla odpowiednich kroków testowych. Jeśli jakakolwiek odpowiedź nie powiedzie się, odpowiednie potwierdzenie zostanie przetworzone, a odpowiedni krok testu zostanie oznaczony jako nieudany. To powiadomienie można wyświetlić w widoku przypadku testowego. W dzienniku wykonywania testów możemy również znaleźć nieudane kroki testowe. Przykładowy ekran potwierdzenia kroku testu wygląda następująco:
Na powyższym obrazku niektóre etapy testu NIE POWIODŁY SIĘ, a niektóre ZALICZONE. Powodem jest twierdzenie.
Jak omówiliśmy wcześniej, jeśli warunek asercji nie zostanie spełniony z oczekiwanymi wynikami, wynik jest FAILED.
Praca z różnymi rodzajami twierdzeń w SoapUI
Zobaczmy teraz, jak pracować z różnymi typami twierdzeń, takimi jak:
- Zawiera i nie zawiera twierdzeń
- Mecz XPath i
- Asercje dopasowania XQuery.
Po pierwsze, potrzebujemy poprawnej lokalizacji schematu WSDL.
Wykonaj poniższe czynności:
Krok 1. Utwórz nowy projekt SOAP naciskając CTRL + N i postępuj zgodnie z instrukcjami. Po utworzeniu projektu SOAPUI generuje listę interfejsów i odpowiadające im żądania.
Krok 2. Aby dodać zestaw testów do tego projektu, wykonaj następujące kroki:
- Kliknij prawym przyciskiem myszy nazwę interfejsu MedicareSupplierSoap
- Kliknij Wygeneruj Testsuite opcja z menu kontekstowego
- Kliknij OK w poniższym oknie, które się pojawi:
- W następnym wyskakującym okienku wprowadź żądaną nazwę zestawu testów i kliknij OK
- SOAPUI PRO wygeneruje zestaw testów wraz z żądaniami w panelu nawigacyjnym.
- W zestawie testów zobaczysz niektóre kroki testowe z krokiem żądania SOAP.
Krok 3. Aby wykonać ten zestaw testów, kliknij dwukrotnie krok żądania i określ wartość wejściową w odpowiedniej lokalizacji. Na przykład otwórz GetSupplierByCity poproś i wejdź Nowy Jork między tagami miasta.
- Uruchom to żądanie, klikając ikonę URUCHOM - otrzymasz odpowiedź.
- Teraz dodajmy potwierdzenia. W tym celu kliknij Asercje zakładka obecna u góry zakładek dziennika.
- Po kliknięciu prawym przyciskiem myszy pojawi się menu podręczne z kilkoma podstawowymi opcjami związanymi z asercjami, jak poniżej:
# 1) Zawiera potwierdzenie
Kliknij opcję Dodaj potwierdzenie lub kliknij ją na pasku narzędzi - Dodaj potwierdzenie na ekranie pojawia się okno z różnymi typami asercji.
1. Kliknij Zawartość nieruchomości kategoria z listy - wyświetlane są powiązane typy asercji i ich opis
2. Kliknij Zawiera asercji i kliknij przycisk Dodaj
3. To jest okno konfiguracji asercji. Tutaj sami musimy określić oczekiwany stan na podstawie odpowiedzi.
Na przykład jest, pozwól mi wejść Nowy Jork tekst w tym polu tekstowym. Zignoruj wielkość liter w porównaniu pole wyboru będzie ignorować, nawet jeśli oczekiwana wartość jest zapisana dużymi lub małymi literami.
4. Teraz wykonaj zestaw testów i sprawdź wyniki. Jak widać w oknie zestawu testów, kolor zielony oznacza pomyślne wykonanie, a kolor czerwony oznacza niepowodzenie.
# 2) Nie zawiera potwierdzenia
Możemy użyć asercji „nie zawiera” do walidacji żądań w negatywnych scenariuszach. Możemy użyć GetSupplierByZipCode poproś o nauczenie się tego.
Otwórz kartę żądania, klikając ją dwukrotnie. W żądaniu wejściowym wprowadź nieprawidłowy kod pocztowy w odpowiedniej lokalizacji, na przykład 10029 . Uruchom to żądanie teraz. Sprawdź dane odpowiedzi, które zawierają dane dostawcy dla podanego kodu pocztowego - spójrz na poniższy obrazek:
(Kliknij na obrazek, aby wyświetlić powiększenie)
Twierdzenie „nie zawiera” jest podświetlone na zielono, ponieważ zostało pomyślnie wykonane.
W oknie konfiguracji skonfigurowaliśmy dodatnią wartość oczekiwaną, jak poniżej:
Zwraca true, jeśli oczekiwana wartość warunkowa nie zostanie znaleziona, i zwraca false, jeśli oczekiwana wartość zostanie znaleziona w komunikacie odpowiedzi.
Podobnie możemy zmienić warunek i ponownie uruchomić żądanie. Generuje odpowiednio wyniki.
# 3) Asercja dopasowania XPath
Potwierdzenie zgodności XPath różni się nieco pod tym względem, że potwierdzi odpowiedź przy użyciu rzeczywistych danych odpowiedzi.
Na przykład , jeśli mamy usługę sieciową do uwierzytelniania logowania, która uwierzytelni dane logowania użytkownika i wyśle potwierdzenie do klienta z jakimś logicznym typem danych, które mogą mieć wartość TRUE lub FALSE w postaci XML.
Jak wiesz, dokumenty XML są budowane za pomocą tagów. Czyli określając oczekiwaną wartość w konfiguracji, powinna ona mieć postać XML.
najlepsze narzędzie do wycinania dla systemu Windows 10
Spróbujmy to zrobić:
Dodaj jeszcze jedno potwierdzenie dla GetSupplierByCity żądanie. W oknie Dodaj potwierdzenie kliknij plik Zawartość nieruchomości kategorię, a następnie kliknij Mecz XPath twierdzenie.
Zostanie wyświetlone poniższe okno:
Górna sekcja to część deklaracji, a dolna to część oczekiwanego wyniku.
Kiedy klikniemy Ogłosić opcja otrzymamy automatycznie wygenerowane skrypty deklaracji jak poniżej:
deklaruj mydło przestrzeni nazw = 'http: //schemas.xmlsoap.org/soap/envelope/ ”;
deklaruj przestrzeń nazw ns1 = ’http: //www.webservicex.net/”;
W powyższych skryptach pierwsza linia oznacza odpowiedź, która powinna składać się z danych XML i załączonych tagów SOAP. W następnej linii cała odpowiedź zostanie przypisana lub skopiowana do pliku ns1 zmienna przestrzeni nazw podczas wykonywania. Jeśli chcemy odfiltrować określone dane z całej odpowiedzi, musimy dodać następujący skrypt.
// ns1: SupplierData (1)
Jak wiesz, jeśli wykonasz GetSupplierByCity żądanie, przedstawi odpowiedź zawierającą listę danych osobowych dostawcy, do których należą Nowy Jork .
Tutaj użyliśmy XPath Match wyrażenie w celu wyodrębnienia danych osobowych konkretnego dostawcy z odpowiedzi zbiorczej. W tym celu użyliśmy pliku ns1 zmienna. Teraz kliknij Wybierz z bieżącego przycisk.
Następnie SOAPUI generuje następujący wynik:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
Proszę odnieść się do tego zrzutu ekranu:
W danych odpowiedzi można zobaczyć tylko dane osobowe jednego dostawcy. Wynik zostanie wygenerowany na podstawie liczby znajdującej się w nawiasach ostrych.
Jak dotąd chodzi o wybranie części odpowiedzi, która jest wymagana, jak możemy / używamy XPath Match twierdzenie?
Przejdźmy do tego: Kliknij przycisk Zapisz po uzyskaniu odpowiedzi.
Początkowo, gdybyś wykonał tę usługę po skonfigurowaniu asercji zgodności XPath bez żadnych zmian, wynikiem będzie pomyślna odpowiedź, stan podświetlony na zielono.
Ale zmieńmy parametr wejściowy w żądaniu wejściowym na coś, co jest nieprawidłowym miastem - „XYZ lub ABC”. Uruchom żądanie i sprawdź wyniki, a także stan potwierdzenia. Otrzymamy odpowiedź o błędzie i czerwone wskazanie statusu asercji. Ponieważ określiliśmy już, że konkretne dane dostawcy powinny być obecne w odpowiedzi usługi w oczekiwanej konfiguracji wyniku, a gdy nazwa miasta jest nieprawidłowa, tego dostawcy wyraźnie nie ma.
W ten sposób możemy potwierdzić odpowiedź XML za pomocą asercji wyrażenia XPath Match. Zgodziłem się, że jest to dość proste na początek, ale jeśli spróbujesz z różnymi odpowiedziami serwisowymi, otrzymasz znacznie lepszy pomysł.
Możemy również użyć funkcji agregujących w wyrażeniu XPath Match. Są to Suma, Min, Max, Count i Avg.
Na przykład Jeśli chcemy poznać łączną liczbę dostawców w oczekiwanych wynikach napisz poniższy skrypt.
count (// ns1: SupplierData) i wraca 536 w rezultacie. Pamiętaj, że wszystkie funkcje agregujące powinny być pisane małymi literami.
# 4) Asercja dopasowania XQuery
Jest to nieco podobne do asercji XPath Match. Jak widzieliśmy w konfiguracji asercji XPath Match, będą dwie sekcje - deklaracja i oczekiwany wynik.
- Dodaj potwierdzenie XQuery Match dla żądania
- W oknie konfiguracji kliknij ogłosić i napisz następujący skrypt
- Teraz kliknij Wybierz z bieżących przycisk
- SOAPUI generuje odpowiedź dla skryptu
Wyrażenie XQuery obsługuje również wyrażenie XPath Match, ale ma własną składnię skryptów, której nie można używać w asercji dopasowania XPath.
Na przykład :
Zobaczymy jeden przykład pobierania wszystkich odpowiedzi danych dostawcy przy użyciu wyrażenia XQuery. Spójrz na ten przykładowy zrzut ekranu, aby lepiej zrozumieć.
Rzeczywisty skrypt:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
W wyrażeniu XQuery dostępnych jest więcej wbudowanych funkcji. Oni są gdzie, zamów przez, za, zwróć i tak dalej.
Wniosek
Cóż, to są najczęściej używane twierdzenia.
Należy tutaj podkreślić, że: Asercje są najważniejsze, aby dokładnie przewidzieć oczekiwany wynik usług internetowych. To jest powód, dla którego jest to jeden z kluczowych funkcje w SOAPUI PRO .
Następny samouczek : W następnym samouczku poznamy podstawy tworzenia skryptów i nie tylko…
Pozostań w kontakcie. Jak zawsze, Twoje komentarze, pytania i sugestie są mile widziane.
rekomendowane lektury
- Jak przeprowadzić testy oparte na danych w SoapUI Pro - samouczek SoapUI nr 14
- Ponad 15 samouczków SoapUI: Najlepsze narzędzie do testowania interfejsu API usług internetowych
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- Jak korzystać z właściwości w skrypcie SoapUI Groovy - samouczek SoapUI # 7
- 7 ważnych funkcji SoapUI i SoapUI Pro - samouczek 2
- Praca z właściwościami SoapUI - SoapUI Tutorial # 8
- 4 Ważne cechy SoapUI Pro dla Pro Audience - SoapUI Tutorial # 12
- Proces pobierania i instalacji SoapUI krok po kroku - Samouczek SoapUI nr 3