Tutoriál k testování REST API: Ukázkové manuální testovací případy

⚡ Chytré shrnutí

Testování REST API ověřuje RESTful webové služby odesíláním HTTP požadavků, jako jsou GET, POST, PUT a DELETE, a následným ověřováním stavového kódu, záhlaví odpovědi a dat vrácených serverem.

  • 🔑 Základní myšlenka: Provádějte servisní vrstvu přímo, bez nutnosti uživatelského rozhraní mezi nimi.
  • 🔁 Pokrytí metody: Provádějte příkazy GET, POST, PUT a DELETE u každého vystaveného zdroje.
  • 🛠️ Nastavení klienta: Před odesláním úplně prvního požadavku nainstalujte Advanced Rest Client.
  • ???? Žádost o sestavení: Zadejte koncový bod URL, metoda, hlavičky, parametry a datová část JSON.
  • (Tj. Kontroly odpovědí: Ověřte, že kód odpovědi, zpráva odpovědi a tělo odpovědi odpovídají očekáváním.
  • 🔐 Hloubka zabezpečení: Znovu přehrát volání s chybějícími, vypršenými a nízkoprivilegovanými tokeny pro vynucení odpovědí 401 a 403.
  • 🤖 Podpora AI: Strojové učení vytváří okrajové datové zátěže, které manuální testeři běžně přehlížejí.

Co je testování REST API?

Testování REST API je open-source technika automatizovaného testování webu, která se používá k testování RESTful API pro webové aplikace. Účelem testování REST API je zaznamenat odezvu REST API odesláním různých HTTP/S požadavků, aby se ověřilo, zda REST API funguje správně. Testování REST API se provádí metodami GET, POST, PUT a DELETE.

REST znamená Representational State Transfer. Je to architektonický styl a přístup ke komunikaci používaný při vývoji Webové službyREST se stal logickou volbou pro tvorbu API, protože umožňuje uživatelům efektivně se připojovat a interagovat s cloudovými službami.

API neboli aplikační programovací rozhraní (API) je sada programovacích instrukcí pro přístup k webové softwarové aplikaci. Jinými slovy, jedná se o sadu příkazů, které jeden program používá k přímé komunikaci s jiným programem a k využití funkcí ostatních programů k získávání informací.

Například, Google Webové stránky mohou mít API pro vyhledávání, překlady a kalendáře. Obecně API vypadají jako v níže uvedeném příkladu s názvem serveru, cestami a parametry.

http://<server name>/v1/export/Publisher/Standard_Publisher_Report?format=csv

Ale proč vůbec investovat úsilí do testování této vrstvy?

Proč je testování REST API důležité

REST API se nachází mezi uživatelským rozhraním a databází, což z něj dělá vrstvu, kde se nachází většina obchodní logiky. Chyba v pravidle pro stanovení cen nebo kontrola oprávnění se v odpovědi API projeví dlouho předtím, než si někdo na obrazovce všimne špatného čísla, takže testování zde odhalí problémy dříve a blíže k jejich příčině.

Druhým důvodem je rychlost. Požadavek se dokončí během milisekund a nevyžaduje žádný prohlížeč, renderovací engine ani lokátory křehkých elementů. Tester může v době, kterou jeden test rozhraní potřebuje k načtení stránky, otestovat desítky koncových bodů a stejný požadavek se chová stejně, ať už je frontendem webová stránka, mobilní aplikace nebo partnerská integrace.

Stabilita je třetím důvodem. Rozvržení se neustále mění, ale publikovaný REST koncept...tracOčekává se, že t zůstane stabilní. Testy napsané proti tomutotracnepřežijí redesign, takže chrání ty části produktu, na kterých ostatní týmy skutečně staví.

Typy metod API

Existují především 4 druhy Testování API metody: GET, POST, DELETE a PUT.

  • GET– Metoda GET se používá k extracinformace z daného serveru pomocí daného URI. Při použití požadavku GET by se mělo pouzetract data a nemělo by to mít na data žádný jiný vliv.
  • POST– Požadavek POST se používá k vytvoření nové entity. Lze jej také použít k odesílání dat na server, například informací o zákaznících, nahrávání souborů atd. pomocí formulářů HTML.
  • PUT– Vytvořte novou entitu nebo aktualizujte existující.
  • DELETE– Odebere všechny aktuální reprezentace cílového zdroje dané identifikátorem URI.

Jak testovat REST API

Testování REST API vyžaduje, aby aplikace interagovala s ukázkovým API pro účely testování. Pro testování API potřebujete dvě věci:

  • Testovací nástroj/rámec pro řízení API
  • Zapsání vlastního kódu pro testování ukázkového REST API

Testovací případy REST API lze testovat pomocí nástrojů jako:

  • Pokročilý klient pro odpočinek
  • Postman-Klient odpočinku
  • Curl v Linuxu

Zde budeme používat Advanced Rest Client. Níže jsou uvedeny kroky k jeho získání.

Jak získat pokročilého klienta pro odpočinek?

  • Přejít Google ChromeInternetový obchod 's
  • Vyhledejte „Advanced Rest Client“ nebo přímo přejděte zde a Nainstalujte rozšíření
  • Vyberte ikonu „Advanced Rest Client“ v části aplikace Chrome – chrome://apps/

Seznam v internetovém obchodě se zobrazí, jak je znázorněno níže.

Jak nainstalovat Advance Rest Client

Po dokončení instalace proveďte níže uvedený test pro otestování RESTful API.

Kroky pro testování REST API

Zde používáme rozšíření klienta REST v prohlížeči Chrome. Pro lepší pochopení používáme k testování fiktivní API:

http://ip.jsontest.com/

Krok 1) Otevřete pokročilého klienta REST

