Мне поручили протестировать gRPC API (написанный на Golang), но я не знаю, как его протестировать, и я не смог найти в Интернете никаких руководств по этому типу тестирования. Единственный метод, который я могу придумать, - это написать модульные тесты для проверки самих методов, но я также хотел бы протестировать его с клиентом. Например, в прошлом я тестировал REST API, используя JMeter в качестве клиента для отправки запросов и проверки данных ответа. Существует ли метод тестирования API-интерфейсов gRPC с помощью клиента или единственным способом является модульное тестирование?
Как протестировать API gRPC?
Ответы (5)
Что ж, я искал такого клиента, как Postman, потом нашел bloomrpc, который помогает в вызове услуги ГРП. Но я не уверен, что это служит вашей цели, если вы ищете такой инструмент, как jmeter.
Может быть два типа тестирования.
Тестирование только реализации метода 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})
Полный пример кода см. здесь.
init
) и останавливается после завершения всех тестовых случаев.
- person Shettyh; 30.04.2019
Если вы ищете такой инструмент, как Postman, есть также https://kreya.app. С его помощью вы можете вызывать свои службы gRPC и просматривать ответы.
Отказ от ответственности: я являюсь одним из авторов Kreya.
Поскольку вы упомянули, что уже проводили тестирование с помощью JMeter, я предполагаю, что вы ищете внешний тестовый клиент, который может вызывать службу gRPC. Есть несколько, которые вы можете использовать. Общие из них
С помощью этих 4 клиентов вы можете динамически вызывать службы gRPC. Однако, если вы ищете тестовый клиент, который также может выполнять нагрузочное тестирование, вам понадобится Fint.
Вы также можете попробовать этот инструмент командной строки, evans, для тестирования gRPC.