Hello group,
I am new to this group, and new to Gatling (using version 2.1.7 at the moment).
I want to use Gatling to perform a continuous load test on a Zookeeper cluster, simulating hundreds of connected clients that periodically execute requests (like querying the zookeeper content, adding/removing ephemeral nodes).
At the moment I have a test scenario running, but it is creating a new connection for each request. And that is not simulating the actual production usage accurately.
What is the proper way to model the following behaviour in Gatling (if at all possible):
- Initialize the Zookeeper cluster (pre-load it with data)
- Spin up 200 client connections that remain active and are reused
- For 6 hours have these 200 clients perform requests to Zookeeper every couple of minutes
- Preferably I create several types of clients (i.e. one or two 'heavy hitters', a bunch of 'frequent users' and a large group that hardly does anything except keeping the connection active)
- Stop/close the clients
- Finish the testrun
Should I create a scenario per client, or per type of client? How would I translate the gatling load injection to client actions?
I have created a plugin setup similar to the gatling-kafka plugin available on Github, but struggle with the '1 request == 1 new connection' of that setup. The connection is made at execution time (in the executeOrFail implementation).
Apologies for the rather abstract question, any pointers to documentation that explains how this kind of simulation is possible is appreciated.
I appreciate that Gatling is primarily geared to HTTP load testing, which is a rather 'connection-less' protocol, so support for my requirements may not be easy.
Regards,
Jean-Marc.