keycloak-benchmark icon indicating copy to clipboard operation
keycloak-benchmark copied to clipboard

Keycloak Benchmark

= Keycloak Benchmark

image:https://github.com/keycloak/keycloak-benchmark/actions/workflows/build.yml/badge.svg[Java CI with Maven,link=https://github.com/keycloak/keycloak-benchmark/actions/workflows/build.yml] image:https://github.com/keycloak/keycloak-benchmark/actions/workflows/docs-pages.yml/badge.svg[Documentation,link=https://github.com/keycloak/keycloak-benchmark/actions/workflows/docs-pages.yml] image:https://github.com/keycloak/keycloak-benchmark/actions/workflows/provision-minikube.yml/badge.svg[minikube,link=https://github.com/keycloak/keycloak-benchmark/actions/workflows/provision-minikube.yml]

The https://github.com/keycloak/keycloak-benchmark[Keycloak Benchmark repository] contains the necessary tools to run performance tests of a https://www.keycloak.org/[Keycloak server].

It has the following goals:

. Setup Keycloak for reproducible results. . Run load tests against any Keycloak instance. . Use an observability stack to analyze test runs.

The repository has multiple modules that can be used together or separately to achieve this:

  • The benchmark module contains load tests based on Gatling.

  • The provisioning module contains a more advanced Kubernetes setup based on minikube, and docker-compose scripts for a simpler setup. The setup for minikube contains a Grafana based observability stack while the docker-compose based setup doesn't.

  • The dataset module contains a Keycloak add-on that can create entities in a Keycloak data store to prepare it for a load test.

== Further reading

Read more on how to use it on https://www.keycloak.org/keycloak-benchmark/