日本語版READMEはこちら
Gatling Commander is a CLI tool that automates a series of tasks in the execution of load test using Gatling Operator.
Gatling Operator is a Kubernetes Operator for running automated distributed Gatling load test.
By writing load test scenarios in the configuration file, Gatling Commander automatically run load test and record the results.
Gatling Commander automates the following tasks.
- Create Gatling objects for each load test
- Build Gatling image
- Stop load test when result latency exceeds a predefined threshold
- Record Gatling Report and target container metrics for each load test
- Check running load test status
In addition, Gatling Commander allow to have multiple load test scenarios in the configuration file.
After preparing the configuration file, run the gatling-commander
command, this will automatically run all load test and record the results to Google Sheets.
Gatling Commander notify load test finished status to Slack as configured in the configuration file.
Please refer to User Guide about details of each field in the configuration.
Here is an example of how to fill out the configuration file (config.yaml
).
gatlingContextName: gatling-cluster-context-name
imageRepository: gatling-image-stored-repository-url
imagePrefix: gatlinge-image-name-prefix
imageURL: "" # (Optional) specify image url when using pre build gatling container image
baseManifest: config/base_manifest.yaml
gatlingDockerfileDir: gatling
startupTimeoutSec: 1800 # 30min
execTimeoutSec: 10800 # 3h
slackConfig:
webhookURL: slack-webhook-url
mentionText: <@targetMemberID>
services:
- name: sample-service
spreadsheetID: sample-sheets-id
failFast: false
targetPercentile: 99 # (%ile)
targetLatency: 500 # (ms)
targetPodConfig:
contextName: target-pod-context-name
namespace: sample-namespace
labelKey: run
labelValue: sample-api
containerName: sample-api
scenarioSpecs:
- name: case-1
subName: 10rps
testScenarioSpec:
simulationClass: SampleSimulation
parallelism: 1
env:
- name: ENV
value: "dev"
- name: CONCURRENCY
value: "10"
- name: DURATION
value: "180"
- name: case-2
subName: 20rps
testScenarioSpec:
simulationClass: SampleSimulation
parallelism: 1
env:
- name: ENV
value: "dev"
- name: CONCURRENCY
value: "20"
- name: DURATION
value: "180"
Gatling Commander is intended for use in load test with the Gatling Operator.
When using Gatling Commander, please create an environment in which the Gatling Operator can be used first. Information about how to setup Gatling Operator environment, please refer to the Gatling Operator Quick Start Guide.
Please make a GitHub issue or pull request to help us improve this CLI. We expect contributors to comply with the Contributor Covenant.
Gatling Commander is available as open source under the terms of the MIT License. For more details, see the LICENSE file.