VOOZH about

URL: https://thenewstack.io/simple-load-testing-with-github-actions/

⇱ Simple Load Testing with GitHub Actions - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2022-03-16 08:07:15
Simple Load Testing with GitHub Actions
contributed,sponsor-ibm-cloud,sponsored,sponsored-post-contributed,
Software Testing

Simple Load Testing with GitHub Actions

Mar 16th, 2022 8:07am by Michael Kalantar
👁 Featued image for: Simple Load Testing with GitHub Actions
Feature image via Pixabay
IBM Cloud sponsored this post.
Michael Kalantar
Michael is a senior software engineer who has contributed to the design and development of a number of  scalable distributed and cloud-based enterprise systems. He is a co-founder of the Iter8 project.

In this article, we show how to use GitHub Actions to load-test, benchmark and validate HTTP and gRPC services with service-level objectives (SLOs).

When developing a new version of an HTTP or gRPC service, it is desirable to benchmark its performance and to validate that it satisfies desired service-level objectives (SLOs) before upgrading the current version. We describe a no-code approach based on GitHub Actions that can be used to automate such testing at any point in a continuous integration/continuous delivery (CI/CD) pipeline. For example, at build time it can be used to validate the new version as soon as possible. Alternatively, at deployment time it can be used to validate SLOs in the production environment.

HTTP Load Testing with the Iter8 GitHub Action

The Iter8 GitHub Action, iter8-tools/iter8-action@v1, enables automated Iter8 experiments in a GitHub workflow. To use the action, specify an experiment chart and its configuration via a Helm valuesFile. No programming is necessary — all configuration is declarative. Typical use is to define the test configuration in a values.yaml file and call the Iter8 action passing the configuration. For example, to run a load test against an HTTP service, use the built-in load-test-http chart. For example:

👁 Image

Example use of Iter8 action to run a load test against HTTP endpoint http://localhost:8080 and validate three service-level objectives: Error rate must be 0, mean latency must be below 100 milliseconds and the 97.5th percentile latency must be below 200 milliseconds.

All available options for the load-test-http experiment chart are documented in the chart readme.

Additional examples of the Iter8 action for testing HTTP services can be found in the Iter8 end-to-end test cases. To run these test cases:

  1. Fork the Iter8 docs repo: https://github.com/iter8-tools/docs to your organization, myorg.
  2. If necessary, enable workflows on your forked repository (by navigating to https://github.com/myorg/docs/actions).
  3. Select the workflow end-to-end tests.
  4. Run the workflow using the Run workflow button.
  5. When the workflow is completed, you can inspect the test definition (`test.yaml`) and logs for the load tests against a local httpbin service, `local httpbin tests`.

Benchmarking

When the Iter8 action executes, it logs a list of benchmarks that can be inspected later. A sample benchmarking report is:

👁 Image

SLO Validation

By default, the Iter8 action validates any specified SLOs and the action succeeds only if the SLOs are validated. In this way, a workflow using this action can be certain that it is safe to promote the new service. However, if the goal is only to benchmark the service, the optional flag validateSLOs can be set to false. In this case, the action will not validate SLOs and will succeed when the experiment completes.

Cut complexity, fuel growth. IBM automation transforms tangled IT stacks into intelligent, streamlined systems. By infusing AI into integration, observability, and identity, leaders gain agility, resilience, and confidence to scale innovation without the drag of inefficiency.
Learn More
Hear more from our sponsor

gRPC Load Testing with the Iter8 GitHub Action

gRPC services can be tested using the built-in load-test-grpc chart. The Iter8 end-to-end test cases contain an example. Run as described above, but inspect the logs for `local grpc tests`. The full range of configuration options for this chart is documented in the chart readme for the chart.

Conclusion

The Iter8 GitHub action simplifies the execution of performance testing for HTTP and gRPC services. Configuration is declarative; no programming is necessary. The action generates and applies load to a target service. It measures and records performance metrics that are used to benchmark the service and to validate desired SLOs. In a GitHub workflow, it can be used to ensure that new versions are promoted only when it is safe to do so.

IBM Cloud is ready for any company that needs to transform with speed but can’t compromise on mission-critical workloads or security and compliance requirements to meet enterprise challenges. Cloud with confidence with the IBM Cloud.
Learn More
The latest from IBM Cloud
TRENDING STORIES
Michael is a senior software engineer who has contributed to the design and development of a number of scalable distributed and cloud-based enterprise systems. He is a co-founder of the Iter8 project.
Read more from Michael Kalantar
IBM Cloud sponsored this post.
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.