8 полезни инструмента за тестване на gRPC, които да използвате по време на разработка

gRPC е рамка за дистанционно извикване на процедури (RPC), разработена от Google.

Има един интересна странична бележка зад защо е кръстен така. Извикването на отдалечена процедура е начин за изпълнение на функция или метод на отдалечена машина, сякаш е локална функция. Това е абстракция, която премахва болката от работа с HTTP повиквания и други мрежови терминологии.

gRPC прави комуникацията и трансфера на данни между микроуслугите много по-лесни и по-бързи. Той разчита на протокола HTTP/2 под капака, но улеснява разработчиците да свързват всичко заедно.

Микроуслугите могат да присъстват на множество езици, така че трябва да напишете програма, за да могат те да говорят помежду си.

gRPC го прави лесно, защото поддържа множество езици. Той използва протоколни буфери като език за дефиниране на интерфейса за дефиниране на структурата на съобщението.

Тестване на gRPC приложения

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

Той гарантира, че всички услуги, макар и написани на различни езици, могат да комуникират без езикова бариера. Възможно е, защото gRPC използва протоколни буфери, които са неутрални по отношение на езика.

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

След като вече знаете за gRPC, нека разгледаме някои инструменти за тестване на gRPC.

Крея

Крея е API клиент с графичен потребителски интерфейс за gRPC, както и REST API. Неговият gRPC клиент поддържа поточно предаване на заявки, унарни повиквания, валидиране и др. За да тествате API, можете също да генерирате фалшиви данни в самата Kreya.

Освен това заявките и тяхната конфигурация се съхраняват във файлова система, така че можете да използвате git или друга система за контрол на версиите, за да синхронизирате вашите проекти. Kreya ви позволява да дефинирате тестове чрез писане на скриптове, за да можете да тествате API при всяко повикване.

Kreya предлага безплатно ниво за отделни потребители, което включва напълно функционален gRPC клиент, многократно използваеми конфигурации за удостоверяване, среди и шаблони и др.

GHz

GHz, gRPC бенчмаркинг с отворен код и помощна програма за команден ред за тестване на натоварване, написана на Go, за тестване на API и получаване на резултатите. ghz поддържа протофайл, предварително изграден комплект протосети или отражение на сървъра. С помощта на шаблонни променливи в Go ви позволява да добавяте персонализирани данни към заявките.

Освен помощна програма за команден ред, ghz дава достъп и до допълнителен интерфейс на уеб приложение, който можете да използвате, за да преглеждате, проследявате и запазвате резултатите от теста. Можете да видите резултатите от теста в различни файлови формати като CSV, JSON и HTML. Към момента на писане уеб интерфейсът, който предоставя, все още е в бета етап.

Пощальон

Пощальон е платформа за разработка на API, която поддържа изграждане и тестване за почти всички видове API, включително gRPC. В Postman можете да пишете тестове за отделни заявки или колекции или папки в колекция.

Когато направите gRPC заявка в Postman, преминете към раздела Скриптове в изгледа на заявката и след това изберете кога искате да извършите теста — преди заявката или след като получите отговор. Можете също така да използвате кодови фрагменти, за да пишете тестове по-бързо.

Безсъние

Безсъние е инструмент за проектиране, тестване и отстраняване на грешки в API. Поддържа REST, GraphQL, WebSockets и gRPC заявки. Когато създавате нова заявка в Insomnia, можете да изберете gRPC и след това да въведете URL крайната точка на API.

Трябва също да добавите .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 услуги или чрез заявка към сървър, който поддържа отражение на сървъра, чрез четене на изходни файлове на proto или чрез зареждане на компилирани „protoset“ файлове (файлове, които съдържат кодирани proto дескриптори на файлове).

gRPCurl не е пълноценен инструмент за тестване, но все пак можете да правите основни заявки и тестове с помощта на помощната програма от командния ред.

ReadyAPI на Smartbear

ReadyAPI от Smartbear поддържа gRPC API тестване, но само унарни операции. За да тествате gRPC услуга, първо трябва да настроите API връзка тестова стъпка. По този начин можете да изпращате заявки и да получавате отговори от вашата gRPC услуга.

ReadyAPI засега поддържа само унарни операции, което означава, че ReadyAPI ще чака само един отговор от сървъра.

NosyMouse

Nosymouse е инструмент, който включва gRPC тестер за провеждане на функционални тестове, тестове за производителност и сигурност ръчно или автоматично. Той предлага функции като едновременни виртуални потребители, нарастване, критерии за преминаване, времена за мислене, тестови данни и поддръжка за тестови сценарии заедно с множество претеглени случаи на употреба.

Той следва методологията за тестване, управлявана от данни, като гарантира, че винаги имате поддръжка за отделни тестови данни, променливи, автоматизирани проверки и случаи на употреба в реалния свят. Можете да изпълнявате вашите тестове с различни входове и да проверявате изходите в интерфейса.

Той предлага 14-дневен безплатен пробен период за тестване на двама едновременни потребители на услугата.

Заключителни думи

С нарастването на услугите и инструментите на gRPC може да ви бъде трудно да изберете правилния инструмент за тестване на gRPC. Изборът на правилния инструмент е важен, защото влияе директно върху функционалността на API. Едно важно нещо, което трябва да имате предвид, е поддръжката на различни gRPC функционалности, като отразяване на сървъра, стрийминг и т.н. Внимавайте за специфични за gRPC функции, когато избирате инструмент за тестване.

След това вижте най-добрите API платформи за тестване на натоварване, за да подобрите производителността.