Jak przetestować API za pomocą Pythona i JavaScript

Jak przetestować API za pomocą Pythona i JavaScript

Jest cienka granica między wyborem interfejsu programowania aplikacji (API) a podjęciem decyzji, czy można z nim pracować, czy nie. Większość interfejsów API REST ma ogólną architekturę i wątek wspólnej ścieżki żądania. Ale niektóre API odbiegają od standardu. W konsekwencji stają się trudne w użyciu.

Dlatego przed zbudowaniem całego oprogramowania na interfejsie API, musisz przeprowadzić kontrolę jakości i upewnić się, że działa poprawnie. Czym więc jest testowanie API i jak możesz przetestować API?

Co to jest testowanie API?

Testowanie API obejmuje wstępną ocenę funkcjonalności, bezpieczeństwa, skalowalności, szybkości i nie tylko API, aby sprawdzić, czy jest to idealne rozwiązanie dla programu, który chce z niego korzystać. Ale powierzchownie może to obejmować testowanie, aby sprawdzić, czy wysyła odpowiednie odpowiedzi, gdy wysyłasz żądania za pośrednictwem różnych punktów końcowych.

W zależności od jego struktury, podczas testowania interfejsu API będziesz wysyłać żądania (Get, Post, Update lub Delete) do odpowiednich punktów końcowych. Istnieje wiele metryk do sprawdzenia podczas testowania API. Ale na poziomie początkującym chcesz sprawdzić integralność interfejsu API na podstawie jego kodu stanu i upewnić się, że pobiera i akceptuje poprawne dane.

W tym celu, podobnie jak w przypadku każdego żądania internetowego, interfejs API może zwrócić kod stanu 200, 400 lub 500, a nawet inny.

Większość interfejsów API używa odpowiedzi JSON do obsługi swoich ładunków. W zależności od celu inni mogą akceptować i odpowiadać za pomocą ładunków XML, wieloczęściowych lub HTML.

Jak przetestować API za pomocą Pythona i JavaScript

Chociaż w Internecie istnieje wiele narzędzi do testowania interfejsu API graficznego interfejsu użytkownika (GUI), interfejs API można oceniać bardziej krytycznie za pomocą pisanych skryptów.

API informuje w swojej dokumentacji, jakiego rodzaju żądania dopuszcza i dostarcza im odpowiednie punkty końcowe. Możesz więc je pobrać i przetestować za pomocą odpowiednich metod żądań.

Powiązane: Co to jest REST API i jak możesz pobrać dane do swojej aplikacji lub witryny?

W przeciwieństwie do faktycznej fazy produkcyjnej, testowanie API jest surowe. Dzięki temu nie potrzebujesz tak dużej szczegółowości, jak podczas uruchamiania interfejsu API w środowisku produkcyjnym. Chociaż istnieją różne typy testowania interfejsu API, w tym artykule skupimy się bardziej na testach walidacji odpowiedzi.

W tym samouczku przetestujemy fałszywy interfejs API sklepu, korzystając z biblioteki pobierania JavaScript i biblioteki żądań Pythona . Robiąc to, przetestujemy punkty końcowe pod kątem pobierania, publikowania, aktualizowania i usuwania danych.

Jak przetestować punkt końcowy Get API za pomocą JavaScript

Tak jak używałbyś go w środowisku produkcyjnym, możesz przetestować API w JavaScript używając Axios lub metody fetch .

Aby uzyskać status odpowiedzi z interfejsu API za pomocą funkcji fetch :

fetch('https://fakestoreapi.com/products', ).then(res =>{ console.log(res) })

Powyższe żądanie zwraca stan 200, jeśli jest poprawną odpowiedzią. Po pomyślnym przesłaniu żądania możesz zażądać danych w czasie rzeczywistym z interfejsu API.

Pobierzmy dane z tego API:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ console.log(response) }).catch(err => console.log(err))

Odpowiedź na powyższy kod pobierania wygląda tak:

Jak przetestować API za pomocą Pythona i JavaScript

Aby np. poznać cenę wszystkich produktów, możesz skorzystać z funkcji mapy :

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ response.map(data =>{ console.log(data.price) }) // console.log(response) }).catch(err => console.log(err))

Powyższe rejestruje następujące dane wyjściowe:

