Adding core support for RPC based load testing in jmeter
Use case
Addressing issues #6415 , #6404 , #6313 , it seems like jmeter does not provide core support for testing servers using RPC or any other libraries like gRPC Most of the microservices are migrating to RPC based communication protocols as it is lightweight and comparatively less costly for inter-server communication. This makes me bring down to these points where we might need load testing for servers based on rpc communication protocols:
- Currently there are only third party workarounds that allow load testing for rpc communication types, which is inefficient.
- There's a need for native rpc sampler, just like http sampler exists.
and actually many more, which we can mention if you choose to have it as an enhancement.
Possible solution
The possible solution will highly depend on the architecture and planning on the issue before implementing a code solution. So it is difficult to mention it right away here, but will surely do once I've an idea of the final planning and architecture for this.
Possible workarounds
- using JSR223 with Groovy or a Python script to capture responses or measure latency
- using
grpcurlin shell samplers - using third party tools like gatling where we can initiate tests separately and use jmeter to trigger them using OS process samplers
JMeter Version
5.6.3
Java Version
openjdk version "23.0.1" 2024-10-15
OS Version
Microsoft Windows [Version 10.0.26100.3037]
using JSR223 with Groovy or a Python script to capture responses or measure latency -> I doubt if the measurement is correct
using grpcurl in shell samplers -> if you were to try with plenty of users, you will not like how it slows down your machine
using third party tools like gatling where we can initiate tests separately and use jmeter to trigger them using OS process samplers -> Just use Gatling (phiSgr library) or k6 (official support) directly, why would you call them through Jmeter ?