8 корисних інструментів тестування gRPC для використання під час розробки

gRPC — це платформа віддаленого виклику процедур (RPC), розроблена Google.

Є цікава додаткова примітка чому це так названо. Виклик віддаленої процедури — це спосіб виконання функції або методу на віддаленій машині, як якщо б це була локальна функція. Це абстракція, яка усуває біль від роботи з HTTP-викликами та іншими мережевими термінами.

gRPC робить спілкування та передачу даних між мікросервісами набагато простішим і швидшим. Він базується на протоколі HTTP/2 під капотом, але розробникам легше об’єднувати все разом.

Мікросервіси можуть бути присутні кількома мовами, тому вам потрібно написати програму, щоб вони спілкувалися один з одним.

GRPC полегшує роботу, оскільки підтримує кілька мов. Він використовує буфери протоколу як мову визначення інтерфейсу для визначення структури повідомлення.

Тестування додатків gRPC

Не лише для програм gRPC, тестування є важливим для будь-якого складного програмного забезпечення, яке розробляється. Тестування додатків gRPC гарантує, що мікросервіси та інші сервіси можуть спілкуватися один з одним надійно та ефективно.

Це гарантує, що всі служби, написані різними мовами, можуть спілкуватися без мовного бар’єру. Це можливо, тому що gRPC використовує буфери протоколу, які не залежать від мови.

Обробка помилок і винятків також стає зрозумілою під час тестування програми. Окрім цього, можна також провести тестування продуктивності, щоб побачити, як служби поводяться під різним навантаженням мережевого трафіку.

Тепер, коли ви знаєте про gRPC, давайте розглянемо деякі інструменти тестування gRPC.

Крея

Крея це API-клієнт із графічним інтерфейсом користувача для gRPC, а також REST API. Його клієнт gRPC підтримує потокове передавання запитів, унарні виклики, перевірку тощо. Щоб перевірити API, ви також можете створити підроблені дані в самій Kreya.

  Як підключити Google Drive до Slack

Крім того, запити та їхня конфігурація зберігаються у файловій системі, тому ви можете використовувати git або будь-яку іншу систему контролю версій для синхронізації своїх проектів. Kreya дозволяє визначати тести шляхом написання сценаріїв, щоб ви тестували API під час кожного виклику.

Kreya пропонує безкоштовний рівень для окремих користувачів, який включає повнофункціональний клієнт gRPC, багаторазові конфігурації автентифікації, середовища та шаблони тощо.

ГГц

ГГц, утиліта командного рядка для порівняльного аналізу gRPC і навантажувального тестування з відкритим кодом, написана на Go, для тестування API та отримання результатів. ghz підтримує протофайл, попередньо зібраний комплект протосетів або відображення сервера. За допомогою змінних шаблонів у Go ви можете додавати спеціальні дані до запитів.

Окрім утиліти командного рядка, ghz також надає доступ до додаткового інтерфейсу веб-програми, який можна використовувати для перегляду, відстеження та збереження результатів тесту. Ви можете переглянути результати тесту в різних форматах файлів, таких як CSV, JSON і HTML. На момент написання статті веб-інтерфейс, який він надає, все ще перебуває на стадії бета-версії.

Листоноша

Листоноша це платформа розробки API, яка підтримує створення та тестування майже всіх типів API, включаючи gRPC. У Postman ви можете писати тести для окремих запитів або колекцій або папок у колекції.

Коли ви робите запит gRPC у Postman, перейдіть на вкладку «Сценарії» у вікні перегляду запитів і виберіть, коли ви хочете виконати тест — перед запитом або після отримання відповіді. Ви також можете використовувати фрагменти коду, щоб швидше писати тести.

Безсоння

Безсоння це інструмент для проектування, тестування та налагодження API. Він підтримує запити REST, GraphQL, WebSockets і gRPC. Коли ви створюєте новий запит у Insomnia, ви можете вибрати gRPC, а потім ввести URL-адресу кінцевої точки API.

  Як зробити знімок екрана на Apple TV за допомогою Mac

Вам також потрібно додати файл .proto, щоб визначити ваші повідомлення. Від унарних запитів до двонаправленої потокової передачі, Insomnia підтримує майже всі типи запитів, включаючи потокову передачу клієнта та сервера.

Щоб протестувати API в Insomnia, вам потрібно додати проектний документ для свого API, а потім на вкладці «Тестування» ви зможете створити набір тестів. Зверніть увагу, що Insomnia використовує структуру Mocha для модульного тестування та Chai для тверджень.

Stackhawk

Stackhawk це інструмент тестування безпеки API, який також надає рішення для служб gRPC. За допомогою цього інструменту ви можете забезпечити безпеку кінцевих точок API. Щоб сканувати програму gRPC за допомогою Stackhawk, вам потрібно визначте stackhawk.yml файл із необхідними налаштуваннями.

Stackhawk пропонує безкоштовний рівень із сучасним інтегрованим DAST автоматизованим тестуванням у конвеєрі CI/CD для однієї програми. Однак такі функції, як автентифікація, автоматизація, статистичні дані, сповіщення та підтримка всіх типів API, включені в усі тарифні плани.

gRPCurl

gRPCurl це утиліта командного рядка з відкритим кодом для підключення до серверів із підтримкою gRPC. Як випливає з назви, це називається «curl для серверів gRPC». Причина, чому ви не можете використовувати cURL для надсилання запиту до серверів gRPC, полягає в тому, що він не підтримує буфери протоколів, які є двійковими повідомленнями. cURL має справу лише з рядками JSON.

Ви можете перевірити схему для служб gRPC, звернувшись до сервера, який підтримує відображення сервера, прочитавши вихідні файли протоколу або завантаживши скомпільовані файли «protoset» (файли, які містять закодовані протоколи дескрипторів файлів).

  Як безпечно вийти на Among Us

gRPCurl не є повноцінним інструментом тестування, але все ж ви можете робити базові запити та тестувати за допомогою утиліти командного рядка.

ReadyAPI Smartbear

ReadyAPI від Smartbear підтримує тестування gRPC API, але лише унарні операції. Щоб протестувати службу gRPC, спочатку потрібно налаштувати API підключення тестовий крок. Таким чином ви зможете надсилати запити та отримувати відповіді від служби gRPC.

Наразі ReadyAPI підтримує лише унарні операції, що означає, що ReadyAPI чекатиме лише однієї відповіді від сервера.

NosyMouse

Nosymouse це інструмент, який включає тестер gRPC для виконання функціональних тестів, тестів продуктивності та безпеки вручну або автоматично. Він пропонує такі функції, як одночасні віртуальні користувачі, нарощування, критерії проходження, час обдумування, тестові дані та підтримка тестових сценаріїв, а також кілька зважених випадків використання.

Він дотримується методології тестування на основі даних, гарантуючи, що ви завжди матимете підтримку для окремих тестових даних, змінних, автоматизованих перевірок і випадків використання в реальному світі. Ви можете запускати свої тести з різними входами та перевіряти виходи в інтерфейсі.

Він пропонує 14-денну безкоштовну пробну версію для тестування двох одночасних користувачів служби.

Заключні слова

Із зростанням кількості послуг і інструментів gRPC вам може бути важко вибрати правильний інструмент тестування gRPC. Вибір правильного інструменту важливий, оскільки він безпосередньо впливає на функціональність вашого API. Однією важливою річчю, яку слід враховувати, є підтримка різних функцій gRPC, таких як відображення сервера, потокова передача тощо. Зверніть увагу на особливості gRPC, коли вибираєте інструмент тестування.

Далі ознайомтеся з найкращими платформами навантажувального тестування API, щоб покращити продуктивність.