8 Hasznos gRPC tesztelési eszköz a fejlesztés során

A gRPC egy távoli eljáráshívás (RPC) keretrendszer, amelyet a Google fejlesztett ki.

Van egy érdekes mellékjegyzet mögött, hogy miért nevezik így. A távoli eljáráshívás egy funkció vagy metódus távoli gépen való végrehajtásának módja, mintha az egy helyi függvény lenne. Ez egy absztrakció, amely megszünteti a HTTP-hívások és más hálózati terminológiák kezelésének fájdalmát.

A gRPC sokkal könnyebbé és gyorsabbá teszi a mikroszolgáltatások közötti kommunikációt és adatátvitelt. A burkolat alatt található HTTP/2 protokollra támaszkodik, de megkönnyíti a fejlesztők számára, hogy mindent összekapcsoljanak.

A mikroszolgáltatások több nyelven is jelen lehetnek, ezért programot kell írni ahhoz, hogy beszélni tudjanak egymással.

A gRPC megkönnyíti ezt, mert több nyelvet is támogat. Protokollpuffereket használ az interfészdefiníciós nyelvként az üzenet szerkezetének meghatározásához.

A gRPC alkalmazások tesztelése

Nem csak a gRPC-alkalmazások, a tesztelés nélkülözhetetlen minden komplex szoftver esetében, amelyet fejlesztettek. A gRPC alkalmazások tesztelése biztosítja, hogy a mikroszolgáltatások és egyéb szolgáltatások megbízhatóan és hatékonyan beszélhessenek egymással.

Ez biztosítja, hogy az összes szolgáltatás, bár különböző nyelveken íródott, nyelvi akadályok nélkül tudjon kommunikálni. Ez azért lehetséges, mert a gRPC nyelvsemleges protokollpuffereket használ.

A hibakezelés és a kivételkezelés is egyértelművé válik az alkalmazás tesztelésekor. Ezen kívül teljesítménytesztet is végezhet, hogy megtudja, hogyan viselkednek a szolgáltatások a hálózati forgalom változó terhelése mellett.

Most, hogy ismeri a gRPC-t, nézzünk meg néhány gRPC-tesztelő eszközt.

Kreya

Kreya egy API kliens grafikus felhasználói felülettel a gRPC és a REST API-khoz. A gRPC kliense támogatja a kérések streamingjét, az unáris hívásokat, az érvényesítést és még sok mást. Az API teszteléséhez magában a Kreyában is létrehozhat hamis adatokat.

Ezenkívül a kérések és konfigurációjuk egy fájlrendszerben tárolódnak, így a git vagy bármely más verzióvezérlő rendszer segítségével szinkronizálhatja projektjeit. A Kreya lehetővé teszi tesztek meghatározását szkriptek írásával, hogy minden hívásnál tesztelje az API-t.

A Kreya ingyenes szintet kínál az egyéni felhasználók számára, amely magában foglal egy teljes értékű gRPC-klienst, újrafelhasználható hitelesítési konfigurációkat, környezeteket és sablonokat, és még sok mást.

ghz

ghz, egy Go nyelven írt, nyílt forráskódú gRPC benchmarking és terheléstesztelő parancssori segédprogram az API tesztelésére és az eredmények megszerzésére. A ghz támogatja a protofájlt, az előre beépített protoset-csomagot vagy a szerver tükrözését. A Go sablonváltozóinak segítségével lehetővé teszi egyéni adatok hozzáadását a kérésekhez.

A parancssori segédprogramon kívül a ghz egy kiegészítő webalkalmazás-felülethez is hozzáférést biztosít, amellyel megtekintheti, nyomon követheti és mentheti a teszteredményeket. A teszteredményeket különféle fájlformátumokban tekintheti meg, például CSV, JSON és HTML formátumban. A cikk írásakor az általa biztosított webes felület még béta állapotban van.

Postás

Postás egy API fejlesztői platform, amely szinte minden API-típus, köztük a gRPC létrehozását és tesztelését támogatja. A Postmanban teszteket írhat egyedi kérésekhez vagy gyűjteményekhez vagy mappákhoz.

Amikor gRPC-kérést küld a Postman alkalmazásban, lépjen a Parancsfájlok lapra a kérés nézetben, majd válassza ki, hogy mikor szeretné végrehajtani a tesztet – a kérés előtt vagy a válasz megérkezése után. A tesztek gyorsabb írásához kódrészleteket is használhat.

Álmatlanság

