Asercje w SoapUI: skrypty, XQuery, poradnik dotyczący typów XPath

Co to jest twierdzenie?

Asercja oznacza akt potwierdzenia lub stwierdzenia czegoś. Można go również interpretować jako punkt kontrolny lub punkt walidacji.

Po wysłaniu żądania do serwera WWW otrzymana zostanie odpowiedź. Musimy sprawdzić, czy odpowiedź zawiera dane, których oczekujemy. Aby zweryfikować odpowiedź, musimy użyć asercji.

Rodzaje asercji

Istnieją różne sposoby zapewnienia odpowiedzi; jednakże podczas sprawdzania poprawności odpowiedzi skupimy się na powszechnie używanych typach asercji SoapUI. Poniżej znajdują się te, które są dostępne w wersji Open Source SoapUI.

  1. Zawartość właściwości
  2. Standard statusu zgodności
  3. Scenariusz
  4. SLA
  5. JMS
  6. Bezpieczeństwo
Rodzaje asercji w SoapUI
Rodzaje asercji w SoapUI

Oprócz tych wymienionych powyżej, wersja PRO posiada również wbudowaną asercję JDBC, za pomocą której możemy sprawdzić, czy usługa internetowa poprawnie zaktualizowała bazę danych.

ZAWIERA TWIERDZENIE

Wyszukuje istnienie określonego ciągu. Obsługuje również wyrażenia regularne.

Będziemy kontynuować ten sam przykład z poprzedniego samouczka z żądaniem WSDL http://www.dneonline.com/calculator.asmx.

Krok 1: Domyślnie nie ma żadnych asercji.

  • Liczba asercji jest pokazana na karcie Asercje.
  • Aby dodać nową asercję, kliknij przycisk „Dodaj nową asercję”.

Zawiera twierdzenie

Krok 2: Teraz,

  1. Wybierz kategorię asercji.
  2. Wybierz typ asercji.
  3. Kliknij „Dodaj”

Zawiera twierdzenie

Krok 3: Sprawdźmy, czy w odpowiedzi istnieje ciąg „46”. Kliknij OK'

Uwaga: Możemy także zignorować wielkość liter i dodać wyrażenie regularne.

Zawiera twierdzenie

Krok 4: Po dodaniu natychmiast wykonywana jest asercja i wyświetlana informacja, czy jest WAŻNA, czy NIEWAŻNA.

Zawiera twierdzenie

Krok 5: Teraz powiedzmy, że zmieniamy zawartość „Zawiera asercję w SoapUI” na „47” i zobaczymy, co się stanie.

Zawiera twierdzenie

Krok 6: Asercja jest wykonywana, a wynik jest zgłaszany użytkownikowi. Ponieważ w odpowiedzi nie mamy ciągu „47”, potwierdzenie nie powiodło się.

Zawiera twierdzenie

NIE ZAWIERA TWIERDZENIA

Wyszukuje nieistnienie określonego ciągu. Obsługuje również wyrażenia regularne.

Krok 1: Teraz, po kliknięciu przycisku „dodaj nowe potwierdzenia”,

  1. Wybierz kategorię asercji.
  2. Wybierz typ asercji – w tym przypadku „NIE zawiera”
  3. Kliknij „Dodaj”

Nie zawiera twierdzeń

Krok 2: Sprawdźmy, czy w odpowiedzi istnieje ciąg „intA”. Wprowadź ciąg „FromCurrency” i kliknij „OK”

Nie zawiera twierdzeń

Krok 3: Gdy tylko zostanie dodane potwierdzenie, zostanie ono wykonane i wyświetlone zostanie wynik. Do tej pory dodaliśmy dwa potwierdzenia, więc oba potwierdzenia zostały wykonane i wyświetlone zostały wyniki.

Nie zawiera twierdzeń

Krok 4: Zmieńmy teraz treść stwierdzenia „Nie zawiera” i zobaczmy, co się stanie. Sprawdzimy, czy ciąg „AddResult” nie istnieje.

Nie zawiera twierdzeń

Krok 5: Ciąg „AddResult” faktycznie występuje w odpowiedzi, dlatego potwierdzenie „NIE zawiera” zakończy się niepowodzeniem, jak pokazano poniżej.

