Skip to content

Commit

Permalink
Proposal: Load testing with locust (#4955)
Browse files Browse the repository at this point in the history
Signed-off-by: DongYoung Kim <[email protected]>
  • Loading branch information
kwx4957 authored Dec 20, 2024
1 parent ac30fbb commit a14282a
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
Binary file added proposals/images/locust-fault-scenario.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 65 additions & 0 deletions proposals/locust-load-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
| title | authors | creation-date | last-updated |
|-------|------------------------------------------|---------------|--------------|
| Adding a New Chaos Fault - Load Testing with locust | [@kwx4957](https://github.com/kwx4957) | 2024-11-21 | 2024-11-21 |

# Adding a New Chaos Fault - Load Testing with locust

- [Summary](#summary)
- [Motivation](#motivation)
- [Goals](#goals)
- [Non-Goals](#non-goals)
- [Proposal](#proposal)
- [Use Cases](#use-cases)
- [Implementation Details](#implementation-details)
- [Risks and Mitigations](#risks-and-mitigations)
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
- [Drawbacks](#drawbacks)
- [Alternatives](#alternatives)
- [References](#references)

## Summary
[locust](https://locust.io/) is an open-source load testing. LitmuChaos already supports k6 load testing, but only for the JavaScript language. On the other hand, locust supports writing scripts for Python code, giving users a wider choice.

## Motivation
Locust is a load testing tool that supports Python code. It supports various [protocols (HTTP, GRPC)](https://docs.locust.io/en/stable/testing-other-systems.html
) and [plugins](https://github.com/SvenskaSpel/locust-plugins?tab=readme-ov-file#users
). Having a wide range of choices when it comes to choosing a load test will help users a lot.


### Goals

- Adding a 'locust' Chaos Fault to [Litmus ChaosHub](https://hub.litmuschaos.io/)
- Fixing [litmus-go](https://github.com/litmuschaos/litmus-go) and [chaos-charts](https://github.com/litmuschaos/chaos-charts) codes

### Non-Goals

## Proposal

### Use Cases

Detail the things that people will be able to do if this is `implemented`.

#### Use case 1

### Implementation Details

This is a Locust Chaos Fault Scenario.

![locust-fault-scenario](./images/locust-fault-scenario.png)

1. Add scenario to the litmus-go repository
2. Add a new Chaos Fault to the Litmus ChaosHub

## Risks and Mitigations

We need to grant proper RBAC permissions to the runner container. Granting override permissions may affect other systems.

## Upgrade / Downgrade Strategy

## Drawbacks

## Alternatives

## References

- [locust](https://locust.io/)

0 comments on commit a14282a

Please sign in to comment.