Álmatlanság egy eszköz API-k tervezésére, tesztelésére és hibakeresésére. Támogatja a REST, GraphQL, WebSockets és gRPC kéréseket. Amikor új kérelmet hoz létre az Insomniában, kiválaszthatja a gRPC-t, majd megadhatja az API URL-végpontját.

Az üzenetek meghatározásához hozzá kell adnia egy .proto fájlt is. Az egyszemélyes kérésektől a kétirányú streamelésig az Insomnia szinte minden kéréstípust támogat, beleértve a kliens és szerver adatfolyamot is.

Az API-k Insomnia programban való teszteléséhez hozzá kell adnia egy tervdokumentumot az API-hoz, majd a Teszt lapon létrehozhat egy tesztcsomagot. Vegye figyelembe, hogy az Insomnia a Mocha keretrendszert használja az egységtesztekhez, a Chai pedig az állításokhoz.

Stackhawk

Stackhawk egy API biztonsági tesztelő eszköz, amely a gRPC szolgáltatásokhoz is megoldást nyújt. Az eszköz segítségével biztosíthatja API-végpontjai biztonságát. GRPC-alkalmazás Stackhawk használatával történő szkenneléséhez szükséges definiáljon egy stackhawk.yml-t fájl a szükséges konfigurációkkal.

A Stackhawk ingyenes szintet kínál modern, DAST-ba integrált automatizált teszteléssel a CI/CD folyamatban egyetlen alkalmazáshoz. Az olyan szolgáltatások azonban, mint a hitelesítés, az automatizálás, az insights, az értesítések és az összes API-típus támogatása, az összes díjszabásban szerepelnek.

gRPCurl

gRPCurl egy nyílt forráskódú parancssori segédprogram a gRPC-képes kiszolgálókhoz való csatlakozáshoz. Ahogy a neve is sugallja, „gRPC szerverekhez való curl”-nek hívják. Az oka annak, hogy a cURL segítségével nem küldhet kérést a gRPC-kiszolgálóknak, az az, hogy nem támogatja a protokollpuffereket, amelyek bináris üzenetek. A cURL csak JSON-karakterláncokkal foglalkozik.

Megtekintheti a gRPC-szolgáltatások sémáját úgy, hogy lekérdez egy kiszolgálót, amely támogatja a kiszolgáló tükrözését, a proto forrásfájlok beolvasásával vagy a lefordított „protoset” fájlok (kódolt fájlleíró protokat tartalmazó fájlok) betöltésével.

A gRPCurl nem egy teljes körű tesztelőeszköz, de alapvető lekérdezéseket és teszteléseket végezhet a parancssori segédprogrammal.

Smartbear ReadyAPI-ja

ReadyAPI by Smartbear támogatja a gRPC API tesztelését, de csak az unáris műveleteket. A gRPC szolgáltatás teszteléséhez először be kell állítania a API kapcsolat teszt lépés. Ezzel kéréseket küldhet, és válaszokat kaphat a gRPC szolgáltatástól.

A ReadyAPI egyelőre csak az unáris műveleteket támogatja, ami azt jelenti, hogy a ReadyAPI csak egyetlen választ vár a szervertől.

NosyMouse

Nosymouse egy olyan eszköz, amely tartalmaz egy gRPC-tesztert a funkcionális, teljesítmény- és biztonsági tesztek manuális vagy automatikus futtatásához. Olyan funkciókat kínál, mint a párhuzamos virtuális felhasználók, a felfutás, az átengedési feltételek, a gondolkodási idők, a tesztadatok és a tesztforgatókönyvek támogatása, valamint több súlyozott felhasználási eset.

Az adatvezérelt tesztelési módszertant követi, biztosítva, hogy mindig támogatást kapjon a különálló tesztadatokhoz, változókhoz, automatizált ellenőrzésekhez és valós használati esetekhez. A teszteket különböző bemenetekkel futtathatja, és ellenőrizheti a kimeneteket az interfészen.

14 napos ingyenes próbaverziót kínál két párhuzamos szolgáltatásfelhasználó tesztelésére.

Végső szavak

A gRPC szolgáltatások és eszközök térnyerésével nehéz lehet kiválasztani a megfelelő gRPC tesztelőeszközt. A megfelelő eszköz kiválasztása fontos, mert közvetlenül befolyásolja az API funkcióit. Az egyik fontos dolog, amit figyelembe kell venni, a különböző gRPC-funkciók támogatása, mint például a szerver tükrözése, streaming stb. A tesztelőeszköz kiválasztásakor ügyeljen a gRPC-specifikus szolgáltatásokra.

Ezután tekintse meg a legjobb API terheléstesztelő platformokat a teljesítmény javítása érdekében.