8 užitečných testovacích nástrojů gRPC, které lze použít během vývoje

gRPC představuje framework pro vzdálené volání procedur (RPC), jehož autorem je společnost Google.

Zde je k dispozici zajímavost o původu jeho názvu. Vzdálené volání procedury umožňuje vykonávat funkci nebo metodu na jiném počítači, jako by se jednalo o lokální operaci. Tato abstrakce ulehčuje složitosti spojené s HTTP voláními a dalšími aspekty síťové komunikace.

gRPC značně zjednodušuje a urychluje komunikaci a přenos dat mezi jednotlivými mikroslužbami. I když v pozadí využívá protokol HTTP/2, vývojářům poskytuje jednodušší způsob, jak vše propojit.

Mikroslužby mohou být implementovány v různých programovacích jazycích, což vyžaduje, aby aplikace byly schopné mezi sebou komunikovat.

gRPC tuto situaci usnadňuje díky podpoře více jazyků. Pro definici struktury zpráv využívá takzvané Protocol Buffers, což je jazykově nezávislý formát pro serializaci dat.

Testování aplikací gRPC

Testování je klíčové pro jakýkoliv komplexní software, včetně aplikací postavených na gRPC. Testováním aplikací gRPC se ověřuje, že mikroslužby a další komponenty spolu dokáží efektivně a spolehlivě komunikovat.

Zajišťuje se tím, že všechny služby, ať už jsou napsány v různých jazycích, mohou bez problémů spolupracovat. Je to díky tomu, že gRPC využívá Protocol Buffers, které jsou jazykově neutrální.

Při testování aplikací se také odhalí způsoby, jakým se řeší chyby a výjimky. Dále je možné provádět zátěžové testy, aby se zjistilo, jak se služby chovají při různém zatížení sítě.

Nyní, když už máte základní přehled o gRPC, pojďme se podívat na některé nástroje pro testování gRPC.

Kreya

Kreya je API klient s grafickým uživatelským rozhraním, který slouží pro testování gRPC i REST API. Jeho gRPC klient umožňuje streamování požadavků, unární volání, ověřování a další funkce. Navíc, pro testování API můžete přímo v Kreya generovat falešná data.

Konfigurace požadavků se ukládají v souborovém systému, což umožňuje používání systémů pro správu verzí jako Git pro synchronizaci projektů. Kreya rovněž umožňuje definovat testy pomocí skriptů, které se provádějí při každém volání API.

Kreya nabízí bezplatnou verzi pro jednotlivé uživatele, která zahrnuje plně funkčního gRPC klienta, opakovaně použitelnou konfiguraci ověřování, prostředí, šablony a další funkce.

GHz

GHz, open-source nástroj napsaný v jazyce Go, který se používá pro zátěžové testování a benchmark gRPC API z příkazové řádky. Podporuje proto soubory, předkompilované balíčky protoset nebo reflexi serveru. Umožňuje také vkládání vlastních dat do požadavků pomocí Go šablon.

Kromě nástroje pro příkazový řádek nabízí GHz webové rozhraní, kde můžete sledovat a ukládat výsledky testů. Výsledky lze exportovat do různých formátů souborů, jako jsou CSV, JSON a HTML. Webové rozhraní je v době psaní tohoto článku stále ve fázi beta verze.

Postman

Postman je platforma pro vývoj API, která podporuje vytváření a testování mnoha typů API, včetně gRPC. V Postmanu můžete psát testy pro jednotlivé požadavky, kolekce nebo složky v kolekci.

Při vytváření gRPC požadavku v Postmanu, přejděte na záložku Skripty a vyberte, kdy se má test provést – před odesláním požadavku nebo po obdržení odpovědi. Pro rychlejší psaní testů můžete využít i fragmenty kódu.

Insomnia

Insomnia je nástroj pro návrh, testování a ladění API. Podporuje REST, GraphQL, WebSockets a gRPC. Při vytváření nového požadavku v Insomnii můžete vybrat typ gRPC a zadat URL endpointu API.

Pro definici zpráv musíte také přidat .proto soubor. Insomnia podporuje téměř všechny typy požadavků, od unárních po obousměrné streamování, včetně streamování klienta a serveru.

Pro testování API v Insomnii je třeba nahrát definici API a následně na záložce Test můžete vytvořit testovací sadu. Insomnia pro unit testy používá Mocha framework a Chai pro tvrzení.

Stackhawk

Stackhawk je nástroj pro testování bezpečnosti API, který nabízí řešení i pro gRPC služby. Umožňuje vám zajistit bezpečnost vašich API endpointů. Pro skenování gRPC aplikace pomocí Stackhawk je potřeba definovat stackhawk.yml soubor s požadovanými konfiguracemi.

Stackhawk nabízí bezplatnou verzi, která poskytuje moderní automatizované testování integrované do DAST v CI/CD pipeline pro jednu aplikaci. Všechny placené varianty zahrnují funkce jako ověřování, automatizaci, statistiky, upozornění a podporu pro všechny typy API.

gRPCurl

gRPCurl je open-source nástroj příkazové řádky pro komunikaci se servery gRPC. Jak název naznačuje, je to vlastně „curl pro gRPC servery“. Běžný cURL nelze použít pro komunikaci se serverem gRPC, protože nepodporuje Protocol Buffers, což jsou binární zprávy. cURL pracuje pouze s JSON formátem.

Schéma gRPC služeb lze ověřit dotazem na server, který podporuje server reflection, načtením zdrojových proto souborů nebo načtením kompilovaných „protoset“ souborů (obsahujících zakódované deskriptory souborů).

gRPCurl není plnohodnotný testovací nástroj, ale umožňuje provádět základní dotazy a testování z příkazové řádky.

Smartbear’s ReadyAPI

ReadyAPI od Smartbear podporuje testování gRPC API, avšak pouze unární operace. Pro otestování gRPC služby, je třeba nejdřív nastavit API připojení v testovacím kroku. Poté je možné odesílat požadavky a přijímat odpovědi z vaší gRPC služby.

ReadyAPI momentálně podporuje pouze unární operace, což znamená, že očekává jedinou odpověď od serveru.

NosyMouse

Nosymouse je nástroj, který zahrnuje gRPC tester pro spouštění funkčních, výkonnostních a bezpečnostních testů, manuálně nebo automaticky. Poskytuje funkce, jako je simulace souběžných uživatelů, náběhové doby, kritéria pro úspěšné testy, testovací data, podporu testovacích scénářů a vážené případy použití.

Nosymouse dodržuje přístup testování řízeného daty a poskytuje podporu pro samostatná testovací data, proměnné, automatizovaná ověření a reálné testovací případy. Umožňuje spouštět testy s různými vstupy a ověřovat výstupy přímo v rozhraní.

Nabízí 14-denní zkušební verzi pro testování se dvěma souběžnými uživateli.

Závěrečná slova

Vzhledem k rostoucímu počtu gRPC služeb a nástrojů, může být náročné vybrat správný nástroj pro testování gRPC. Správný výběr je zásadní, protože přímo ovlivňuje funkčnost vašeho API. Jedním z důležitých aspektů je podpora různých gRPC funkcí, jako je server reflection nebo streamování. Při výběru testovacího nástroje proto dbejte na to, aby podporoval tyto specifické funkce.

Podívejte se také na nejlepší platformy pro zátěžové testování API pro zlepšení výkonu.