В современном мире для большинства проектов необходимо использовать API. API запросы помогают микросервисам коммуницировать между собой, связывая их в одну большую и сложную систему, включающую в себя различные базы данных, из которых происходит чтение информации и последующая перезапись с помощью тех же самых API запросов. Все эти потребности удовлетворяют большинство современных технологий таких как REST, SOAP и GraphQL. Наиболее популярная это REST. Однако в последнее время набирает обороты технология gRPC, который обладает высокой производительностью, типизированными данными и отличным инструментарием. Сегодня мы рассмотрим на конкретном примере как тестировать сервис работающий по технологии gRPC. Для того чтобы каждый мог попробовать потестировать работу с технологией gRPC, я попросил моего коллегу и супер разработчика Михаила Петрова написать тестовый сервис. Он создал такой сервис и выложил его на гитхаб для общего доступа https://github.com/MikhailPO/grpcExampleService Этот сервис можно запустить как на Windows так и на OS Mac/Linux OS. Покажу как это делается на примере Mac OS. Запускаем терминал и клонируем проект сервиса, с помощью команды git clone. Теперь переходим в папку grpcExampleService и делаем все sh файлы запускаемыми. И наконец-то пришла пора запустить сервис. Сначала выполняем по очереди файлыgenerate_file.shиinstall.sh И теперь стартуем наш сервис с помощью команды start.sh Перед началом тестирования сервиса, необходимо один раз произвести настройку инструмента для тестирования. В нашем случае это будет Postman. Во-первых, нужно быть залогиненным в Postman. Либо создать новый аккаунт и войти в него. Во-вторых, импортировать proto файл, который лежит в созданном нами проекте в папке proto В моем случае путь к этому файлу выглядит так: Для этого нажимаем New и выбираем gRPC Request Прописываем URL сервера localhost:50051 Переходим во вкладку Service definition и нажимаем кнопку Import .proto file Нажимаем кнопку Choose a File, чтобы выбрать наш файл GrpcExampleService.proto и нажимаем кнопку Next На последнем этапе можно нажать линк Use without importing. Настройка закончена. Тестирование gRPC происходит по большому счету так же как и HTTP. Необходимо выбрать нужный метод из списка методов gRPC, нажав на поле Select a method и выбрав метод. Наш тестовый сервис поддерживает три метода AddClient, GetClients и GetClientByLogin Метод AddClient добавляет одного или несколько клиентов в базу данных. Ниже приведен пример тела запроса: Метод GetClients возвращает всех клиентов, которые содержатся в базе данных на данный момент. В теле запроса ничего указывать не надо. Метод GetClientByLogin возвращает одного конкретного клиента, которого мы указываем в теле запроса. Ниже приведен пример тела запроса: Переходим во вкладку Message, заполняем тело сообщения и нажимаем кнопку Invoke Для того чтобы проверить информацию, которая записалась в результате работы сервиса, нам необходимо подключится к его базе данных. Для этого можно использовать командную строку и программу, которая называется sqlite3 Ниже приведен пример работы с ней: Для подключения необходимо набрать команду sqlite3 и указать путь к нашей базе данных. В моем случае это /Users/sergeishaikin/grpcExampleService/database/mydatabase.db Для отображения таблицы в виде колонок выполняем команду .mode column.Чтобы были видны названия колонок выполняем команду .headers on. Ну и для того чтобы посмотреть нашу таблицу, выполняем команду SELECT * FROM client; Для более удобного просмотра таблицы, существуют различные инструменты для работы с базами данных, такие как pgAdmin и DBeaver. Я использовал DBeaver. На рисунке представлен вариант вариант подключения базы данных нашего сервиса в DBeaver: И вариант просмотра нашей таблицы: Вы можете попробовать потестировать все три метода, почитав описание в проекте Михаила и посмотрев правильно ли записалась информация в базу данных. Возможно в проекте закрались баги и вы их найдете Но одно можно сказать точно, что вы теперь с уверенностью можете добавить в свое резюме строчку про тестирование технологии gRPC. Надеюсь эта статья была для вас не только интересной, но и полезной. Материал подготовлен в преддверии старта курса Java QA Engineer. Professional. Узнать подробнее о курсе, а также зарегистрироваться на бесплатный урок можно по ссылке ниже. Зарегистрироваться на бесплатный урок  Software Tester