Skip to content

Commit a14282a

Browse files
authored
Proposal: Load testing with locust (#4955)
Signed-off-by: DongYoung Kim <[email protected]>
1 parent ac30fbb commit a14282a

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
218 KB
Loading

proposals/locust-load-test.md

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
| title | authors | creation-date | last-updated |
2+
|-------|------------------------------------------|---------------|--------------|
3+
| Adding a New Chaos Fault - Load Testing with locust | [@kwx4957](https://github.com/kwx4957) | 2024-11-21 | 2024-11-21 |
4+
5+
# Adding a New Chaos Fault - Load Testing with locust
6+
7+
- [Summary](#summary)
8+
- [Motivation](#motivation)
9+
- [Goals](#goals)
10+
- [Non-Goals](#non-goals)
11+
- [Proposal](#proposal)
12+
- [Use Cases](#use-cases)
13+
- [Implementation Details](#implementation-details)
14+
- [Risks and Mitigations](#risks-and-mitigations)
15+
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
16+
- [Drawbacks](#drawbacks)
17+
- [Alternatives](#alternatives)
18+
- [References](#references)
19+
20+
## Summary
21+
[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.
22+
23+
## Motivation
24+
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
25+
) and [plugins](https://github.com/SvenskaSpel/locust-plugins?tab=readme-ov-file#users
26+
). Having a wide range of choices when it comes to choosing a load test will help users a lot.
27+
28+
29+
### Goals
30+
31+
- Adding a 'locust' Chaos Fault to [Litmus ChaosHub](https://hub.litmuschaos.io/)
32+
- Fixing [litmus-go](https://github.com/litmuschaos/litmus-go) and [chaos-charts](https://github.com/litmuschaos/chaos-charts) codes
33+
34+
### Non-Goals
35+
36+
## Proposal
37+
38+
### Use Cases
39+
40+
Detail the things that people will be able to do if this is `implemented`.
41+
42+
#### Use case 1
43+
44+
### Implementation Details
45+
46+
This is a Locust Chaos Fault Scenario.
47+
48+
![locust-fault-scenario](./images/locust-fault-scenario.png)
49+
50+
1. Add scenario to the litmus-go repository
51+
2. Add a new Chaos Fault to the Litmus ChaosHub
52+
53+
## Risks and Mitigations
54+
55+
We need to grant proper RBAC permissions to the runner container. Granting override permissions may affect other systems.
56+
57+
## Upgrade / Downgrade Strategy
58+
59+
## Drawbacks
60+
61+
## Alternatives
62+
63+
## References
64+
65+
- [locust](https://locust.io/)

0 commit comments

Comments
 (0)