• Przejdź do głównej nawigacji
  • Przejdź do treści
  • Przejdź do głównego paska bocznego
  • Przejdź do stopki
Testelka.pl

Testelka.pl

Testelka.pl - o technologiach w testowaniu oprogramowania

  • Kursy
    • DARMOWY: Java dla testerów
    • Selenium w Javie
    • Selenium w C#
    • Testy API w REST Assured
    • Selektory CSS
    • XPath
  • Materiały na raz
  • Blog
  • O Eli
  • Zaloguj się
  • DOŁĄCZ

API w REST Assured 3. Pierwsze zapytanie do API

Strona główna > Kursy > Testy API w REST Assured > API w REST Assured 3. Pierwsze zapytanie do API

Po poprzedniej lekcji wprowadzającej w temat API i czym to w ogóle jest, w tej wyślemy pierwsze zapytanie do API. Pojawi się nowe narzędzie – Postman. Ułatwi nam ono pokazanie z czego składa się żądanie (zapytanie, request) oraz odpowiedź (response).

Dokumentacja do sklepu

Po poprawnym postawieniu aplikacji dokumentację do niej znajdziesz pod localhost/fakestore/dokumentacja/. Tam też znajdziesz np. klucze potrzebne do uwierzytelnienia.

HTTPS w Postmanie

U mnie request po https zadziałał bez problemu, ale u Ciebie na potrzeby tej lekcji może być konieczna zmiana jednego ustawiania w Postmanie. W Postmanie otwórz File > Settings > General i wyłącz SSL certificate verification. W dalszych lekcjach już i tak będziemy pracować po HTTP.

Jeżeli to rozwiązanie nadal nie zadziała, wybierz OAuth 1.0 zamiast Basic Auth. Wtedy w Consumer Key podaj to, co w lekcji jest wrzucone do username (zaczyna się od ck_) a w Consumer Secret to, co na filmie jest w polu Password (zaczyna się od cs_).

Pierwsze zapytanie do API: linki i materiały

Postman

Postman to narzędzie wspierające wytwarzanie API. My będziemy korzystali tylko z jego podstawowej funkcjonalności – klienta API. Narzędzie należy pobrać z www.getpostman.com, tam też znajdziemy dokumentację.

Postmana używać będziemy do rozmawiania z naszym lokalnym “fakeStorem”, a żeby być w stanie to robić wspierać nas będzie dokumentacja jego API. W tej lekcji szczególnie jeden fragment dokumentacji, ten dotyczący produktów.

Pierwsze zapytanie

Zaczniemy od pobrania listy produktów dostępnych w sklepie.  Na tym konkretnym przykładzie zobaczymy z czego składa się zapytanie do API:

  • endpointa (punktu końcowego) – w naszym przypadku jest to adres, pod który wysyłamy request; jest to jakby wskazanie miejsca do którego możemy zapukać o jakiś zasób;
  • nagłówków (które Postman magicznie będzie za nas dodawał);
  • body, czyli ciała (pustego narazie) requestu (żądania).

Response (odpowiedź) podobnie do requesta, również zawiera nagłówek i ciało, ale poprzedzone kodem odpowiedzi.

Parametry

Zobaczycie też przykład wykorzystania parametrów dodawanych do requestu, które pozwolą wam modyfikować, czy filtrować oczekiwane odpowiedzi – można je dopisywać zarówno w pasku adresu, jak i w przeznaczonych do tego celu polach w Postmanie. Jak to dokładnie zrobić pokazuję na filmie.

Uwierzytelnianie

Wykorzystamy w naszych requestach podstawowe uwierzytelnianie (Basic Auth) oraz zobaczymy, że bez niego nie da się z naszego API wyciągnąć danych. To o czym warto wiedzieć, to że Basic Auth, to nic innego, jak dodanie do nagłówka requestu parametru: Authorization, o wartości “Basic xxxxxxx==” gdzie iksy to zakodowany przy użyciu algorytmu base64 ciąg znaków nazwa_użytkownika:hasło. Ponieważ base64 jest łatwo dekodowalny, nie powinniśmy przesyłać w ten sposób informacji bez użycia choćby SSL (w https).

Przy okazji uwierzytelniana przypomnę, że protokół http(s) jest synchroniczny – czyli zawsze operujemy na parach request-response. Sam REST jest także bezstanowy. Oznacza to, że każdy request powinien być całkowicie niezależny i możliwy do przetworzenia przez producenta API (my jesteśmy konsumentem!) bez oglądania się na jakiekolwiek wcześniejsze, czy późniejsze requesty. Po prostu nie istnieje coś takiego jak sesja w przypadku RESTowych API, uwierzytelnianie musi zachodzić w każdym żądaniu.

Ciało odpowiedzi

Na koniec dwa słowa o ciele odpowiedzi. W przypadku RESTowych webservice’ów będą one dostarczane zwykle w formacie XML, lub JSON. My od dziś, już przez cały kurs będziemy działali z JSONami, bo tak też jest zaprojektowane API z którego korzystamy. Na filmie zobaczysz też strukturę JSOna, którą pokrótce wyjaśniam. Zobaczysz co oznacza nawias kwadratowy, a co wąsaty (czyli klamrowy), a więc zobaczysz jak reprezentowane są listy i pojedyncze obiekty.