Po úspěšné instalaci spusťte aplikaci Advanced REST client (ARC).

Otevřete rozšířeného klienta REST

Krok 2) Zadejte URL API k testování

Zadejte ukázkové REST API URL pro testování v URL textové pole.

URL API k testování

Krok 3) Vyberte metodu HTTP

Vyberte metodu pro typ HTTP metod při testování API, které chcete zasáhnout – např. POST

Metoda HTTP

Krok 4) Poskytněte sadu záhlaví

Poskytněte sadu záhlaví v textovém poli Záhlaví. Klikněte na Vložit sadu záhlaví.

Sada záhlaví

Krok 5) Potvrďte nastavení záhlaví

Další Klikněte na POUŽÍT TUTO SADA.

Sada záhlaví

Krok 6) Poskytněte požadovaný obsah těla

  1. Nyní přejděte na kartu Body.
  2. Nastavte požadovaný typ obsahu těla a zobrazení editoru, např. Typ obsahu těla: aplikace/json
  3. Zobrazení editoru: Nezpracovaný vstup.
  4. V části Payload předejte tělo požadavku demo API pro testování ve formě párů klíč-hodnota, například {“key1″:”value1″,”key2″:”value2”}. Pokud se jedná o POST API, pak musíme předat tělo nebo parametry. Předáme je pod daným payloadem.
{"property" : ["Sites"], "report_type" : ["ALL"]}

Kroky pro testování REST API

Warning️ Varování: Typ obsahu aplikace/json s neplatným datovým obsahem JSON vrací 400 Chybný požadavek.

Krok 7) Odešlete podrobnosti ke spuštění testu

  1. Stiskněte tlačítko Odeslat.
  2. Kliknutím na tlačítko PODROBNOSTI zobrazíte záhlaví odpovědí.

Kroky pro testování REST API

Zde jsou podrobnosti o odpovědi:

Kroky pro testování REST API

Reakci je stále třeba posoudit vzhledem k očekávanému výsledku.

Ověřování výsledků

Pro testování webového API musíme zkontrolovat hlavně kód odpovědi, zprávu odpovědi a tělo odpovědi.

Kódy odpovědí spadají do pěti rodin:

Rodina Kategorie Význam
1xx Informační Přijato, stále se zpracovává
2xx úspěch Dokončeno; 200 OK, 201 Vytvořeno
3xx Přesměrování Je vyžadován další krok
4xx Chyba klienta Špatný datový obsah, token nebo zdroj
5xx Server Error Platný požadavek, server selhal

Níže jsou uvedeny kódy odpovědí, se kterými se můžete setkat.

Ověřování výsledků

Jeden požadavek dokazuje, že koncový bod funguje. Sada dokazuje, že funguje i nadále.

Testovací případy REST API, které musíte projít

Užitečná sada REST API se rozkládá napříč několika kategoriemi namísto opakování stejného volání happy-path s různými daty:

  • Šťastnou cestu: Odešlete platný požadavek každému koncovému bodu a potvrďte stavový kód, schéma a hodnotu každého pole.
  • Negativní případy: Odešlete chybně formátovaný JSON, nepodporovanou metodu a chybějící ID zdroje, poté očekávejte kódy 400, 405 a 404 místo kódu 500.
  • Hraniční hodnoty: Pokud pole přijímá 1 až 200 znaků, otestujte 0, 1, 200 a 201. Ověřovací pravidla se na okrajích přerušují.
  • Speciální znaky: Pro odhalení chyb kódování vkládejte do každého pole písmena s diakritikou, emotikony, uvozovky a vícebajtový text.
  • stract kontroly: Porovnejte odpověď s publikovanou specifikací OpenAPI nebo Swagger, aby byly nezdokumentované změny zachyceny včas.
  • Sekvenování: Volejte koncové body v realistickém pořadí, například POST, poté GET, poté DELETE, protože stav se přenáší mezi voláními.
  • Zdravý výkon: Zaznamenávejte doby odezvy při každém spuštění a označte jakýkoli koncový bod, který překročí prahovou hodnotu dohodnutou s týmem.