Nie zawiera twierdzeń

Twierdzenie o dopasowaniu XPATH

Używa XPath wyrażenie, aby wybrać węzeł docelowy i jego wartości. XPath to język zapytań XML służący do wybierania węzłów z dokumentu XML.

Krok 1: Teraz, po kliknięciu przycisku „Dodaj nowe asercje”,

  1. Wybierz kategorię asercji.
  2. Wybierz typ asercji – w tym przypadku „Dopasowanie XPath”
  3. Kliknij „Dodaj”

Asercja dopasowania XPath

Krok 2: Otworzy się okno Dodaj XPath.

Przed dodaniem XPath SoapUI musimy zadeklarować przestrzeń nazw. Przestrzeń nazw XML to zbiór nazw identyfikowanych przez odwołanie do Uniform Resource Identifier (URI), które są używane w dokumentach XML jako nazwy elementów i atrybutów. To samo jest używane w asercji XPath interfejsu użytkownika SOAP.

Aby zadeklarować przestrzeń nazw XML, wystarczy kliknąć przycisk „Zadeklaruj”, który wykona to zadanie za nas, w przeciwnym razie możemy również ręcznie zadeklarować przestrzeń nazw samodzielnie.

Po zadeklarowaniu przestrzeni nazw musimy odwołać się do XPath przy użyciu utworzonej przestrzeni nazw.

Po kliknięciu przycisku „Zadeklaruj” pojawią się dwie przestrzenie nazw, ponieważ mamy dwa identyfikatory URI. Jeden z nich to adres URL schematu, a drugi odpowiada rzeczywistemu adresowi URL usługi internetowej. Podczas odwoływania się do XPath musimy używać rzeczywistej przestrzeni nazw, w której znajduje się usługa internetowa, a NIE przestrzeni nazw schematu.

Asercja dopasowania XPath

zadeklaruj mydło przestrzeni nazw='http://schemas.xmlsoap.org/soap/envelope/';

zadeklaruj przestrzeń nazw ns1='http://tempuri.org/';

Asercja dopasowania XPath

Krok 3: Teraz musimy wprowadzić XPath węzła XML, który musimy sprawdzić.

//ns1:AddResult Podaje nam wartość węzła zawartego pomiędzy & a ns1 odpowiada zadeklarowanej przestrzeni nazw, która wskazuje na „http://tempuri.org/”

Po wprowadzeniu kodu XML musimy kliknąć opcję „Wybierz z bieżącej”, aby wartość z bieżącej odpowiedzi została pobrana do porównania w przyszłości.

Asercja dopasowania XPath

Krok 4: Do tej pory

  1. Po zadeklarowaniu przestrzeni nazw wprowadziliśmy XPath węzła XML, który musimy sprawdzić.
  2. Musimy kliknąć „Wybierz z bieżącego”, aby bieżąca wartość stała się wartością oczekiwaną.
  3. Użytkownikowi pokazywana jest aktualna wartość, którą w razie potrzeby możemy zmodyfikować.
  4. Kliknij „Zapisz”.

Asercja dopasowania XPath

Krok 5: Dodane potwierdzenie w SoapUI zostanie wyświetlone w sposób pokazany poniżej.

Asercja dopasowania XPath

Twierdzenia skryptowe

Ta technika asercji jest najpowszechniej stosowana, ponieważ niezwykle trudno jest zarządzać i utrzymywać setki asercji.

Interfejs użytkownika SOAP używa jednego z nich Groovy Skrypty lub JAVASCRIPT do asercji skryptowych. Technika skryptowa jest stosowana do opracowywania ram do testowania SOAP. Asercje skryptowe są używane w następujących okolicznościach.

Skrypty pozwalają użytkownikowi na wykonanie pewnych operacji przed i po wykonaniu TestCase za pomocą metod odpowiednio set up i tear down. Set up to procedura wykonywana przed wykonaniem określonej metody (przykład – tworzenie i inicjalizacja obiektu), podczas gdy tear down to procedura wykonywana po wykonaniu metody (np. niszczenie obiektów i czyszczenie). Ta funkcja nie jest dostępna w innych typach Assertion i można ją wykonać tylko za pomocą kodowania.

