Как тестировать gRPC

Как тестировать gRPC

t.me/qa_chillout

Два приложения в сети нуждаются в некотором посреднике, чтобы общаться друг с другом. На текущий момент существует несколько типов организации взаимодействия: REST, SOAP, RPC. О первых двух мы говорили ранее, а вот на последнем остановимся в этой статье и рассмотрим основные определения.

RPC (Remote Procedure Call) — удаленный вызов процедуры  —  класс технологий, позволяющих программам вызывать функции или процедуры в другом адресном пространстве. Обычно реализация RPC-технологии включает два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов.

gRPC (Remote Procedure Calls) — это система удалённого вызова процедур (RPC) с открытым исходным кодом, первоначально разработанная в Google в 2015 году. Другими словами, это мощный фреймворк для работы с удаленными вызовами процедур.

В gRPC клиентское приложение может напрямую вызывать метод серверного приложения на другом компьютере, как если бы это был локальный объект, что упрощает создание распределенных приложений и служб. Как и во многих системах RPC, gRPC основан на идее определения службы, указывающей методы, которые могут вызываться удаленно, с их параметрами и типами возвращаемых данных. На стороне сервера сервер реализует этот интерфейс и запускает сервер gRPC для обработки клиентских вызовов. На стороне клиента у клиента есть заглушка (на некоторых языках называемая просто клиентом), которая предоставляет те же методы, что и сервер.

Клиенты и серверы gRPC могут работать и взаимодействовать друг с другом в различных средах — от серверов внутри Google до вашего собственного рабочего стола — и могут быть написаны на любом из поддерживаемых gRPC языков (например, можно создать сервер gRPC на Java с клиентами на Go, Python или Ruby).

gRPC использует protocспециальный плагин gRPC для генерации кода из вашего файла proto: вы получаете сгенерированный клиентский и серверный код gRPC, а также обычный код буфера протокола для заполнения, сериализации и извлечения ваших типов сообщений.

Как тестировать gRPC

grpcui

Программа c графическим интерфейсом для взаимодействия с gRPC. По сути как Postman, только для gRPC. Она написана на Go.

Давайте разберемся как настроить и запустить этот инструмент:

  1. Скачать и установить docker https://www.docker.com/products/docker-desktop
  2. Скачать и поставить go https://go.dev/doc/install
  3. Склонировать образ докера для grpcui https://github.com/fullstorydev/grpcui
  4. Загрузить образ докера, выполнив команду:
docker pull wongnai/grpcui

5. Запустить контейнер 

docker run -eGRPCUI_SERVER={host:port} -p8080:8080 wongnai/grpcui

В результате выполнения этой команды получим урл на веб-интерфейс grpcui.


Пример выполнения команды:

docker run -eGRPCUI_SERVER=youla-grpc.devtest.ru:80 -p8080:8080 wongnai/grpcui gRPC Web UI available at http://0.0.0.0:8080/


По адресу http://0.0.0.0:8080 открывается web-интерфейс:


Затем, в Request Form передаем необходимые параметры и их значения для запроса. Сначала выберем необходимый метод, в поле Method name — CreateLimit. Например, попробуем создать лимиты на публикацию товаров в определенной категории для конкретного пользователя:

В Response Data получаем ответ с информацией по созданным лимитам:


Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page