zooz/predator

By zooz

Updated over 1 year ago

Distributed performance testing platform for APIs.

Image
0

500K+

zooz/predator repository overview

Predator

Distributed performance testing platform for APIs.

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.

Installation   |   Site   |   Documentation   |   API Reference |   API Tests Examples

Features

  • Distributed load: Predator supports an unlimited number of load generators that produce multiple load runners concurrently.

  • Real time reports: Predator aggregates all concurrent runs into a single 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 platforms and can manage the load generators lifecycles by itself.

  • One click installation: Predator can be installed with just one click in Kubernetes and DC/OS, or on any other machine running Docker.

  • Supports 5 Different databases: Predator provides out-of-the box functionality for persisting data in Cassandra, Postgres, MySQL, MSSQL and SQLITE.

  • Scheduled jobs: Predator can run recurring tests using cron expressions.

  • 3rd partry metrics: Predator comes integrated with Prometheus and Influx. Simply configure it through the predator REST API or using the UI.

  • Rich UI: Predator offers a rich UI along with a powerful REST API.

  • Based on artillery.io: Predator uses artillery as its load engine to fire the requests. The schema for creating tests via the Predator REST API is based on the artillery schema.

Running in docker

Without persisted storage:

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

With persisted storage:

docker run -d -e SQLITE_STORAGE=db/predator -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 -v /tmp/predator:/usr/db zooz/predator

where $MACHINE_IP is the local ip address of your machine (not localhost, but actual ip address - it is your local network address).

Tag summary

Content type

Image

Digest

sha256:28fa3e9a4

Size

134 MB

Last updated

over 1 year ago

Requires Docker Desktop 4.37.1 or later.