Predator manages the entire lifecycle of stress-testing servers, from creating performance tests, to running these tests on a scheduled and on-demand basis, and finally viewing the test results in a highly informative and live report.
It has a simple, one-click installation, built with support for Kubernetes, DC/OS and Docker Engine, and can persist the created performance tests and their reports in 5 different databases. It also supports running distributed load out of the box. Bootstrapped with a user-friendly UI alongside a simple REST API, Predator helps developers simplify the performance testing regime.
- Distributed load: Predator supports unlimited number of load generators that produce load concurrently.
- Real time reports: Predator aggregate all concurrent runs into one beautiful report in real time (latency, rps, status codes and more)
- Built for the cloud: Predator is built to take advantage of Kubernetes and DC/OS. it's integrated with those platform and is able to manage the load generators life cycles by it self.
- One click installation: Installed via one click in Kubernetes, DC/OS, or any other machine that has Docker.
- Supports 5 Different databases: Predator can adjust it self to persist data in Cassandra, Postgres, MySQL, MSSQL and SQLITE out of the box.
- Scheduled jobs: Run any tests in recurring mode by cron expression.
- 3rd partry metrics: Predator integrated with Prometheus and Influx, just configure it via the config endpoint or the ui.
- Rich UI: Predator offers rich UI side by side powerful REST API.
- Based on artilliery.io: Predator uses artillery as its load engine to fire the requests. The schema of creating tests via api is based on artillery schema.
Predator is designed to seamlessly deploy into your Kubernetes cluster. Install Predator from the Helm Hub
Predator is included in Mesosphere Universe. Please refer to https://github.com/dcos/examples/tree/master/predator for a quick start guide and examples for installing the package.
docker run -d -e JOB_PLATFORM=DOCKER -e INTERNAL_ADDRESS=http://$MACHINE_IP:80/v1 -p 80:80 --name predator -v /var/run/docker.sock:/var/run/docker.sock zooz/predator
where $MACHINE_IP=local ip address of your machine
Predator runs using Docker. In order to run Predator locally, clone this repository and then run the following command:
runPredatorLocal.sh
or refer to the Docker instructions above.
Run npm test
in order to run tests in your local machine. The script runs the following tests:
- lint
- unit-tests
- integration-tests
The path for accessing the Predator UI is: http://localhost/ui (in the case that Predator is running locally under port 80)
In case Predator is not running under the root domain, (for example, running under http://your.domain.com/example-path) in order to access the UI follow the below steps:
docker build --build-arg BUCKET_PATH=example-path . -t predator
- Deploy the tagged docker image to your preferred platform
- Access the Predator UI at http://your.domain.com/example-path/ui
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For a complete list of Docker images of this project please visit our docker hub repository.
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details