Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/keptn-sandbox/k6-service/
Keptn Service for running K6 as load testing tool.
https://github.com/keptn-sandbox/k6-service/
Last synced: 27 days ago
JSON representation
Keptn Service for running K6 as load testing tool.
- Host: GitHub
- URL: https://github.com/keptn-sandbox/k6-service/
- Owner: keptn-sandbox
- License: mit
- Created: 2022-05-31T22:29:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-08T18:03:20.000Z (about 2 years ago)
- Last Synced: 2024-04-13T21:59:53.225Z (9 months ago)
- Language: Go
- Size: 6.68 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-k6 - k6 for Keptn
- trackawesomelist - k6 for Keptn
README
# Integration service for k6
[K6](https://k6.io/) is an open-source tool widely used for load testing. With Keptn’s Quality gates, we can automate the process of evaluating the results of the test and also monitor them. Keptn already has support for JMeter, Locust, Litmus Chaos, and others. This project will enable users to use K6 for performance testing.## Tutorials
### Performance Testing in Keptn using K6 [Part 1]
In this tutorial we run standard K6 tests using [Job Executor Service](https://github.com/keptn-contrib/job-executor-service) of Keptn. Please find the tutorial [here](./docs/k6-jes-example/README.md).### Using K6 Extension in JES - Prometheus [Part 2]
After running standard K6 in JES, we make use of K6 extensions for writing test metrics to extenal source. We'll use Prometheus remote write K6 extension. Please find the tutorial [here](./docs/k6-prometheus-example/README.md).### Quality Gates Evaluation on Exported Metrics [Part 3]
Once we have K6 tests metrics written in Prometheus, we can use Keptn's Quality Gates evaluation for SLO compliance. Please find the tutorial [here](./docs/k6-prometheus-quality-gate-example/README.md).## Custom Service State
There were two ways of implementing this integration
1. Using Job Executor Service
2. Having a Custom Keptn ServiceWe decided the Job Executor Service will be sufficient to deliver all the features. More information regarding this discussion can be found in this GitHub [issue](https://github.com/keptn-sandbox/k6-service/issues/20).
Altough we decided to go ahead with JES, the template for listening to `sh.keptn.event.test.triggered` CloudEvent and sending `sh.keptn.event.test.started` and `sh.keptn.event.test.finished` CloudEvents. The service could be run using Helm Charts.
## About
This repository contains details about my work in Google Summer of Code 2022.- [Demo (YouTube video)](https://www.youtube.com/watch?v=fGePRAbyjwc)
- [Project Page at GSOC 2022 website](https://summerofcode.withgoogle.com/programs/2022/projects/0xICJhw8)
## License
[MIT](https://github.com/jainammm/keptn-k6-service/blob/main/LICENSE)