My company builds simple Java APIs using spring boot. We need to performance test these APIs so that they can be called some hundreds of times a second. In some cases more, some less. Some of these applications store state, so we must perform requests in a certain order for them to be realistic. We also in some cases need to configure settings like connection pooling, timeouts, etc in order to simulate the systems that will be calling our APIs.
Tools like JMeter don’t necessarily have good support for this configuration, and it’s not easy to have to manually alter your scenarios each time there’s a change in your API. Plus, we don’t really like defining scenarios in XML.
We have created an internal library for performance testing that an application can include in a test module. This library allows you to define the request order with great detail, as well as low level client settings like I mentioned.
An architect has brought up that there must be better tools for this, but we haven’t been able to find any. I have begun to think about this question a bit, but haven’t found much from searching online. Others must experience this problem, and our company has had issues doing great performance testing in the past.
So my question for you crustaceans is: what is the best practice? What do you use? Please talk about your setup in some detail as I’d like to know others perspective on this problem.