This README will evolve as the development of testing occurs.
-
Github-Actions job runner is a 2core 7Gig VM so that limits what/how we test https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
- Need to eventually get our own beefy runner, with enough cpu/memory to handle stress level load
- We are grateful to have got a free account on K6.io, as part of their OSS Program. But it is limited to 600 tests per year.
- Testplan discussion and coding is needed for more practical real-world testing reports
- An issue was created for performance tests, for the ingress-nginx-controller builds, kubernetes#8033 .
-
A step by step guide to using https://k6.io with GithubActions is here https://k6.io/blog/load-testing-using-github-actions/
-
The CI launches a ubuntu environment and uses
make dev-env
to create a kind cluster. The popular https://httpbin.org api docker image is used to create a workload -
We don't want the test to block CI so this syntax from Github-Actions creates a button to run the test
-
The button looks like this (the
Run Workflow
dropdown at bottom right of screenshot)
-
-
Obtained a freenom domain
ingress-nginx-controller.ga
-
Procured a letsencrypt wildcard certificate for
*.ingress-nginx-controller.ga
-
Plan is to run tests locally on a kind cluster, in the CI pipeline, but push results to K6-cloud
-
Pushing and visualization on K6 cloud is as simple as executing
k6 run -o cloud test.js
-
Currently there is a personal account in trial period (50 tests or 1 year limit) bing used
-
Pushing test-results from K6 tests on laptop, to K6-cloud personal trial account on K6-Cloud, to see what the graphs look like
-
-
Before merging the PR, the testing is being done on personal Github project with exact same code as this PR here https://github.com/longwuyuan/k6-loadtest-example/runs/6545706269?check_suite_focus=true