Klocust is a command-line tool for managing Locust distributed load testing on Kubernetes.
- kubernetes version 1.16 or higher
- kubeconfig for connect to your k8s cluster
- Ingress Controller
exposes your locust cluster to outside of the k8s cluster. (internal or internet-facing) - ExternalDNS
create(update) and delete domain for your locust cluster automatically.
$ brew tap DevopsArtFactory/devopsart
$ brew update
$ brew install klocust
$ klocust version
0.0.1
- See here on how to build klocust CLI from source.
echo 'source <(kubectl completion bash)' >>~/.bashrc
or
echo 'source <(kubectl completion zsh)' >>~/.zsh
- Display all of Locust clusters
$ klocust list
>>> 1 locust deployments in loadtest namespace. (PREFIX: locust-main-)
+-------+---------------------+-------+------------+-----------+------+
| NAME | DEPLOYMENT | READY | UP-TO-DATE | AVAILABLE | AGE |
+-------+---------------------+-------+------------+-----------+------+
| hello | locust-main-hello | 1/1 | 1 | 1 | 9m5s |
+-------+---------------------+-------+------------+-----------+------+
- Create config & locust files before applying. (ex name: hello)
$ klocust init hello
- Update config & locust files what you need. (ex name: hello)
$ vi hello-klocust.yaml
$ vi hello-locustfile.py
- If you want test locust in your local environments
$ docker run -p 8089:8089 -v $PWD:/mnt/locust locustio/locust -f /mnt/locust/hello-locustfile.py
or
$ pip3 install locust
$ locust -f hello-locustfile.py
- Create or Update locust cluster with config & locust files. (ex name: hello)
$ klocust apply hello
- Connect to your locust cluster and do load testing.
(ex name: hello)
$ open https://locust-hello.{your domain}
- Delete locust cluster (ex name: hello)
$ klocust delete hello
- Check CONTRIBUTING.md