8 utili strumenti di test gRPC da utilizzare durante lo sviluppo

gRPC è un framework RPC (Remote Procedure Call) sviluppato da Google.

C’e ‘un nota a margine interessante dietro il motivo per cui si chiama così. Una chiamata di procedura remota è un modo per eseguire una funzione o un metodo su una macchina remota come se fosse una funzione locale. È un’astrazione che elimina la difficoltà di gestire le chiamate HTTP e altre terminologie di rete.

gRPC rende la comunicazione e il trasferimento dei dati tra i microservizi molto più semplici e veloci. Si basa sul protocollo HTTP/2 ma rende più semplice per gli sviluppatori connettere tutto insieme.

I microservizi possono essere presenti in più lingue, quindi è necessario scrivere un programma affinché possano comunicare tra loro.

gRPC semplifica le cose perché supporta più lingue. Utilizza i buffer di protocollo come Interface Definition Language per definire la struttura del messaggio.

Test delle applicazioni gRPC

Non solo per le applicazioni gRPC, i test sono essenziali per qualsiasi software complesso sviluppato. Il test delle applicazioni gRPC garantisce che i microservizi e gli altri servizi possano comunicare tra loro in modo affidabile ed efficiente.

Garantisce che tutti i servizi, pur scritti in lingue diverse, possano comunicare senza barriere linguistiche. È possibile perché gRPC usa buffer di protocollo indipendenti dal linguaggio.

Anche la gestione degli errori e la gestione delle eccezioni diventano chiare quando si testa l’applicazione. Oltre a ciò, è anche possibile eseguire test delle prestazioni per vedere come si comportano i servizi sotto carichi variabili di traffico di rete.

Ora che conosci gRPC, esaminiamo alcuni strumenti di test gRPC.

Kreya

Kreya è un client API con un’interfaccia utente grafica per gRPC e API REST. Il suo client gRPC supporta lo streaming di richieste, le chiamate unarie, la convalida e altro ancora. Per testare l’API, puoi anche generare dati falsi all’interno dello stesso Kreya.

Inoltre, le richieste e la loro configurazione sono archiviate in un file system, quindi puoi utilizzare git o qualsiasi altro sistema di controllo della versione per sincronizzare i tuoi progetti. Kreya ti consente di definire test scrivendo script per testare l’API ad ogni chiamata.

Kreya offre un livello gratuito per singoli utenti, che include un client gRPC completo, configurazioni di autenticazione riutilizzabili, ambienti e modelli e altro ancora.

ghz

ghz, un’utilità della riga di comando di benchmarking gRPC open source e test di carico scritta in Go, per testare l’API e ottenere i risultati. ghz supporta un file proto, un bundle protoset predefinito o una riflessione del server. Con l’aiuto delle variabili del modello in Go, ti consente di aggiungere dati personalizzati alle richieste.

Oltre a un’utilità da riga di comando, ghz dà anche accesso a un’interfaccia di applicazione web complementare, che puoi utilizzare per visualizzare, monitorare e salvare i risultati dei test. È possibile visualizzare i risultati del test in vari formati di file come CSV, JSON e HTML. Al momento in cui scrivo, l’interfaccia web fornita è ancora in fase beta.

Postino

Postino è una piattaforma di sviluppo API che supporta la creazione e il test di quasi tutti i tipi di API, incluso gRPC. In Postman puoi scrivere test per singole richieste o raccolte o cartelle in una raccolta.

Quando effettui una richiesta gRPC in Postman, vai alla scheda Script nella visualizzazione della richiesta e seleziona quando desideri eseguire il test: prima della richiesta o dopo aver ricevuto una risposta. Puoi anche utilizzare snippet di codice per scrivere i test più velocemente.

Insonnia

Insonnia è uno strumento per progettare, testare ed eseguire il debug delle API. Supporta richieste REST, GraphQL, WebSocket e gRPC. Quando crei una nuova richiesta in Insomnia, puoi selezionare gRPC e quindi inserire l’endpoint URL dell’API.

Devi anche aggiungere un file .proto per definire i tuoi messaggi. Dalle richieste unarie allo streaming bidirezionale, Insomnia supporta quasi tutti i tipi di richiesta, incluso lo streaming client e server.

Per testare le API in Insomnia, devi aggiungere un documento di progettazione per la tua API e quindi, nella scheda Test, puoi creare una suite di test. Tieni presente che Insomnia utilizza il framework Mocha per i test unitari e Chai per le asserzioni.

Stackhawk

Stackhawk è uno strumento di test della sicurezza API che fornisce anche una soluzione per i servizi gRPC. Con l’aiuto di questo strumento, puoi garantire la sicurezza dei tuoi endpoint API. Per eseguire la scansione di un’applicazione gRPC utilizzando Stackhawk, è necessario definire uno stackhawk.yml file con le configurazioni richieste.

Stackhawk offre un livello gratuito con moderni test automatizzati integrati con DAST nella pipeline CI/CD per una singola applicazione. Tuttavia, funzionalità come autenticazione, automazione, approfondimenti, notifiche e supporto per tutti i tipi di API sono incluse in tutti i piani tariffari.

gRPCurl

gRPCurl è un’utilità della riga di comando open source per la connessione a server abilitati per gRPC. Come suggerisce il nome, è definito “curl per server gRPC”. Il motivo per cui non puoi utilizzare cURL per effettuare una richiesta ai server gRPC è che non supporta i buffer di protocollo, che sono messaggi binari. cURL si occupa solo di stringhe JSON.

È possibile verificare lo schema per i servizi gRPC interrogando un server che supporta la riflessione del server, leggendo i file sorgente proto o caricando file “protoset” compilati (file che contengono prototipi di descrittori di file codificati).

gRPCurl non è uno strumento di test completo, ma puoi comunque eseguire query e test di base utilizzando l’utilità della riga di comando.

ReadyAPI di Smartbear

API pronta di Smartbear supporta il test dell’API gRPC ma solo le operazioni unarie. Per testare un servizio gRPC, devi prima configurare il file Connessione API fase di prova. In questo modo potrai inviare richieste e ricevere risposte dal tuo servizio gRPC.

ReadyAPI supporta solo operazioni unarie per ora, il che significa che ReadyAPI attenderà solo una singola risposta dal server.

NosyMouse

Nosymouse è uno strumento che include un tester gRPC per l’esecuzione di test funzionali, prestazionali e di sicurezza manualmente o automaticamente. Offre funzionalità come utenti virtuali simultanei, accelerazione, criteri di superamento, tempi di riflessione, dati di test e supporto per scenari di test insieme a più casi d’uso ponderati.

Segue la metodologia di test basata sui dati, garantendoti sempre il supporto per dati di test separati, variabili, verifiche automatizzate e casi d’uso reali. Puoi eseguire i test con input diversi e verificare gli output nell’interfaccia.

Offre una prova gratuita di 14 giorni per testare due utenti del servizio contemporaneamente.

Parole finali

Con l’aumento dei servizi e degli strumenti gRPC, può essere difficile scegliere lo strumento di test gRPC giusto. Scegliere lo strumento giusto è importante perché influisce direttamente sulla funzionalità della tua API. Una cosa importante da considerare è il supporto per varie funzionalità gRPC come la riflessione del server, lo streaming, ecc. Cerca le funzionalità specifiche di gRPC quando scegli uno strumento di test.

Successivamente, controlla le migliori piattaforme di test del carico API per migliorare le prestazioni.