It's been a while since the last update post in july 2021, not that we haven't updated OctoPerf since then but the additions we've made are not easy to share in a blog. Allow me to take an example.
The thing that kept us the most busy over the years is finding the perfect way to import a JMeter project into our data model. We need to do this in order to:
- Allow you to manipulate your virtual users in our interface even when they come from JMeter,
- Execute each Threadgroup/Virtual user in a separate docker container to make our runtime resilient and scalable (this allows us to predict resource consumption better and allocate machines accordingly),
- Offer a configurable report with filters instead of a static HTML.
But we must make sure to maintain the same behavior for all functionalities. And at the same time we must avoid negative impacts on our non-JMeter users (like added UI complexity, or regressions). That seems simple enough at first glance but it gets harder when you consider that JMeter allows you to put any configuration anywhere but with a different scope. For instance you can have header managers configured this way:
Once imported in OctoPerf each Threadgroup will be a distinct Virtual User, and we need to consider carefully what to do with these headers, we must find a way to preserve the same behavior in OctoPerf.