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

Мне поручили протестировать gRPC API (написанный на Golang), но я не знаю, как его протестировать, и я не смог найти в Интернете никаких руководств по этому типу тестирования. Единственный метод, который я могу придумать, - это написать модульные тесты для проверки самих методов, но я также хотел бы протестировать его с клиентом. Например, в прошлом я тестировал REST API, используя JMeter в качестве клиента для отправки запросов и проверки данных ответа. Существует ли метод тестирования API-интерфейсов gRPC с помощью клиента или единственным способом является модульное тестирование?


person C J    schedule 12.12.2017    source источник


Ответы (5)


Что ж, я искал такого клиента, как Postman, потом нашел bloomrpc, который помогает в вызове услуги ГРП. Но я не уверен, что это служит вашей цели, если вы ищете такой инструмент, как jmeter.

person Pram    schedule 07.09.2019
comment
Есть идеи, как мы можем обернуть текст в BloomRPC? Иногда строка становится огромной и неуклюжей без переноса текста. - person Amrit Kr Lama; 23.02.2021

Может быть два типа тестирования.

  • Тестирование только реализации метода gRPC, игнорируя сетевые

    этот вопрос отвечает на этот аспект тестирования. Просто написав модульный тест для метода RPC

  • Если вы хотите протестировать как реализацию, так и сетевые аспекты gRPC, вам нужно написать клиент gRPC для службы, которую вы хотите протестировать.

Здесь фрагмент кода о создании клиента gRPC

// Set up a connection to the server.
conn, err := grpc.Dial(address, grpc.WithInsecure())
// Execute RPC you want to test
r, err := c.SayHello(context.Background(), &pb.HelloRequest{Name: name})

Полный пример кода см. здесь.

person Shettyh    schedule 12.12.2017
comment
Если я ничего не упустил, тестирование с использованием клиента gRPC выполняется полностью вручную. Это означает, что вам нужно запустить сервер вручную, а затем вы можете запустить клиент, чтобы протестировать его, верно? - person Brick Yang; 30.04.2019
comment
@BrickYang да, вы отчасти правы. Но обычно сервер запускается до тестовых случаев (например, в методе init) и останавливается после завершения всех тестовых случаев. - person Shettyh; 30.04.2019

Если вы ищете такой инструмент, как Postman, есть также https://kreya.app. С его помощью вы можете вызывать свои службы gRPC и просматривать ответы.

Отказ от ответственности: я являюсь одним из авторов Kreya.

person Manuel Allenspach    schedule 28.01.2021

Поскольку вы упомянули, что уже проводили тестирование с помощью JMeter, я предполагаю, что вы ищете внешний тестовый клиент, который может вызывать службу gRPC. Есть несколько, которые вы можете использовать. Общие из них

С помощью этих 4 клиентов вы можете динамически вызывать службы gRPC. Однако, если вы ищете тестовый клиент, который также может выполнять нагрузочное тестирование, вам понадобится Fint.

person Erik Araojo    schedule 12.03.2021

Вы также можете попробовать этот инструмент командной строки, evans, для тестирования gRPC.

person wannabepro    schedule 09.06.2020
comment
Старайтесь избегать ответов только по ссылке, приведите пример или некоторый контекст вокруг него. - person Krisz; 09.06.2020