{"id":18848729,"url":"https://github.com/nightcodelabs/pretzel","last_synced_at":"2025-06-14T22:38:53.146Z","repository":{"id":52523872,"uuid":"258790123","full_name":"NightCodeLabs/pretzel","owner":"NightCodeLabs","description":"Reuse your existing Java functional tests to build powerful Load \u0026 Performance ones","archived":false,"fork":false,"pushed_at":"2023-03-02T17:28:51.000Z","size":134,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-30T01:44:50.352Z","etag":null,"topics":["api","automation","java","load","locust4j","locustio","performance","pretzel","qa","rest","test","testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NightCodeLabs.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-25T14:03:54.000Z","updated_at":"2023-03-02T17:28:52.000Z","dependencies_parsed_at":"2025-05-23T01:32:49.389Z","dependency_job_id":"33f27d13-e23b-492e-bfdf-e2c7bd3c9fb5","html_url":"https://github.com/NightCodeLabs/pretzel","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/NightCodeLabs/pretzel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightCodeLabs%2Fpretzel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightCodeLabs%2Fpretzel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightCodeLabs%2Fpretzel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightCodeLabs%2Fpretzel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NightCodeLabs","download_url":"https://codeload.github.com/NightCodeLabs/pretzel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightCodeLabs%2Fpretzel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259894060,"owners_count":22928123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","automation","java","load","locust4j","locustio","performance","pretzel","qa","rest","test","testing"],"created_at":"2024-11-08T03:16:58.970Z","updated_at":"2025-06-14T22:38:53.136Z","avatar_url":"https://github.com/NightCodeLabs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pretzel  \n\u003cp align=\"center\"\u003e\n\u003cimg src=\"pretzel.png\" width=\"250\" \u003e\n\u003c/p\u003e\n \n# Purpose\nPretzel is a tool that helps you to reuse existing Functional Tests in popular frameworks like RestAssured to do Load and Performance Tests with Java.  \n\n# Background  \nTeams 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!  \nWe 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.  \nWe have build Pretzel to help us with all of the above.  \n  \n  \n# How to use  \n### Add the Dependency in your pom.xml\n``` \n    \u003cdependency\u003e  \n    \t\u003cgroupId\u003ecom.github.nightcodelabs\u003c/groupId\u003e  \n    \t\u003cartifactId\u003epretzel\u003c/artifactId\u003e  \n    \t\u003cversion\u003e0.0.2\u003c/version\u003e   \n    \u003c/dependency\u003e  \n```  \n\n### Start using Pretzel in your project\n- 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```  \n- In the ```execute``` method, reference the piece of code you want to reuse from your functional tests  \n- In your favorite test framework, call pretzel.doPretzel with the needed parameters  \n- Execute the test, you will find the generated reports in target/pretzel  \n- Initialize the reporting in the ```@before``` of the test execution  \n- Process the report images in the ```@after``` of your test execution  \n\nSince 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.\n  \n### Installing Dependencies  \n#### Windows  \n- Install latest JDK  \n- Install python   \n- Install Visual Studio Code / Build Tools for C++ (Yeah, locustio doesn't really work without these build tools because a weird dependency)      \n- In command line run:  \n ```  \n  $ pip install locustio==0.13.5  \n ```  \n- Add locustio to your env. path  \n- Restart cmd  \n- Install maven\n- In command line run:   \n ```  \n  $ mvn install  \n ``` \n \n#### Linux  \n- Install JDK  \n- Install Python:  \n ```  \n  $ sudo apt install pip \n ```  \n- Install Locustio:  \n ```  \n  $ pip install locustio==0.13.5   \n ```    \n- Add Locustio to env path:  \n```  \n  $ vi  ~/.bash_rc  \n  $ export PATH=$PATH:~/.local/bin\n   ```  \n- restart terminal  \n- Install maven:  \n```  \n  $ sudo apt install maven\n   ```  \n- In command line run:   \n ```  \n  $ mvn install  \n ```   \n\n### Configurable Properties  \nWe offer the possibility to personalize some default configurations.     \nYou only need to create a config.properties file into ```src/main/resources/config```.  \nThe name of the personalizable variables can be found [here](src/main/java/com/github/nightcodelabs/pretzel/helpers/ConfigReader.java).  \n\nMake sure you know what you're doing, otherwise this might break the execution.  \n\n# How to contribute\nWe're super open to contributors. If you have an idea, open an issue, and we'll discuss it.  \nIf you have a solution, fork our repo and submit a PR.  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightcodelabs%2Fpretzel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnightcodelabs%2Fpretzel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightcodelabs%2Fpretzel/lists"}