Jak przetestować API za pomocą Pythona i JavaScript

Testowanie punktu końcowego Get za pomocą Pythona

Jak wspomniano wcześniej, Python używa również biblioteki żądania, aby uzyskać dostęp do danych API.

Aby sprawdzić status odpowiedzi w tym przypadku:

import requests data = requests.get('https://fakestoreapi.com/products') print(data.status_code)

Rejestrowanie danych, tak jak to zrobiliśmy powyżej, zwraca odpowiedni status. Jednak w tym przypadku jest to 200.

Teraz zdobądźmy te same dane za pomocą Pythona, które zrobiliśmy podczas korzystania z JavaScript:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() print(myData)

Wynik powyższego wygląda tak:

Jak przetestować API za pomocą Pythona i JavaScript

Możesz uzyskać określone dane za pomocą pętli for .

Aby uzyskać ceny produktów, na przykład:

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() indexes = 0 for i in myData: goods = myData[indexes] indexes +=1 print(goods["price"])

Oto jak wygląda wynik:

Jak przetestować API za pomocą Pythona i JavaScript

Testowanie punktu końcowego posta za pomocą JavaScript

Po przetestowaniu i sprawdzeniu, że żądanie Get działa, w zależności od celu i tego, co oferuje API, możesz sprawdzić, czy możesz również wstawić do niego dane.

W przeciwieństwie do sposobu, w jaki wykonujesz żądanie Get, żądanie Post akceptuje ładunek. Dodatkowo musisz określić, że jest to żądanie postu:

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products', { method: "Post", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload to JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Powyższy kod rejestruje kod stanu odpowiedzi i nowe informacje wstawiane po uruchomieniu. Dzięki temu dowiesz się, czy Twoja prośba została zrealizowana, czy nie. Zazwyczaj, jeśli kod stanu to 200, interfejs API ma prawidłowy punkt końcowy, który zwraca odpowiednią odpowiedź.

Testowanie żądania posta w Pythonie

Można również przetestować pocztowy końcowy API przy użyciu Pythona requests.post . Podobnie jak podczas korzystania z funkcji pobierania JavaScript , musisz również tutaj określić ładunek:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.post('https://fakestoreapi.com/products', data = payload ) print(Posted.status_code) print(Posted.json())

Podobnie jak JavaScript, powyższy kod Pythona rejestruje również kod statusu odpowiedzi i nowe dane określone w ładunku .

Testowanie punktów końcowych Put

Aktualizowanie danych interfejsu API przebiega tak samo, jak publikowanie i pobieranie ich w obu językach.

Aby to zrobić za pomocą funkcji pobierania JavaScript , wystarczy zastąpić Post przez Put :

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products/19', { method: "Put", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload into JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Jeśli zwrócisz uwagę na punkt końcowy interfejsu API, zobaczysz, że tym razem zawiera on identyfikator produktu. W ten sposób API wie, jakie dane chcesz zaktualizować w tym przypadku.

Niemniej jednak niektóre interfejsy API mogą używać innych metod do tworzenia swoich punktów końcowych. Więc to nie jest standard.

Aby przetestować aktualizację danych przy użyciu API Pythona, należy użyć requests.put zamiast:

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.put('https://fakestoreapi.com/products/19', data = payload ) print(Posted.status_code) print(Posted.json())

Powyższe przykłady, jeśli się powiedzie, wstaw nowe dane do pozycji 19, jak wskazuje punkt końcowy interfejsu API.

Testowanie żądania usunięcia

Usuwanie danych z interfejsu API jest tak proste, jak wysłanie żądania Get. Dzieje się tak, ponieważ w przeciwieństwie do Post and Put nie musisz określać żadnego ładunku. Wszystko, czego potrzebujesz, to punkt końcowy usuwania.

Nasz wybrany interfejs API używa identyfikatora produktu do śledzenia jego danych. Tak więc usunięcie produktu jest łatwe:

fetch('https://fakestoreapi.com/products/19', { method: "Delete", headers:{ 'Content-Type': 'application/json' } } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Potrzebujesz tylko kilku linijek kodu, aby osiągnąć to samo za pomocą Pythona:

import requests Posted = requests.delete('https://fakestoreapi.com/products/19', ) print(Posted.status_code) print(Posted.json())

Oba powyższe przykłady rejestrują kod statusu odpowiedzi i dane należące do identyfikatora, którego dotyczy zapytanie (w tym przypadku 19).

Czy te metody testowania są ogólne?

Chociaż w tym poście skupiliśmy się tylko na jednym interfejsie API, metody używane do testowania punktów końcowych CRUD nie różnią się w przypadku innych interfejsów API. Jedyną różnicą mogą oczywiście być zasady otaczające każdą strukturę API i wytyczne dotyczące żądania danych. Po odszyfrowaniu ich dla wybranego interfejsu API, możesz użyć odpowiedniej metody, jak opisano tutaj, aby przetestować odpowiadające mu punkty końcowe.

Tak więc, ponieważ każdy interfejs API ma reguły łączenia się z nim, więc podczas testowania niektóre mogą dostarczyć dodatkowe parametry, które należy uwzględnić w nagłówkach żądań. Takie parametry zwykle zawierają token dostępu lub inne, jak podano w dokumentacji.


Jak obliczyć wartość nCr

Jak obliczyć wartość nCr

Kombinacja to pojęcie matematyczne. Odnosi się do ułożenia kilku przedmiotów, gdzie ich kolejność nie ma znaczenia. Podstawowa formuła opisuje liczbę prawidłowych kombinacji.

Jak napisać i skompilować swój pierwszy kod Solidity?

Jak napisać i skompilować swój pierwszy kod Solidity?

Solidity to język programowania używany przez inteligentne kontrakty na blockchainie Ethereum. Jest to statyczny, zorientowany obiektowo język programowania.

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Wielu programistów uwielbia rozwiązywać trudne problemy matematyczne za pomocą kodu. Pomaga wyostrzyć umysł i poprawić umiejętności rozwiązywania problemów. W tym artykule dowiesz się, jak znaleźć najmniejsze i największe n-cyfrowe idealne kwadraty i sześciany za pomocą Pythona, C++ i JavaScript. Każdy przykład zawiera również przykładowe dane wyjściowe dla kilku różnych wartości.

Jak używać Pythona jako kalkulatora wiersza poleceń

Jak używać Pythona jako kalkulatora wiersza poleceń

Chociaż możesz używać kalkulatora graficznego na swoim komputerze, interpreter języka programowania Python może pełnić funkcję kalkulatora biurkowego. Jest to tak popularny żart na temat biegania w społeczności Pythona, że ​​wspomniano o nim w oficjalnym samouczku. Oto, jak używać Pythona jako kalkulatora.

Jak osadzić tweety w swoich postach WordPress

Jak osadzić tweety w swoich postach WordPress

Umieszczanie usług stron trzecich w swoich postach WordPress to ekscytujący sposób na przyciągnięcie zainteresowania odwiedzających. Osadzone treści zawierają również wskazówki wizualne, które ułatwiają skanowanie. WordPress ułatwił dodawanie tego typu treści.

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Jeśli jesteś początkującym naukowcem zajmującym się danymi, który pracuje z Pythonem lub R, musisz wiedzieć, jak korzystać z Jupyter Notebook. Jest to środowisko IDE typu open source i serwerowe do manipulowania danymi, udostępniania kodu na żywo, a także zarządzania przepływem pracy w nauce o danych.

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Tech to bez wątpienia branża przyszłości. Jeśli jesteś jednym z milionów młodych dorosłych, którzy mają rozpocząć pierwszy etap swojej kariery, być może zastanawiasz się, co zrobić, jeśli nie lubisz kodować.

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

Nauka nowego języka programowania, takiego jak Python, staje się bezproblemowa, jeśli masz kompleksową mapę drogową, szczegółowo opisującą koncepcje, których należy się nauczyć jako początkujący i jak robić dalsze postępy, aby osiągnąć kolejny kamień milowy. Nawet średniozaawansowani programiści powinni często odświeżyć swoje podstawy, aby zbudować dla siebie solidną podstawę.

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

ASP.NET to bezpłatna wieloplatformowa platforma firmy Microsoft do tworzenia aplikacji i usług internetowych. Platforma ASP.NET jest rozszerzeniem .NET, platformy programistycznej narzędzi, języków programowania i bibliotek używanych do tworzenia różnych aplikacji.

9 najlepszych alternatyw dla platformy Docker do zarządzania kontenerami

9 najlepszych alternatyw dla platformy Docker do zarządzania kontenerami

Kontenery są bardzo przydatne przy opracowywaniu, wdrażaniu i zarządzaniu oprogramowaniem w środowisku wirtualnym. Docker jest przydatny w procesie konteneryzacji, ale nie jest jedyną platformą. Jeśli szukasz alternatyw dla Dockera, nie szukaj dalej. Ta lista przedstawia niektóre bogate w funkcje i wydajne alternatywy platformy Docker, które można wykorzystać w następnym projekcie.

Czy ARCore lub ARKit są lepsze do tworzenia doświadczeń w rozszerzonej rzeczywistości?

Czy ARCore lub ARKit są lepsze do tworzenia doświadczeń w rozszerzonej rzeczywistości?

Niektóre z najczęściej omawianych aplikacji mobilnych i doświadczeń w dzisiejszych czasach wykorzystują technologię rozszerzonej rzeczywistości. Podczas gdy niektóre z tych doświadczeń mogą działać na praktycznie każdym urządzeniu mobilnym, inne działają tylko na nowszych i droższych modelach. Tworzenie i używanie tych bardziej zaawansowanych środowisk wymaga ARCore i ARKit.

Jak stworzyć nową gałąź w Git

Jak stworzyć nową gałąź w Git

Gałęzie są kluczowe dla koncepcji kontroli wersji w programowaniu, aw szczególności w Git. W tym artykule startowym dowiesz się, czym jest gałąź i jak ją utworzyć przy użyciu wielu różnych narzędzi.

Jak używać instrukcji if w Pythonie?

Jak używać instrukcji if w Pythonie?

Instrukcja if jest siłą napędową programowania logicznego. W rezultacie lepsze zrozumienie Pythona jest znaczącym dodatkiem do twoich umiejętności programowania w Pythonie.

5 najlepszych odznak, które wzmocnią Twoje repozytorium GitHub

5 najlepszych odznak, które wzmocnią Twoje repozytorium GitHub

Odznaki GitHub mogą zwiększyć czytelność repozytorium, zapewniając użytkownikom szybki sposób przechwytywania metryk repozytorium. Plakietki mogą być osadzone w pliku README.md, aby wyjaśnić innym programistom znaczenie i konieczność Twojego projektu. W rezultacie czytelnicy bardzo szybko dowiadują się o repozytorium, sprawdzając dołączone identyfikatory.

Pierwsze kroki z Redis i PHP do szybkiego przechowywania danych

Pierwsze kroki z Redis i PHP do szybkiego przechowywania danych

Popularny silnik pamięci masowej Redis jest doskonałym i niezbędnym narzędziem w każdym arsenale programistów. Silnik pamięci masowej w pamięci umożliwia niezwykle szybkie przechowywanie i pobieranie danych, do imponujących 32 milionów zapytań na sekundę, co czyni go doskonałym uzupełnieniem każdego głównego silnika bazy danych.

Co to jest WYSIWYG?

Co to jest WYSIWYG?

Część magii tworzenia oprogramowania pojawia się, gdy wiersze kodu łączą się w coś więcej niż sumę ich części. Przekonasz się, że gdy próbujesz budować w ten sposób abstrakcyjnie, potrzebujesz trochę kreatywnej wizualizacji. Może to dotyczyć przetwarzania tekstu lub projektowania stron internetowych, podobnie jak w przypadku programowania.

Jak zainstalować .NET Framework w wersji 3.5 w systemie Windows 10?

Jak zainstalować .NET Framework w wersji 3.5 w systemie Windows 10?

Jako użytkownik systemu Windows prawdopodobnie przynajmniej raz natknąłeś się na słowa .NET Framework. Jest to platforma oprogramowania opracowana przez firmę Microsoft, która umożliwia tworzenie i uruchamianie programów w językach C#, C++, F# i Visual Basic. Najnowsza wersja platformy .NET to 4,8, ale Twój komputer może wymagać starszej wersji platformy .NET (np. .NET 3.5) do uruchamiania niektórych aplikacji.

WordPress kontra Wix: kluczowe różnice

WordPress kontra Wix: kluczowe różnice

Budując stronę internetową dla siebie lub swojej firmy często stajesz przed klasycznym dylematem. WordPress vs. Wix — który wybrać i jaki byłby dla Ciebie najlepszy?

10 najlepszych dystrybucji Linuksa dla programistów

10 najlepszych dystrybucji Linuksa dla programistów

Chociaż Linux może nie być ulubionym systemem operacyjnym dla zwykłych użytkowników, jest to wybór dla większości programistów i programistów. Linux jest bardziej praktycznym systemem operacyjnym, który został specjalnie zaprojektowany z myślą o programowaniu i programistach.

Jak obliczyć wartość nCr

Jak obliczyć wartość nCr

Kombinacja to pojęcie matematyczne. Odnosi się do ułożenia kilku przedmiotów, gdzie ich kolejność nie ma znaczenia. Podstawowa formuła opisuje liczbę prawidłowych kombinacji.

Jak napisać i skompilować swój pierwszy kod Solidity?

Jak napisać i skompilować swój pierwszy kod Solidity?

Solidity to język programowania używany przez inteligentne kontrakty na blockchainie Ethereum. Jest to statyczny, zorientowany obiektowo język programowania.

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

SQL kontra NoSQL: jaka jest najlepsza baza danych dla twojego następnego projektu?

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Jak znaleźć N-cyfrowe idealne sześciany i kwadraty za pomocą Pythona, C++ i JavaScript

Wielu programistów uwielbia rozwiązywać trudne problemy matematyczne za pomocą kodu. Pomaga wyostrzyć umysł i poprawić umiejętności rozwiązywania problemów. W tym artykule dowiesz się, jak znaleźć najmniejsze i największe n-cyfrowe idealne kwadraty i sześciany za pomocą Pythona, C++ i JavaScript. Każdy przykład zawiera również przykładowe dane wyjściowe dla kilku różnych wartości.

Jak używać Pythona jako kalkulatora wiersza poleceń

Jak używać Pythona jako kalkulatora wiersza poleceń

Chociaż możesz używać kalkulatora graficznego na swoim komputerze, interpreter języka programowania Python może pełnić funkcję kalkulatora biurkowego. Jest to tak popularny żart na temat biegania w społeczności Pythona, że ​​wspomniano o nim w oficjalnym samouczku. Oto, jak używać Pythona jako kalkulatora.

Jak osadzić tweety w swoich postach WordPress

Jak osadzić tweety w swoich postach WordPress

Umieszczanie usług stron trzecich w swoich postach WordPress to ekscytujący sposób na przyciągnięcie zainteresowania odwiedzających. Osadzone treści zawierają również wskazówki wizualne, które ułatwiają skanowanie. WordPress ułatwił dodawanie tego typu treści.

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Rozpocznij pracę z notatnikiem Jupyter: samouczek

Jeśli jesteś początkującym naukowcem zajmującym się danymi, który pracuje z Pythonem lub R, musisz wiedzieć, jak korzystać z Jupyter Notebook. Jest to środowisko IDE typu open source i serwerowe do manipulowania danymi, udostępniania kodu na żywo, a także zarządzania przepływem pracy w nauce o danych.

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Kodowanie nie jest dla wszystkich: 9 stanowisk technicznych, które można uzyskać bez niego

Tech to bez wątpienia branża przyszłości. Jeśli jesteś jednym z milionów młodych dorosłych, którzy mają rozpocząć pierwszy etap swojej kariery, być może zastanawiasz się, co zrobić, jeśli nie lubisz kodować.

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

7 ważnych poleceń, które pomogą rozpocząć pracę z Pythonem dla początkujących

Nauka nowego języka programowania, takiego jak Python, staje się bezproblemowa, jeśli masz kompleksową mapę drogową, szczegółowo opisującą koncepcje, których należy się nauczyć jako początkujący i jak robić dalsze postępy, aby osiągnąć kolejny kamień milowy. Nawet średniozaawansowani programiści powinni często odświeżyć swoje podstawy, aby zbudować dla siebie solidną podstawę.

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

Twoja pierwsza aplikacja internetowa ASP.NET: jak zacząć

ASP.NET to bezpłatna wieloplatformowa platforma firmy Microsoft do tworzenia aplikacji i usług internetowych. Platforma ASP.NET jest rozszerzeniem .NET, platformy programistycznej narzędzi, języków programowania i bibliotek używanych do tworzenia różnych aplikacji.