Does k6 gRPC support testing gRPC services?

I’m looking for load/soak testing tool which can scale horizontally (preferably in k8s clusters).

I know that k6 distribution support is not there yet, but I’m thinking about just taking advantage of running a bunch of k6 independent instances using a k8s Job controller and call it a day.

I like k6 so far but haven’t seen any references about using it for testing gRPC services which is one of the main protocols we use for services and, looking forward, we are moving on to migrate most plain-HTTP-based services to gRPC.

I know that we might be able to use k6 HTTP/2 support for testing gRPC services but, that would miss a lot of opportunities for testing specific gRPC features and use gRPC-related abstractions.

Sorry, k6 doesn’t support gRPC load testing yet :disappointed: We plan to add support for it soon, but I can’t give you a time estimate yet when it will be available… You can follow Support for gRPC protocol · Issue #441 · grafana/k6 · GitHub for updates

@ned thanks for your response!

I would be happy to help in moving the feature forward if I can. Please tell me how can I help.

I’ve described the current rough plan in that issue, in Support for gRPC protocol · Issue #441 · grafana/k6 · GitHub and Support for gRPC protocol · Issue #441 · grafana/k6 · GitHub. We’ll accept a quality gRPC pull request if someone implements one before we can. If you decide to tackle that, please just discuss your implementation approach in the issue first, before spending a ton of time on it.

As a stepping stone, soon after we release k6 v0.27.0 (hopefully today), we plan to add support for plugins in k6 (https://github.com/loadimpact/k6/pull/1396). So, it’s probably a good idea to first have a gRPC PoC as a k6 plugin, and merge it in the core after we’ve polished the rough edges.

1 Like

Hey,

k6 now supports unary gRPC communication as of v0.29.0! :partying_face:
For an introduction on how to test gRPC servers using k6, see this just-published blog article:

Best,
Simme