st-tech / gatling-commander

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gatling Commander

日本語版READMEはこちら

What is Gatling Commander ?

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.

Features

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"

Requirements

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.

Quick Start

Documentations

Contributing

Please make a GitHub issue or pull request to help us improve this CLI. We expect contributors to comply with the Contributor Covenant.

License

Gatling Commander is available as open source under the terms of the MIT License. For more details, see the LICENSE file.

About

License:MIT License


Languages

Language:Go 98.0%Language:Dockerfile 1.2%Language:Scala 0.8%