Pretzel is a tool that helps you to reuse existing Functional Tests in popular frameworks like RestAssured to do Load and Performance Tests with Java.
Teams use BDD to drive development based on the user behaviour, but stories never go beyond a single user, defects are found very late within development or even in production and there are no service level agreements, only actual user behaviour!
We need an easy, reusable way to tackle this, which would enable our development teams to drive load and performance testing into their day-to-day activities: from requirements gathering, to test automation as well as having part of the delivery pipeline, reusing the existing Java, RestAssured and Cucumber tests.
We have build Pretzel to help us with all of the above.
<dependency>
<groupId>com.github.nightcodelabs</groupId>
<artifactId>pretzel</artifactId>
<version>0.0.2</version>
</dependency>
- Create a class that will be used to execute a load and performance test in
src/main/java/pretzel
extendingcom.github.nightcodelabs.pretzel.performance.Task
- In the
execute
method, reference the piece of code you want to reuse from your functional tests - In your favorite test framework, call pretzel.doPretzel with the needed parameters
- Execute the test, you will find the generated reports in target/pretzel
- Initialize the reporting in the
@before
of the test execution - Process the report images in the
@after
of your test execution
Since we've built Pretzel with the idea to use it with Cucumber in BDD fashion, we've built this project example to guide you.
- Install latest JDK
- Install python
- Install Visual Studio Code / Build Tools for C++ (Yeah, locustio doesn't really work without these build tools because a weird dependency)
- In command line run:
$ pip install locustio==0.13.5
- Add locustio to your env. path
- Restart cmd
- Install maven
- In command line run:
$ mvn install
- Install JDK
- Install Python:
$ sudo apt install pip
- Install Locustio:
$ pip install locustio==0.13.5
- Add Locustio to env path:
$ vi ~/.bash_rc
$ export PATH=$PATH:~/.local/bin
- restart terminal
- Install maven:
$ sudo apt install maven
- In command line run:
$ mvn install
We offer the possibility to personalize some default configurations.
You only need to create a config.properties file into src/main/resources/config
.
The name of the personalizable variables can be found here.
Make sure you know what you're doing, otherwise this might break the execution.
We're super open to contributors. If you have an idea, open an issue, and we'll discuss it.
If you have a solution, fork our repo and submit a PR.