
gRPC är ett RPC-ramverk (Remote Procedure Call) utvecklat av Google.
Det är en intressant sidoanteckning bakom varför det heter så här. Ett fjärranrop är ett sätt att utföra en funktion eller en metod på en fjärrdator som om det vore en lokal funktion. Det är en abstraktion som tar bort smärtan av att hantera HTTP-anrop och andra nätverksterminologier.
gRPC gör kommunikation och dataöverföring mellan mikrotjänster mycket enklare och snabbare. Det förlitar sig på HTTP/2-protokollet under huven men gör det lättare för utvecklare att koppla ihop allt.
Mikrotjänster kan finnas på flera språk, så du måste skriva ett program för att de ska kunna prata med varandra.
gRPC gör det enkelt eftersom det stöder flera språk. Den använder protokollbuffertar som Interface Definition Language för att definiera strukturen för meddelandet.
Innehållsförteckning
Testa gRPC-applikationer
Inte bara gRPC-applikationer, testning är avgörande för all komplex programvara som utvecklas. Att testa gRPC-applikationer säkerställer att mikrotjänsterna och andra tjänster kan prata med varandra på ett tillförlitligt och effektivt sätt.
Det säkerställer att alla tjänster, även om de är skrivna på olika språk, kan kommunicera utan språkbarriärer. Det är möjligt eftersom gRPC använder protokollbuffertar som är språkneutrala.
Felhantering och undantagshantering blir också tydliga när du testar din applikation. Utöver det kan man också utföra prestandatester för att se hur tjänster beter sig under varierande belastningar av nätverkstrafik.
Nu när du känner till gRPC, låt oss titta på några gRPC-testverktyg.
Kreya
Kreya är en API-klient med ett grafiskt användargränssnitt för såväl gRPC som REST API. Dess gRPC-klient stöder streaming av förfrågningar, unära samtal, validering och mer. För att testa API:t kan du också generera falska data inom Kreya själv.
Dessutom lagras förfrågningarna och deras konfiguration i ett filsystem, så du kan använda git eller något annat versionskontrollsystem för att synkronisera dina projekt. Kreya låter dig definiera tester genom att skriva skript så att du kan testa API:t vid varje samtal.
Kreya erbjuder en gratis nivå för enskilda användare, som inkluderar en fullt utrustad gRPC-klient, återanvändbara autentiseringskonfigurationer, miljöer och mallar och mer.
ghz
ghz, ett kommandoradsverktyg för öppen källkod för gRPC-benchmarking och lasttest skrivet i Go, för att testa API:et och få resultaten. ghz stöder en protofil, ett förbyggt protosetpaket eller en serverreflektion. Med hjälp av mallvariabler i Go låter den dig lägga till anpassade data till förfrågningar.
Förutom ett kommandoradsverktyg ger ghz också tillgång till ett kompletterande webbapplikationsgränssnitt, som du kan använda för att visa, spåra och spara testresultaten. Du kan se testresultaten i olika filformat som CSV, JSON och HTML. I skrivande stund är webbgränssnittet det tillhandahåller fortfarande i betastadiet.
Brevbärare
Brevbärare är en API-utvecklingsplattform som stöder byggande och testning för nästan alla typer av API:er, inklusive gRPC. I Postman kan du skriva prov för enskilda förfrågningar eller samlingar eller mappar i en samling.
När du gör en gRPC-förfrågan i Postman, gå över till fliken Skript i förfrågningsvyn och välj sedan när du vill utföra testet — före begäran eller efter att du får ett svar. Du kan också använda kodavsnitt för att skriva tester snabbare.
Sömnlöshet
Sömnlöshet är ett verktyg för att designa, testa och felsöka API:er. Den stöder REST, GraphQL, WebSockets och gRPC-förfrågningar. När du skapar en ny begäran i Insomnia kan du välja gRPC och sedan ange URL-slutpunkten för API:et.
Du måste också lägga till en .proto-fil för att definiera dina meddelanden. Från unära förfrågningar till dubbelriktad streaming, Insomnia stöder nästan alla förfrågningstyper, inklusive klient- och serverströmning.
För att testa API:er i Insomnia måste du lägga till ett designdokument för ditt API, och sedan, på fliken Test, kan du skapa en testsvit. Observera att Insomnia använder Mocha-ramverket för enhetstestning och Chai för påståenden.
Stackhawk
Stackhawk är ett API-säkerhetstestverktyg som också tillhandahåller en lösning för gRPC-tjänster. Med hjälp av detta verktyg kan du säkerställa säkerheten för dina API-slutpunkter. För att skanna en gRPC-applikation med Stackhawk måste du definiera en stackhawk.yml fil med nödvändiga konfigurationer.
Stackhawk erbjuder en gratis nivå med modern DAST-integrerad automatiserad testning i CI/CD-pipelinen för en enda applikation. Funktioner som autentisering, automatisering, insikter, aviseringar och stöd för alla API-typer ingår dock i alla prisplaner.
gRPCurl
gRPCurl är ett kommandoradsverktyg med öppen källkod för att ansluta till gRPC-aktiverade servrar. Som namnet antyder kallas det ”curl för gRPC-servrar”. Anledningen till att du inte kan använda cURL för att göra en begäran till gRPC-servrar är att den inte stöder protokollbuffertar, som är binära meddelanden. cURL hanterar endast JSON-strängar.
Du kan kolla in schemat för gRPC-tjänster antingen genom att fråga en server som stöder serverreflektion, genom att läsa proto-källfiler eller genom att ladda i kompilerade ”protoset”-filer (filer som innehåller kodade filbeskrivningsprotos).
gRPCurl är inte ett komplett testverktyg, men ändå kan du göra grundläggande frågor och testa med hjälp av kommandoradsverktyget.
Smartbears ReadyAPI
ReadyAPI av Smartbear stöder gRPC API-testning men endast unära operationer. För att testa en gRPC-tjänst måste du först ställa in API-anslutning teststeg. Genom att göra det kan du sedan skicka förfrågningar och få svar från din gRPC-tjänst.
ReadyAPI stöder endast unära operationer för närvarande, vilket innebär att ReadyAPI bara väntar på ett enda svar från servern.
NosyMouse
Nosymous är ett verktyg som inkluderar en gRPC-testare för att köra funktions-, prestanda- och säkerhetstester antingen manuellt eller automatiskt. Den erbjuder funktioner som samtidiga virtuella användare, ramp-up, godkända kriterier, tanketider, testdata och stöd för testscenarier tillsammans med flera viktade användningsfall.
Den följer den datadrivna testmetoden, vilket säkerställer att du alltid har stöd för separata testdata, variabler, automatiserade verifieringar och verkliga användningsfall. Du kan köra dina tester med olika ingångar och verifiera utgångar i gränssnittet.
Den erbjuder en 14-dagars gratis provperiod för att testa två samtidiga tjänstanvändare.
Slutord
Med framväxten av gRPC-tjänster och verktyg kan det vara svårt för dig att välja rätt gRPC-testverktyg. Att välja rätt verktyg är viktigt eftersom det påverkar din API-funktionalitet direkt. En viktig sak att tänka på är stödet för olika gRPC-funktioner som serverreflektion, streaming etc. Håll utkik efter gRPC-specifika funktioner när du väljer ett testverktyg.
Kolla sedan in de bästa API-belastningstestplattformarna för att förbättra prestandan.