Testuj Maca. Szybki start

Testuj Maca. Szybki start

Cześć wszystkim. Powoli wychodzimy z cienia i kontynuujemy cykl artykułów o naszym produkcie. Po Poprzedni artykuł recenzyjny, otrzymaliśmy wiele opinii (w większości pozytywnych), sugestii i raportów o błędach. Dziś pokażemy Testuj Maca w akcji i będziesz mógł docenić niektóre funkcje naszej aplikacji. Aby uzyskać pełniejsze zanurzenie, radzę zapoznać się z naszą dokumentacją pod adresem http://docs-ru.testmace.com. Więc chodźmy!

Instalacja

Zacznijmy od banału. Aplikacja jest dostępna i faktycznie testowana na trzech platformach – Linux, Windows, MacOS. Możesz pobrać instalator dla systemu operacyjnego, który Cię interesuje nasza strona. Dla użytkowników Linuksa możliwa jest instalacja pakiet snapowy. Mamy wielką nadzieję, że Microsoft Store i App Store już niedługo się tym zajmą (Czy jest to konieczne? Co o tym sądzicie?).

Scenariusz eksperymentalny

Jako obiekt testowy wybraliśmy następujący standardowy scenariusz:

  • Login: użytkownik - admin, hasło - hasło
  • dodaj nowy wpis
  • Sprawdźmy czy rekord został dodany poprawnie

Będziemy testować dalej https://testmace-quick-start.herokuapp.com/. To normalne serwer json, idealny do testowania takich aplikacji. Właśnie dodaliśmy autoryzację za pomocą tokena do wszystkich tras serwera json i stworzyliśmy metodę logowania, aby otrzymać ten token. Będziemy działać stopniowo, stopniowo udoskonalając nasz projekt.

Tworzenie projektu i próba utworzenia podmiotu bez uprawnień

Najpierw utwórzmy nowy projekt (filet->Nowy projekt). Jeśli uruchamiasz aplikację po raz pierwszy, nowy projekt otworzy się automatycznie. Na początek spróbujmy złożyć wniosek o utworzenie nowego rekordu (w przypadku, gdy tworzenie rekordów jest możliwe bez autoryzacji). Wybierz elementy z menu kontekstowego węzła projektu Dodaj węzeł -> Krok żądania. Ustaw nazwę węzła na utwórz post. W rezultacie w drzewie zostanie utworzony nowy węzeł i otworzy się zakładka poświęcona temu węzłowi. Ustawmy następujące parametry żądania:

Testuj Maca. Szybki start

Jeśli jednak spróbujemy spełnić żądanie, serwer zwróci kod 401 i bez autoryzacji nic nie dostaniemy na ten serwer. Cóż, ogólnie rzecz biorąc, zgodnie z oczekiwaniami).

Dodanie żądania autoryzacji

Jak już powiedziano, mamy punkt końcowy POST /login, który przyjmuje json jako treść żądania w postaci: {"username": "<username>", "password": "<password>"}Gdzie username и password (ponownie, z akapitu wprowadzającego powyżej) mają znaczenie admin и password odpowiednio. W odpowiedzi ten punkt końcowy zwraca plik JSON Like {"token": "<token>"}. Wykorzystamy go do autoryzacji. Stwórzmy Krok żądania węzeł z nazwą Zaloguj Się, będzie działać jako przodek Projekty węzeł Za pomocą metody „przeciągnij i upuść” przesuń dany węzeł w drzewie wyżej niż węzeł utwórz post. Ustawmy następujące parametry nowo utworzonego żądania:

Wykonajmy żądanie i w odpowiedzi otrzymajmy dwusetny kod z tokenem. Coś takiego:

Testuj Maca. Szybki start

Refaktoryzacja: usuwanie duplikacji domeny

Jak dotąd żądania nie są połączone w jeden skrypt. Ale to nie jedyna wada. Jeśli przyjrzysz się uważnie, zauważysz, że przynajmniej domena jest zduplikowana w obu żądaniach. Niedobrze. Nadszedł czas na refaktoryzację tej części przyszłego skryptu, a zmienne nam w tym pomogą.

W pierwszym przybliżeniu zmienne pełnią tę samą rolę, co w innych podobnych narzędziach i językach programowania – eliminując powielanie, zwiększając czytelność itp. Więcej o zmiennych możesz przeczytać w naszą dokumentację. W tym przypadku będziemy potrzebować zmiennych użytkownika.