Umożliwia użytkownikom otwieranie/zamykanie projektu, inicjowanie lub czyszczenie ustawień związanych z projektem, a także pracę ze zmiennymi środowiskowymi, co jest bardzo pomocne podczas pisania skryptów.

Pomaga nam to w zapewnieniu dynamicznej treści odpowiedzi.

Potwierdzenia skryptowe służą do tworzenia potwierdzeń zdefiniowanych przez użytkownika, które NIE są predefiniowane przez interfejs użytkownika SOAP.

Do zademonstrowania asercji skryptu w SoapUI użyjemy kalkulatora WSDL, utworzonego wcześniej przypadku testowego „Dodaj”.

Krok 1: Kroki dodania skryptu groovy są takie same, jak w przypadku innych asercji, z tą różnicą, że asercja nie jest wstępnie zdefiniowana. Zamiast tego jest to asercja zdefiniowana przez użytkownika, która oferuje większą elastyczność niż te wbudowane.

Wybierz krok testu, do którego ma zostać dodane potwierdzenie.

Twierdzenia skryptowe

Kliknij przycisk „Dodaj asercję”, jak pokazano poniżej.

Twierdzenia skryptowe

Krok 2: Teraz wybierz kategorię Asercja.

  1. W tym przypadku jest to Skrypt.
  2. Wybierz opcję Asercja skryptu SoapUI i nie są z nią powiązane żadne podtypy.
  3. Kliknij „Dodaj”.

Twierdzenia skryptowe

Krok 3: Otworzy się okno dialogowe skryptów, w którym użytkownik będzie mógł napisać zdefiniowany przez siebie skrypt w celu sprawdzenia poprawności kodu XML odpowiedzi.

Twierdzenia skryptowe

Krok 4: Teraz napiszmy fajny skrypt, aby sprawdzić współczynnik konwersji. Poniżej załączono skrypt z osadzonymi komentarzami. Zaleca się posiadanie wiedzy nt Java Skrypt lub Groovy Skrypt przed próbą napisania własnego skryptu.

//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. Kliknij przycisk „Wykonaj”, aby uruchomić wykonanie.
  2. Dane wyjściowe skryptu są wyświetlane w panelu Dane wyjściowe. Wydrukował zarówno wartość konwersji, jak i wynik końcowy (pozytywny lub negatywny)
  3. Wyświetla się informacja, że ​​'Script Assertion Passed'. Kliknij OK.

Uwaga: Ostateczne wyskakujące okienko z informacjami będzie zawsze wyświetlane z komunikatem „Potwierdzenie skryptu przekazane”, o ile skrypt jest poprawny składniowo. Nie ma to żadnego związku z twoim twierdzeniem zawartym w skrypcie.

Twierdzenia skryptowe

kliknij OK

Krok 5: Teraz karta asercji wyświetla wszystkie potwierdzenia, które dodaliśmy dla tego zestawu testów, wraz ze statusem każdego z nich.

Twierdzenia skryptowe

Krok 6: Teraz

  1. Wybierz zestaw testów z drzewa Nawigatora
  2. Kliknij przycisk „Uruchom”.
  3. Wyniki zostaną wyświetlone dla całego zestawu testów.

Twierdzenia skryptowe

Twierdzenie dopasowania Xquery

Używa wyrażenia Xquery do wybierania treści z właściwości docelowej. Potrzebujemy znacznie większej odpowiedzi XML, aby lepiej zrozumieć asercję XQuery w SoapUI. Zaimportujmy jeszcze jeden plik WSDL, jak pokazano poniżej: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Krok 1: Kliknij prawym przyciskiem myszy istniejący projekt i wybierz opcję „Dodaj WSDL”.

Twierdzenie dopasowania Xquery

Krok 2: Kliknij prawym przyciskiem myszy istniejący projekt i wybierz opcję „Dodaj WSDL”. Pozostaw inne opcje jako domyślne i kliknij przycisk „OK”.

Twierdzenie dopasowania Xquery