Reader Interactions

Komentarze

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc komentować.

Komentarze

  1. d.piaskowska93 napisał

    27 stycznia, 2020 o 11:04 pm

    Pomimo podawania username i password ciągle miałam 401 i wywnioskowałam z dokumentacji, że to dlatego że woocomerce każe przy http używać OAuth 1.0. Z tego co widzę, to masz localhost z ssl (https), jednak xampp nie daje od razu takiej możliwości, trzeba się trochę pomęczyć. Walczyłam z tym dość długo, ale w końcu udało mi się wyłączając w ustawieniach opcję "SSL certificate verification". Piszę koment, bo możliwe, że ktoś też będzie miał taki problem 🙂

    Odpowiedz
    • Elżbieta Sądel napisał

      28 stycznia, 2020 o 9:33 am

      Halko! Gdzie wyłączyłaś tą opcję? Dodam to d [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • d.piaskowska93 napisał

        28 stycznia, 2020 o 10:04 am

        Postman -> File > Settings > General > SSL certificate verification 🙂

        Odpowiedz
        • Elżbieta Sądel napisał

          28 stycznia, 2020 o 4:46 pm

          Dodane, dzięki! [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
  2. Marcin Błaszczyk napisał

    29 stycznia, 2020 o 5:04 pm

    Witam 🙂
    Wyłączyłem SSL certificate verification i pomimo wklepania passów dalej wyskakuje błąd 401.

    Odpowiedz
    • Kuba Rosiński napisał

      30 stycznia, 2020 o 7:38 am

      Hej, to co przychodzi mi do głowy, to małe probl [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
      • Anna Góra napisał

        24 lutego, 2020 o 3:25 pm

        Mam użytkowników w bazie, temporary header jest ten sam, ale dalej dostaję 401 w odpowiedzi 🙁

        Odpowiedz
        • Kuba Rosiński napisał

          24 lutego, 2020 o 4:27 pm

          Moja kryształowa kula mówi, że masz w adresie d [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

          Odpowiedz
          • Anna Góra napisał

            24 lutego, 2020 o 4:33 pm

            Zgadza się - mój błąd. Problem rozwiązany, dziękuję!

  3. testeros napisał

    5 lutego, 2020 o 11:12 pm

    Sorki ale nie załapałem dokładnie, w którym miejscu ściągnietego pakietu fakestore'a jest zawarty username i password do autentykacji w Postmanie ?

    Odpowiedz
    • Elżbieta Sądel napisał

      6 lutego, 2020 o 6:46 am

      Halko! Przescrolluj się na samą górę tej lekcj [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  4. Ola Roślik napisał

    6 lutego, 2020 o 9:36 am

    niestety u mnie podane credentials też nie zadziałały :/, ale lekcja ciekawa 🙂

    Odpowiedz
    • Kuba Rosiński napisał

      7 lutego, 2020 o 10:44 am

      Olu, w sumie to caly zestaw pomyslow do sprawdenia [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz
  5. Milena Miętkiewicz napisał

    9 listopada, 2020 o 4:26 pm

    Jak rozwiązać przypadek, kiedy ścieżka do endpointu zawiera nawiasy klamrowe?
    np. GET /locations/{ids}
    private static final String LOCATIONS_IDS_API_PATH = "/locations/ ......... ";

    Odpowiedz
    • Kuba Rosiński napisał

      9 listopada, 2020 o 5:09 pm

      Czy to jest z API Fakestore'a?
      Ja nie jestem pewi [...] CAŁOŚĆ KOMENTARZA WIDOCZNA DLA SUBSKRYBENTÓW.

      Odpowiedz

Pierwszy Sidebar

LEKCJE W KURSIE

  • Lokalna aplikacja do testów za pomocą LocalWP lub XAMPP
  • Czym jest API?
  • Pierwsze zapytanie do API
  • Pierwszy test API - metoda GET
  • Tworzenie obiektów w API - metoda POST
  • Zadanie: tworzenie i pobieranie obiektów
  • Usuwanie i zmiana obiektów - metody DELETE i PUT
  • CRUD: wspólne elementy żądań
  • CRUD: PUT i PATCH oraz niezależność testów
  • Jak szperać w JSONie?
  • Zadanie: żądania w pętli
  • Asercje
  • Serializacja i deserializacja
  • Zadanie: serializacja i deserializacja
  • Organizacja projektu testowego
  • Zadanie: organizacja projektu testowego

Footer

Elzbieta Natalia Sadel
Calle Marzo 9 1 D
41009 Sevilla
Hiszpania
NIF: Y7882076J

Zostań trenerem!

Regulamin
Polityka prywatności
Polityka wsparcia w ramach członkostwa

Koszulki i torby dla testerów

Pomoc
Kontakt

Poskładane z 💛 przez Automatela.pl

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaNie wyrażam zgodyPolityka prywatności