PerfCake is a lightweight performance testing tool and a load generator with the aim to be minimalistic, easy to use, provide stable results, have minimum influence on the measured system, be platform independent, use component design, allow high throughput.
PerfCake has a component design which means that you can build up your own tests from some basic building blocks. This allows a high flexibility in configuration and the components can be reused in different tests.
PerfCake has a pluggable architecture with many supported interfaces/protocols out of the box (HTTP, REST, JMS, JDBC, SOAP, socket, file etc.). To cover some complex scenarios, PerfCake can use different procols to send requests and to receive responses (e.g. send via JMS and receive via HTTP). If you need support for another interface ask our community or provide the implementation. It is really easy!
Except for interfaces/protocols, PerfCake can be used for any type of performance testing including load testing, stress testing, endurance/soak testing, scalability testing or benchmarking. PerfCake is capable to automatically find the sweet spot of a system under test in a relatively short time with minimal efforts. Compared to other tools, PerfCake is one of the most performant and reliable in the load generation.
PerfCake supports various means of reporting the measured values including average throughput (possibly over a time window), memory consumption of the target JVM with linear regression analysis to see if there is a memory leak and others. There are various output formats supported. Except for console or a log file, we support CSV that can be imported as a spreadsheet, and it is possible to generate live charts that can be viewed on the fly during a running test. PerfCake can store results in the PerfRepo result repository for easy comparison to previous measurements.
There are validators that can validate the response to see if the system under test operates correctly. With validators you can also use PerfCake to write an end-to-end test of your system.
To run PerfCake, you just need to supply a so called scenario. This is an XML-based recipe file that describes the building blocks of the performance test. The scenario can be included into you application lifecycle using Maven, or it can be directly invoked from a test via PerfCake fluent API, or as a standalone application from a command line. We understand the need for an IDE plugin and this is one of our short term goals.
We hope to make your performance testing a real piece of cake.
Where to go next? Continue with one of the links below
We strive to keep PerfCake a bleeding edge technology for performance testing. This requires a continuous improvement and enhancement. Following are a few items from our priority list. If you want to work on any of theese, we would be very happy to welcome you in our community.
From a long term perspective, we would like to see PerfCake being used as a standard performance measurement tool. We believe to achieve this through its minimalistic component design, stable results, and easy usage.