Krok 3: Poniżej przedstawiono listę wszystkich operacji.

Twierdzenie dopasowania Xquery

Krok 4: Teraz dodajmy a Przypadek testowy w tym samym zestawie testów, dla którego stworzyliśmy Testowanie przelicznik walut.

Twierdzenie dopasowania Xquery

Krok 5: Wprowadź nazwę przypadku testowego i kliknij przycisk „OK”.

Twierdzenie dopasowania Xquery

Krok 6: Przypadek testowy jest tworzony w sposób pokazany poniżej.

Twierdzenie dopasowania Xquery

Krok 7: Dodaj
nowy etap testowy typu „Żądanie testu mydła”, jak pokazano poniżej.

Twierdzenie dopasowania Xquery

Krok 8: Wprowadź nazwę kroku testowego. Powiedzmy – Dostawca_po_City, które byłoby bardziej znaczące. Kliknij „OK”.

Twierdzenie dopasowania Xquery

Krok 9: Wybierz Operaktórą chcielibyśmy zweryfikować. W tym przypadku jest to 'MedicareSupplierSoap -> GetSupplierByCity'. Kliknij 'OK'.

Twierdzenie dopasowania Xquery

Krok 10: Wprowadź nazwę przypadku testowego i kliknij „OK”.

Twierdzenie dopasowania Xquery

Krok 11: Zarys żądania XML zostanie wyświetlony w sposób pokazany poniżej.

Twierdzenie dopasowania Xquery

Krok 12: Teraz znajdźmy wszystkie informacje o dostawcach dla miasta „Nowy Jork”.

Aby to zrobić, dodaj następujące wiersze do swojego kodu.

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

<City>New York</City>

</GetSupplierByCity>

WSDL pod poniższym adresem URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Twierdzenie dopasowania Xquery

Krok 13: Po wykonaniu testu otrzymujemy poniższą odpowiedź

Twierdzenie dopasowania Xquery

Krok 14: Załóżmy, że musimy zweryfikować cały numer dostawcy. Nie możemy używać asercji XPath, ponieważ potrzebujemy setek asercji XPath. Dlatego w tym przypadku użycie XQuery jest nieuniknione.

Asercja XQuery pomaga nam zweryfikować grupę odpowiedzi XML, które mają charakter powtarzalny.

Twierdzenie dopasowania Xquery

Krok 15: Teraz kliknij „Dodaj asercję”,

  1. W tym przypadku wybierz „Kategorię twierdzenia” – Treść właściwości.
  2. Wybierz typ asercji jako „Asercja XQuery”
  3. Kliknij „Dodaj”.

Twierdzenie dopasowania Xquery

Krok 16: Podobnie jak w przypadku asercji XPath, musimy zadeklarować przestrzeń nazw.

  1. Kliknij przycisk „Declare”, aby automatycznie zezwolić interfejsowi użytkownika SOAP na zadeklarowanie przestrzeni nazw. Po kliknięciu przycisku „declare” użytkownikowi wyświetli się „POP up” z komunikatem „declare namespace from schema instead”. Kliknij „Yes”, aby kontynuować, jak pokazano poniżej.

    Uwaga: Po naciśnięciu przycisku „Zadeklaruj” możesz otrzymać inny adres URL jako deklarację przestrzeni nazw, jednak przy kodowaniu będzie brana pod uwagę rzeczywista przestrzeń nazw lokalizacji usługi internetowej.

    Twierdzenie dopasowania Xquery

  2. Aby pobrać cały numer dostawcy, musimy napisać zapytanie XPath i umieścić je w <Numer dostawcy> i Tagi.
  3. Kliknij „Wybierz z bieżącego”, co spowoduje wykonanie na podstawie bieżącej odpowiedzi.
  4. Po kliknięciu „Wybierz z bieżącego” zostaną wyświetlone wszystkie numery dostawców.
  5. Kliknij „Zapisz”.
// 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)}
}

Twierdzenie dopasowania Xquery

Krok 17: Asercja XQuery zostanie wykonana, a ostateczny wynik zostanie wyświetlony w panelu „Assercja”, jak pokazano poniżej. Teraz pomyślnie dodaliśmy asercję Xquery, za pomocą której sprawdziliśmy wszystkie informacje o numerze dostawcy. To samo byłoby porównywane z wartościami rzeczywistymi za każdym razem, gdy żądanie jest wysyłane do serwera WWW.

Uwaga: Rzeczywiste wartości nie zostaną wyświetlone. Jeśli wszystkie rzeczywiste wartości są takie same jak oczekiwane wartości, wyświetla się VALID, w przeciwnym razie wyświetla się 'Failed'.

Twierdzenie dopasowania Xquery

Kiedy używać wbudowanej asercji?

  • Gdy odpowiedź jest krótka i można ją zweryfikować za pomocą jednej z wbudowanych asercji.
  • Możemy również użyć wbudowanej asercji, jeśli odpowiedź wysyłana z serwera WWW ma zawsze charakter statyczny. Jeśli jest dynamiczny, nie będziemy w stanie go potwierdzić za pomocą wbudowanych asercji.
  • Kiedy użycie wbudowanych potwierdzeń, takich jak potwierdzenia przekroczenia limitu czasu i potwierdzenia zabezpieczeń, staje się nieuniknione.
  • Wbudowane twierdzenia sprawdzają się całkiem dobrze w przypadku jednorazowego użycia, gdy testów nie trzeba powtarzać.

Opcje asercji

Utworzonymi asercjami najlepiej sterować za pomocą panelu sterowania, który został podświetlony poniżej.

Opcje asercji

Utworzone potwierdzenia pozwalają testerom skonfigurować następujące rzeczy z zestawu narzędzi potwierdzenia.

Option Opisy Konstrukcyjne

Opcje asercji

Wybrana asercja przesuwa się w górę kolejności.

Opcje asercji

Wybrana asercja przesuwa się w dół kolejności.

Opcje asercji

Usuwa wybrane potwierdzenie

Opcje asercji

Skonfiguruj ponownie/edytuj wybraną asercję.
  • Poniżej znajdują się funkcje dostępne wyłącznie w wersji PRO SOAP UI. Wersja PRO pomaga nam również w grupowaniu asercji, dzięki czemu możemy dodać jeszcze jedną warstwę walidacji do utworzonych asercji.
  • ORAZ: Wszystkie asercje są oceniane jako WAŻNE, co skutkuje SPRAWDZONYM warunkiem grupy. LUB: Co najmniej jedno z stwierdzeń w grupie musi być WAŻNE, aby można było stwierdzić grupowy warunek SPRAWDZONY.

  • Wersja Pro również pozwala Klonowanie twierdzeń: Ta opcja umożliwia testerom zezwolenie na kopiowanie asercji do innego kroku testowego w tym samym lub innym projekcie.
  • Wyłącz/Włącz Asercje: Ta opcja umożliwia wyłączenie lub włączenie dowolnej asercji zgrupowanej lub niezgrupowanej. Jeśli asercja jest wyłączona, jest wyszarzona, a gdy wykonywany jest przypadek testowy, wyłączone asercje nie zostaną wykonane.
  • Rozgrupuj asercje: wszelkie zgrupowane asercje można rozgrupować, jeśli testerzy tak postanowią.

Pełna lista metod dostępnych w różnych typach asercji

Mechanizm potwierdzania

Opisy Konstrukcyjne

