gRPC é uma estrutura de chamada de procedimento remoto (RPC) desenvolvida pelo Google.
Há uma nota lateral interessante por trás do motivo pelo qual tem esse nome. Uma chamada de procedimento remoto é uma forma de executar uma função ou método em uma máquina remota como se fosse uma função local. É uma abstração que elimina a dificuldade de lidar com chamadas HTTP e outras terminologias de rede.
O gRPC torna a comunicação e a transferência de dados entre microsserviços muito mais fácil e rápida. Ele depende do protocolo HTTP/2, mas torna mais fácil para os desenvolvedores conectarem tudo.
Os microsserviços podem estar presentes em vários idiomas, então você precisa escrever um programa para que eles se comuniquem entre si.
O gRPC torna isso mais fácil porque oferece suporte a vários idiomas. Ele usa buffers de protocolo como linguagem de definição de interface para definir a estrutura da mensagem.
últimas postagens
Testando aplicativos gRPC
Não apenas para aplicativos gRPC, o teste é essencial para qualquer software complexo desenvolvido. Testar aplicativos gRPC garante que os microsserviços e outros serviços possam se comunicar entre si de maneira confiável e eficiente.
Garante que todos os serviços, embora escritos em idiomas diferentes, possam comunicar sem barreiras linguísticas. É possível porque o gRPC usa buffers de protocolo com linguagem neutra.
O tratamento de erros e de exceções também fica claro quando você testa seu aplicativo. Além disso, também é possível realizar testes de desempenho para ver como os serviços se comportam sob cargas variadas de tráfego de rede.
Agora que você conhece o gRPC, vamos dar uma olhada em algumas ferramentas de teste do gRPC.
Kreya
Kreya é um cliente API com uma interface gráfica de usuário para gRPC e também APIs REST. Seu cliente gRPC oferece suporte a streaming de solicitações, chamadas unárias, validação e muito mais. Para testar a API, você também pode gerar dados falsos dentro do próprio Kreya.
Além disso, as solicitações e suas configurações são armazenadas em um sistema de arquivos, para que você possa usar o git ou qualquer outro sistema de controle de versão para sincronizar seus projetos. Kreya permite definir testes escrevendo scripts para testar a API em cada chamada.
Kreya oferece um nível gratuito para usuários individuais, que inclui um cliente gRPC completo, configurações de autenticação reutilizáveis, ambientes e modelos e muito mais.
ghz
ghz, um utilitário de linha de comando de teste de carga e benchmarking gRPC de código aberto escrito em Go, para testar a API e obter os resultados. ghz suporta um arquivo proto, um pacote protoset pré-construído ou uma reflexão de servidor. Com a ajuda de variáveis de modelo em Go, permite adicionar dados personalizados às solicitações.
Além de um utilitário de linha de comando, o ghz também dá acesso a uma interface de aplicativo web complementar, que você pode usar para visualizar, rastrear e salvar os resultados do teste. Você pode visualizar os resultados do teste em vários formatos de arquivo, como CSV, JSON e HTML. No momento em que este artigo foi escrito, a interface da web fornecida ainda estava em fase beta.
Carteiro
Carteiro é uma plataforma de desenvolvimento de API que oferece suporte à construção e teste de quase todos os tipos de APIs, incluindo gRPC. No Postman, você pode escrever testes para solicitações individuais ou coleções ou pastas em uma coleção.
Ao fazer uma solicitação gRPC no Postman, vá até a guia Scripts na visualização da solicitação e selecione quando deseja realizar o teste – antes da solicitação ou depois de obter uma resposta. Você também pode usar trechos de código para escrever testes com mais rapidez.
Insônia
Insônia é uma ferramenta para projetar, testar e depurar APIs. Ele oferece suporte a solicitações REST, GraphQL, WebSockets e gRPC. Ao criar uma nova solicitação no Insomnia, você pode selecionar gRPC e inserir o endpoint da URL da API.
Você também precisa adicionar um arquivo .proto para definir suas mensagens. De solicitações unárias a streaming bidirecional, o Insomnia oferece suporte a quase todos os tipos de solicitação, incluindo streaming de cliente e servidor.
Para testar APIs no Insomnia, você precisa adicionar um documento de design para sua API e, em seguida, na guia Teste, você pode criar um conjunto de testes. Observe que o Insomnia usa a estrutura Mocha para testes unitários e Chai para afirmações.
Stackhawk
Stackhawk é uma ferramenta de teste de segurança de API que também fornece uma solução para serviços gRPC. Com a ajuda desta ferramenta, você pode garantir a segurança dos seus endpoints de API. Para verificar um aplicativo gRPC usando Stackhawk, você precisa defina um stackhawk.yml arquivo com as configurações necessárias.
Stackhawk oferece um nível gratuito com testes automatizados modernos integrados ao DAST no pipeline de CI/CD para um único aplicativo. No entanto, recursos como autenticação, automação, insights, notificações e suporte para todos os tipos de API estão incluídos em todos os planos de preços.
gRP Curl
gRP Curl é um utilitário de linha de comando de código aberto para conexão com servidores habilitados para gRPC. Como o nome sugere, é denominado “curl para servidores gRPC”. O motivo pelo qual você não pode usar cURL para fazer uma solicitação aos servidores gRPC é que ele não oferece suporte a buffers de protocolo, que são mensagens binárias. cURL lida apenas com strings JSON.
Você pode verificar o esquema dos serviços gRPC consultando um servidor que suporta reflexão de servidor, lendo arquivos de origem proto ou carregando arquivos “protoset” compilados (arquivos que contêm protos descritores de arquivo codificados).
gRPCurl não é uma ferramenta de teste completa, mas ainda assim você pode fazer consultas e testes básicos usando o utilitário de linha de comando.
ReadyAPI da Smartbear
ReadyAPI da Smartbear suporta testes de API gRPC, mas apenas operações unárias. Para testar um serviço gRPC, primeiro você precisa configurar o Conexão API etapa de teste. Ao fazer isso, você pode enviar solicitações e receber respostas do seu serviço gRPC.
Por enquanto, o ReadyAPI oferece suporte apenas a operações unárias, o que significa que o ReadyAPI aguardará apenas uma única resposta do servidor.
NosyMouse
Nosymmouse é uma ferramenta que inclui um testador gRPC para executar testes funcionais, de desempenho e de segurança manual ou automaticamente. Ele oferece recursos como usuários virtuais simultâneos, aceleração, critérios de aprovação, tempos de reflexão, dados de teste e suporte para cenários de teste, juntamente com vários casos de uso ponderados.
Ele segue a metodologia de teste baseada em dados, garantindo que você sempre tenha suporte para dados de teste separados, variáveis, verificações automatizadas e casos de uso do mundo real. Você pode executar seus testes com diferentes entradas e verificar as saídas na interface.
Ele oferece um teste gratuito de 14 dias para testar dois usuários de serviço simultâneos.
Palavras Finais
Com o surgimento dos serviços e ferramentas gRPC, pode ser difícil escolher a ferramenta de teste gRPC certa. Escolher a ferramenta certa é importante porque afeta diretamente a funcionalidade da API. Uma coisa importante a considerar é o suporte para várias funcionalidades do gRPC, como reflexão de servidor, streaming, etc. Fique atento aos recursos específicos do gRPC ao escolher uma ferramenta de teste.
A seguir, confira as melhores plataformas de teste de carga de API para melhorar o desempenho.