Testování API - API testing

Testování API je typ testování softwaru, který zahrnuje testování rozhraní API ( Application Programming Interface ) přímo a jako součást testů integrace s cílem určit, zda splňují očekávání ohledně funkčnosti, spolehlivosti, výkonu a zabezpečení. Protože API postrádá GUI , testování API se provádí ve vrstvě zpráv . Testování API je nyní považováno za klíčové pro automatizaci testování, protože API nyní slouží jako primární rozhraní pro aplikační logiku a protože testy GUI se obtížně udržují s cykly krátkého vydání a častými změnami běžně používanými s vývojem softwaru Agile a DevOps .

Přehled testování API

Testování API zahrnuje testování API přímo (izolovaně) a jako součást transakcí typu end-to-end prováděných během testování integrace. Kromě API RESTful tyto transakce zahrnují více typů koncových bodů, jako jsou webové služby , ESB , databáze , mainframy , webové uživatelské rozhraní a ERP . Testování API se provádí na API, která vývojový tým produkuje, a API, která tým spotřebovává v rámci své aplikace (včetně API třetích stran).

Testování API se používá k určení, zda API vrací správnou odpověď (v očekávaném formátu) pro širokou škálu proveditelných požadavků, správně reaguje na okrajové případy, jako jsou selhání a neočekávané/extrémní vstupy, doručuje odpovědi v přijatelném čase a bezpečně reagovat na potenciální bezpečnostní útoky . Virtualizace služby se používá ve spojení s testováním API k izolaci testovaných služeb a také k rozšíření přístupu k testovacímu prostředí simulací API/služeb, které nejsou přístupné pro testování.

Testování API běžně zahrnuje testování REST API nebo webových služeb SOAP s odesíláním užitečných dat zpráv JSON nebo XML přes HTTP , HTTPS , JMS a MQ . Může také zahrnovat formáty zpráv, jako jsou SWIFT , FIX , EDI a podobné formáty pevné délky, CSV , ISO 8583 a Protocol Buffers odesílané přes přenosy /protokoly jako TCP/IP , ISO 8583 , MQTT , FIX , RMI , SMTP , TIBCO Rendezvous a FIX .

Testování API, testování GUI a automatizace testů

API Testing je uznáván jako vhodnější pro automatizaci testů a kontinuální testování (zejména automatizaci používanou při vývoji agilního softwaru a DevOps ) než testování GUI. Mezi uvedené důvody patří:

  • Složitost systému: Testy grafického uživatelského rozhraní nemohou dostatečně ověřit funkční cesty a back-end API/služby spojené s vícevrstvými architekturami. API jsou považována za nejstabilnější rozhraní testovaného systému.
  • Krátké cykly vydání s rychlými smyčkami zpětné vazby: Týmy Agile a DevOps pracující s krátkými iteracemi a rychlými smyčkami zpětné vazby zjišťují, že testy GUI vyžadují značné přepracování, aby udržely krok s častými změnami. Testy ve vrstvě API jsou méně křehké a snáze se udržují.

Z těchto důvodů se doporučuje, aby týmy zvýšily úroveň testování API a snížily svou závislost na testování GUI. Testování API se doporučuje pro drtivou většinu úsilí o automatizaci testů a co nejvíce testování okrajů. Testování grafického uživatelského rozhraní je pak vyhrazeno pro ověřování typických případů použití na systémové úrovni, mobilní testování a testování použitelnosti.

Typy testování API

Testování API obvykle zahrnuje následující postupy:

  • Unit testing - Testování funkčnosti jednotlivých operací.
  • Funkční testování -Testování funkčnosti širších scénářů, často pomocí jednotkových testů jako stavebních kamenů pro end-to-end testy. Zahrnuje definici testovacího případu, provedení, ověření a regresní testování .
  • Zátěžové testování - Ověření funkčnosti a výkonu při zátěži, často opětovným použitím funkčních testovacích případů.
  • Detekce chyb za běhu - Sledování provádění automatizovaných nebo manuálních testů aplikace za účelem odhalení problémů, jako jsou konkurenční podmínky, výjimky a úniky prostředků.
  • Testování zabezpečení - zahrnuje penetrační testování a fuzz testování , stejně jako ověřování autentizace, šifrování a řízení přístupu.
  • Testování webového uživatelského rozhraní -Provádí se jako součást integračních testů typu end-to-end, které pokrývají také rozhraní API, umožňuje týmům ověřit položky GUI v kontextu větší transakce.
  • Testování interoperability - (pouze SOAP) Kontrola shody s profily interoperability webových služeb .
  • Testování shody WS- * -(pouze SOAP) Kontrola dodržování standardů WS-*, jako je WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security a WS-Trust.
  • Penetrační testování - testování počítačového systému, sítě nebo webové aplikace za účelem zjištění zranitelností, které by mohl útočník zneužít.
  • Fuzz testování - obrovské množství čistě náhodných dat, někdy označovaných jako „šum“ nebo „fuzz“, je násilně zadáváno do systému za účelem pokusu o vynucený pád, přetečení nebo jiné negativní chování. To se provádí za účelem testování API na jeho absolutních mezích a slouží jako „nejhorší scénář“.

Software

název Prodejce
SoapUI Software SmartBear
SOAtest Parasoft
Naparování Software SmartBear
Katalon Studio Katalon

Viz také

Reference