An open API service indexing awesome lists of open source software.

https://github.com/nightcodelabs/pretzel

Reuse your existing Java functional tests to build powerful Load & Performance ones
https://github.com/nightcodelabs/pretzel

api automation java load locust4j locustio performance pretzel qa rest test testing

Last synced: about 1 year ago
JSON representation

Reuse your existing Java functional tests to build powerful Load & Performance ones

Awesome Lists containing this project

README

          

# Pretzel





# Purpose
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.

# Background
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.


# How to use
### Add the Dependency in your pom.xml
```

com.github.nightcodelabs
pretzel
0.0.2

```

### Start using Pretzel in your project
- Create a class that will be used to execute a load and performance test in ```src/main/java/pretzel``` extending ```com.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](https://github.com/NightCodeLabs/pretzel-example) to guide you.

### Installing Dependencies
#### Windows
- 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
```

#### Linux
- 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
```

### Configurable Properties
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](src/main/java/com/github/nightcodelabs/pretzel/helpers/ConfigReader.java).

Make sure you know what you're doing, otherwise this might break the execution.

# How to contribute
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.