asbubam / klocust

A command-line tool for managing Locust distributed load testing on Kubernetes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

klocust

Klocust is a command-line tool for managing Locust distributed load testing on Kubernetes.

Installation

Required

  • kubernetes version 1.16 or higher
  • kubeconfig for connect to your k8s cluster

Recommend

  • 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.

Install klocust binary

$ brew tap DevopsArtFactory/devopsart
$ brew update
$ brew install klocust 
$ klocust version
0.0.1

Build from source

shell autocompletion for bash/zsh

echo 'source <(kubectl completion bash)' >>~/.bashrc
or
echo 'source <(kubectl completion zsh)' >>~/.zsh

Usages

klocust list

  • 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 |
+-------+---------------------+-------+------------+-----------+------+

klocust init

  • Create config & locust files before applying. (ex name: hello)
$ klocust init hello

Update config & locust files

  • 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

klocust apply

  • 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}

klocust delete

  • Delete locust cluster (ex name: hello)
$ klocust delete hello

Contribution Guide

About

A command-line tool for managing Locust distributed load testing on Kubernetes.

License:Apache License 2.0


Languages

Language:Go 68.5%Language:Shell 14.3%Language:Python 9.3%Language:Makefile 5.1%Language:Dockerfile 2.8%