Testování API - API testing
Vývoj softwaru |
---|
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 |