Zdefiniujmy zmienną na poziomie węzła Projektu domain ze znaczeniem https://testmace-quick-start.herokuapp.com. Do tego jest to konieczne

  • Otwórz zakładkę z tym węzłem i kliknij ikonę kalkulatora w prawym górnym rogu
  • Kliknij + DODAJ ZMIENNĄ
  • Wprowadź nazwę i wartość zmiennej
    W naszym przypadku okno dialogowe z dodaną zmienną będzie wyglądać następująco:

Testuj Maca. Szybki start

OK. Teraz, dzięki dziedziczeniu, możemy używać tej zmiennej w elementach potomnych dowolnego poziomu zagnieżdżenia. W naszym przypadku są to węzły Zaloguj Się и utwórz post. Aby użyć zmiennej w polu tekstowym, musisz napisać ${<variable_name>}. Na przykład adres URL logowania jest konwertowany na ${domain}/login, odpowiednio dla utwórz post adres URL węzła będzie wyglądał ${domain}/posts.

Tym samym kierując się zasadą DRY nieco udoskonaliliśmy scenariusz.

Zapisz token do zmiennej

Ponieważ mówimy o zmiennych, rozwińmy trochę ten temat. W tej chwili w przypadku udanego logowania otrzymujemy z serwera token autoryzacyjny, który będzie nam potrzebny w kolejnych żądaniach. Zapiszmy ten token w zmiennej. Ponieważ wartość zmiennej zostanie określona podczas wykonywania skryptu, używamy do tego specjalnego mechanizmu - zmienne dynamiczne.

Najpierw wykonajmy żądanie logowania. W zakładce Parsowane odpowiedzieć, najedź kursorem na token i w menu kontekstowym (które wywołuje się prawym przyciskiem myszy lub klikając na przycisk ...) wybierz pozycję Przypisz do zmiennej. Pojawi się okno dialogowe z następującymi polami:

  • ścieżka — która część odpowiedzi została wykorzystana (w naszym przypadku jest to body.token)
  • Aktualna wartość — jaka wartość leży na Ścieżce (w naszym przypadku jest to wartość symboliczna)
  • Nazwa zmiennej — nazwa zmiennej gdzie Aktualna wartość zostaną zachowane. W naszym przypadku tak będzie token
  • Node — w którym z przodków zostanie utworzona zmienna Nazwa zmiennej. Wybierzmy Projekt

Gotowe okno dialogowe wygląda następująco:

Testuj Maca. Szybki start

Teraz za każdym razem, gdy węzeł jest wykonywany Zaloguj Się zmienna dynamiczna token zostanie zaktualizowany o nową wartość z odpowiedzi. I ta zmienna będzie przechowywana w Projekty węzeł i dzięki dziedziczeniu będzie dostępny dla potomków.

Aby uzyskać dostęp do zmiennych dynamicznych, musisz użyć wbudowana zmienna $dynamicVar. Na przykład, aby uzyskać dostęp do przechowywanego tokena, musisz zadzwonić ${$dynamicVar.token}.

Token autoryzacyjny przekazujemy do żądań

W poprzednich krokach otrzymaliśmy token autoryzacyjny i pozostaje nam jedynie dodać nagłówek Authorization ze znaczeniem Bearer <tokenValue> we wszystkich żądaniach wymagających autoryzacji, w tym utwórz post. Można to zrobić na kilka sposobów:

  1. Ręcznie skopiuj token i dodaj nagłówek autoryzacji do żądań będących przedmiotem zainteresowania. Metoda działa, jednak jej zastosowanie ogranicza się jedynie do żądań typu „zrobione i wyrzucone”. Nie nadaje się do wielokrotnego wykonywania skryptów
  2. Skorzystaj z funkcjonalności upoważnienie.
  3. Использовать domyślne nagłówki

Zastosowanie drugiej metody wydaje się oczywiste, jednak w kontekście tego artykułu podejście to jest… nieciekawe. No właśnie: mechanizm autoryzacji plus minus jest Ci znany z innych narzędzi (nawet jeśli mamy takie rzeczy jak dziedziczenie uprawnień) i jest mało prawdopodobne, aby budził pytania.

Kolejną rzeczą są domyślne nagłówki! W skrócie, domyślne nagłówki to dziedziczone nagłówki HTTP, które są domyślnie dodawane do żądania, chyba że zostaną wyraźnie wyłączone. Korzystając z tej funkcjonalności możesz np. zaimplementować niestandardową autoryzację lub po prostu pozbyć się duplikacji w skryptach. Użyjmy tej funkcji, aby przekazać token w nagłówkach.

Wcześniej ostrożnie zapisywaliśmy token w zmiennej dynamicznej $dynamicVar.token na poziomie węzła projektu. Pozostaje tylko wykonać następujące czynności:

  1. Zdefiniuj domyślny tytuł Authorization ze znaczeniem Bearer ${$dynamicVar.token} na poziomie węzła projektu. Aby to zrobić, w interfejsie projektu węzła należy otworzyć okno dialogowe z domyślnymi nagłówkami (przycisk Nagłówki w prawym górnym rogu) i dodaj odpowiedni tytuł. Okno dialogowe z wypełnionymi wartościami będzie wyglądać następująco:
    Testuj Maca. Szybki start
  2. Wyłącz ten nagłówek w żądaniu logowania. Jest to zrozumiałe: w momencie logowania nie mamy jeszcze tokena i na to żądanie go zainstalujemy. Dlatego w interfejsie logowania żądanie w zakładce Nagłówki w regionie Dziedziczny odznacz nagłówek Autoryzacja.

To wszystko. Teraz nagłówek autoryzacji zostanie dodany do wszystkich żądań będących dziećmi węzła Projekt, z wyjątkiem węzła logowania. Okazuje się, że na tym etapie mamy już gotowy skrypt i pozostaje nam jedynie go uruchomić. Możesz uruchomić skrypt, wybierając run w menu kontekstowym węzła Projekt.

Sprawdzanie poprawności utworzenia postu

Na tym etapie nasz skrypt może się zalogować i korzystając z tokena autoryzacyjnego utworzyć post. Musimy jednak upewnić się, że nowo utworzony post ma poprawną nazwę. Zasadniczo pozostaje tylko wykonać następujące czynności:

  • Wyślij prośbę o otrzymanie wiadomości po id,
  • Sprawdź, czy nazwa otrzymana z serwera jest zgodna z nazwą przesłaną podczas tworzenia posta

Spójrzmy na pierwszy krok. Ponieważ wartość identyfikatora jest ustalana podczas wykonywania skryptu, musisz utworzyć zmienną dynamiczną (nazwijmy to postId) z węzła utwórz post na poziomie węzła projektu. Wiemy już, jak to zrobić, wystarczy zapoznać się z sekcją Zapisz token do zmiennej. Pozostaje tylko utworzyć prośbę o otrzymanie postu przy użyciu tego identyfikatora. Aby to zrobić, utwórzmy RequestStep pobierz post o następujących parametrach:

  • Typ żądania: GET
  • URL: ${domena}/posts/${$dynamicVar.postId}

Aby wdrożyć drugi krok, musimy się zapoznać twierdzenie węzeł. Węzeł potwierdzenia to węzeł, który umożliwia zapisywanie kontroli dla określonych żądań. Każdy węzeł asercji może zawierać kilka asercji (sprawdzeń). Więcej o wszelkiego rodzaju twierdzeniach możesz przeczytać w naszym artykule dokumentacja. Użyjemy Compare asercja z operatorem equal. Istnieje kilka sposobów tworzenia asercji:

  1. Długi. Ręcznie utwórz węzeł potwierdzenia z menu kontekstowego węzła RequestStep. W utworzonym węźle Asercja dodaj żądaną asercję i wypełnij pola.
  2. Szybko. Utwórz węzeł potwierdzenia wraz z potwierdzeniem z odpowiedzi węzła RequestStep za pomocą menu kontekstowego

Użyjmy drugiej metody. Tak to będzie wyglądać w naszym przypadku.

Testuj Maca. Szybki start

Dla tych, którzy nie rozumieją, oto co się dzieje:

  1. Złóż żądanie w węźle pobierz post
  2. W zakładce Parsowane odpowiedz, wywołaj menu kontekstowe i wybierz Utwórz asercję -> PORÓWNAJ -> Równy

Gratulacje, stworzyliśmy nasz pierwszy test! Proste, prawda? Teraz możesz całkowicie uruchomić skrypt i cieszyć się efektem. Pozostaje tylko trochę go przebudować i usunąć title do osobnej zmiennej. Ale zostawimy to dla Ciebie jako pracę domową)

wniosek

W tym poradniku stworzyliśmy pełnoprawny scenariusz i jednocześnie dokonaliśmy przeglądu niektórych funkcji naszego produktu. Oczywiście nie wykorzystaliśmy wszystkich funkcjonalności i w kolejnych artykułach przedstawimy szczegółowy przegląd możliwości TestMace. Czekać na dalsze informacje!

PS Dla tych, którzy są zbyt leniwi, aby odtworzyć wszystkie kroki, uprzejmie nagraliśmy magazyn z projektem z artykułu. Możesz go otworzyć za pomocą filet -> Otwarty projekt i wybierz folder Projekt.

Źródło: www.habr.com

Dodaj komentarz