ZAWARTOŚĆ NIERUCHOMOŚCI
zawiera Wyszukuje istnienie określonego ciągu. Obsługuje również wyrażenia regularne.
Nie zawiera Wyszukuje nieistnienie określonego ciągu. Obsługuje również wyrażenia regularne.
Dopasowanie XPath Używa wyrażenia XPath do wybrania węzła docelowego i jego wartości.
Dopasowanie XQuery Używa wyrażenia Xquery do wybierania zawartości z właściwości docelowej.
Zgodność, status, standardy
HTTP Pobierz wszystkie zasoby Sprawdza dokument HTML po pobraniu i sprawdza każdą właściwość zawierającą HTML.
Nieprawidłowe kody stanu HTTP Sprawdza, czy odpowiedź HTML zawiera kod stanu, którego nie ma na liście zdefiniowanych kodów.
Nie błąd SOAP Sprawdza, czy ostatnia odebrana wiadomość nie jest błędem protokołu SOAP. Jest bardzo oczywiste, że ma to zastosowanie tylko w przypadku kroków testowych SOAP.
Zgodność schematu Sprawdza, czy ostatnia odebrana wiadomość jest zgodna ze standardową definicją schematu WSDL lub WADL. Sprawdza się dobrze w przypadku kroków testowych SOAP i REST.
Błąd SOAP-a Sprawdza, czy ostatnia odebrana wiadomość jest błędem protokołu SOAP. Jest to odwrotność stwierdzeń o błędach „NIE SOAP”.
Odpowiedź SOAP Sprawdza, czy ostatnia otrzymana odpowiedź jest prawidłową odpowiedzią SOAP i obowiązuje tylko w przypadku kroków żądania testu SOAP.
Prawidłowe kody stanu HTTP Sprawdza, czy odpowiedź HTML zawiera kod stanu znajdujący się na liście zdefiniowanych kodów. Jest to odwrotność stwierdzenia „Nieprawidłowe kody stanu HTTP”.
Żądanie adresowania WS Sprawdza, czy ostatnie otrzymane żądanie zawiera odpowiednie nagłówki adresowania WS.
Odpowiedź adresowania WS Sprawdza, czy ostatnia otrzymana odpowiedź zawiera odpowiednie nagłówki adresowania WS.
Stan zabezpieczeń WS Sprawdza, czy ostatnia odebrana wiadomość zawiera prawidłowe nagłówki WS-Security i jest ważna tylko w przypadku żądań SOAP.
Scenariusz
Twierdzenie skryptu Umożliwia użytkownikom wykonanie niestandardowego skryptu w celu przeprowadzenia weryfikacji zdefiniowanej przez użytkownika.
SLA
Umowa SLA odpowiedzi Sprawdza, czy czas odpowiedzi ostatniej otrzymanej odpowiedzi mieścił się w zdefiniowanym limicie.
JMS
Stan JMS Sprawdza, czy żądanie JMS z kroku testowego zostało pomyślnie wykonane i działa prawidłowo w przypadku kroków testowych z punktem końcowym JMS.
Limit czasu JMS Sprawdza, czy odpowiedź JMS w kroku testu nie trwała dłużej niż określony czas.
Bezpieczeństwo
Ekspozycja informacji wrażliwych Sprawdza, czy komunikat odpowiedzi nie ujawnia poufnych informacji o systemie docelowym. Możemy użyć tego potwierdzenia dla kroków testowych REST, SOAP i HTTP.

POBIERZ PROJEKT SOAPUI ZAWIERAJĄCY POWYŻSZE TWIERDZENIA

Typowe błędy i rozwiązywanie problemów

Użyj prawidłowej przestrzeni nazw. Przestrzeń nazw powinna być adresem URL, pod którym znajduje się usługa internetowa.

Jeśli podczas opracowywania asercji skryptowej wystąpi błąd, użyj „log.info”, aby wydrukować zawartość zmiennych

Jeśli nie otrzymano oczekiwanych wyników, sprawdź, czy w żądaniu przekazano prawidłowe dane wejściowe.

Na przykład w przeliczniku walut, jeśli wpiszesz „intA” jako „x”, które nie jest liczbą całkowitą, na wyjściu zostanie wyświetlony kod błędu „SOAP-Client”, co oznacza, że ​​problem dotyczy parametru przekazywanego z Strona klienta.

Typowe błędy i rozwiązywanie problemów

Typowe błędy i rozwiązywanie problemów

Upewnij się, że używasz poprawnej składni podczas korzystania z asercji XPATH i XQuery. NIE powinieneś używać kropki(.) zamiast dwukropka(:) podczas korzystania z powyższego twierdzenia. Składnia to //przestrzeń nazw:Zmienna i NIE //przestrzeń_nazw.zmienna. W ten sposób może pojawić się komunikat „NIE pasuje w bieżącej odpowiedzi”, mimo że nazwa tagu jest poprawna.

Typowe błędy i rozwiązywanie problemów