Testovací nástroj REST API

Různé nástroje se hodí pro různé fáze testování.

Nástroj Typ Nejlepší pro
Pokročilý klient pro odpočinek Desktopový klient Rychlé manuální volání
Postman Desktopový klient Kolekce a týmové pracovní prostory
JMeter Zátěžové testování Doby odezvy při zátěži
SoapUI Funkční testování REST a SOAP dohromady
BUĎTE V SIGNÁLU Java knihovna Automatizace stabilních případů
cURL Příkazový řádek Vkládání volání do hlášení chyb

Podívejte se na souhrn Nástroje pro testování API.

Většina skutečných koncových bodů odmítá odpovědět, dokud se neprokáže, kdo ji odeslal.

Ověřování a bezpečnostní kontroly REST API

Veřejné demo koncové body odpovídají komukoli, ale produkční REST API se nachází za ověřovacím schématem a chyba v autorizaci je mnohem škodlivější než nesprávná hodnota pole. Nejprve identifikujte mechanismus: statický klíč API, přihlašovací údaje HTTP Basic, nosičový token OAuth 2.0 nebo podepsaný webový token JSON.

Jakmile je ověřený požadavek úspěšný, záměrně projděte cesty selhání:

  1. Žádné pověření: Odstraňte hlavičku Authorization. Očekávejte chybu 401 Unauthorized a v těle se neobjeví žádná data záznamu.
  2. Špatně zadané přihlašovací údaje: poškodit jeden znak tokenu. Očekávejte znovu chybu 401 se zprávou, která nevysvětluje proč.
  3. Platnost přihlašovacích údajů vypršela: znovu použít token po vypršení jeho platnosti. Potvrďte, že byl odmítnut, nikoli akceptován, což je běžná chyba způsobená zkreslením hodin.
  4. Nesprávná úroveň oprávnění: Ověřte se jako uživatel s nízkými oprávněními a zavolejte koncový bod pouze pro správce. Očekávejte chybu 403 „Zakázáno“, nikoli 200.
  5. Záznam jiného uživatele: změnit ID tak, aby uživatel A požadoval data uživatele B. Úspěch v tomto případě je vážnou vadou v řízení přístupu.

Nakonec ověřte, že každý hovor probíhá přes HTTPS, že neúspěšné odpovědi neunikají žádným datovým zásobníkům. tracbannery verzí nebo verzí a že rychlé opakování spouští chybu 429 „Příliš mnoho požadavků“.

Testování REST API také s sebou nese potíže, které testování rozhraní nenese.

Výzvy pro testování API

Zajímavé problémy pro testery při testování REST API jsou:

  1. Aby se zajistilo, že testovací vybavení mění parametry volání API takovým způsobem, aby se ověřila funkčnost a zároveň odhalily chyby. Zahrnuje to prozkoumání okrajových podmínek a přiřazení společných parametrů.
  2. Vytváření zajímavých kombinací hodnot parametrů pro volání se dvěma nebo více parametry
  3. Identifikace obsahu, pod kterým je třeba provádět volání API. To může zahrnovat nastavení podmínek externího prostředí (periferní zařízení, soubory atd.) a také interně uložená data, která ovlivňují API.
  4. Sekvenční volání API podle pořadí, ve kterém bude funkce provedena
  5. Aby API produkovalo užitečné výsledky z po sobě jdoucích volání.

Nejčastější dotazy

REST testování pracuje s lehkým JSON nebo XML přes prosté HTTP příkazy. SOAP testování ověřuje striktní XML obálku oproti WSDL con.tract, takže potřebuje klienta s podporou schématu, jako například SoapUI spíše než jednoduchý REST klient.

Ne. Klienti jako Advanced Rest Client a Postman vám umožní vytvořit požadavek prostřednictvím formuláře. Kódování je nutné pouze tehdy, když automatizujete stejné případy pomocí knihovny, jako je BUĎTE V SIGNÁLU.

Většina týmů považuje časy pod 300 milisekund za dobré a časy pod jednu sekundu za přijatelné pro jedno čtení. Cokoli delší než několik sekund poškozuje volající aplikaci, proto zaznamenávejte časy při každém spuštění a při driftu vyvolávejte defekt.

Umělá inteligence čte specifikaci OpenAPI a generuje datové části požadavků, včetně hraničních a chybně formátovaných variant, které testeři běžně přehlížejí. Také seskupuje podobné chyby a zvýrazňuje koncové body, jejichž nedávné změny je činí pravděpodobnými pro selhání.

Ne. Umělá inteligence neví, co firma považuje za správné, která pravidla přístupu jsou důležitá nebo která data jsou citlivá. Škáluje generování případů, zatímco tester stále rozhoduje, co platná odpověď skutečně znamená.

Shrňte tento příspěvek takto: