org.keycloak.testsuite
performance
3.4.1.Final-SNAPSHOT
../pom.xml
4.0.0
performance-tests
Keycloak Performance TestSuite - Tests
docker-compose.yml
keycloak
http://localhost:8080/auth
jdbc:mariadb://keycloak:keycloak@localhost:3306/keycloak
-Xms64m -Xmx2g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m
500
500
2
16
10
100
true
100
-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m
500
2
16
1
2-3
2
3
0
2g
2g
-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC
default
1
1.8
1.8
2.11.7
2.1.7
2.2.1
3.2.2
3.3.0.Final
keycloak.DefaultSimulation
true
org.keycloak
keycloak-adapter-core
org.keycloak
keycloak-adapter-spi
org.keycloak
keycloak-core
org.keycloak
keycloak-common
com.fasterxml.jackson.core
jackson-core
com.fasterxml.jackson.core
jackson-databind
org.keycloak
keycloak-admin-client
org.jboss.spec.javax.ws.rs
jboss-jaxrs-api_2.0_spec
org.jboss.logging
jboss-logging
org.jboss.resteasy
resteasy-jaxrs
org.jboss.resteasy
resteasy-client
org.jboss.resteasy
resteasy-jackson2-provider
org.apache.httpcomponents
httpclient
org.scala-lang
scala-library
${scala.version}
io.gatling.highcharts
gatling-charts-highcharts
${gatling.version}
src/test/resources
true
net.alchim31.maven
scala-maven-plugin
${scala-maven-plugin.version}
add-source
add-source
compile
compile
testCompile
-target:jvm-1.8
-deprecation
-feature
-unchecked
-language:implicitConversions
-language:postfixOps
io.gatling
gatling-maven-plugin
${gatling-plugin.version}
${project.build.testOutputDirectory}
${gatling.skip.run}
true
true
-DnumOfRealms=${numOfRealms}
-DusersPerRealm=${usersPerRealm}
-DclientsPerRealm=${clientsPerRealm}
-DrealmRoles=${realmRoles}
-DrealmRolesPerUser=${realmRolesPerUser}
-DclientRolesPerUser=${clientRolesPerUser}
-DclientRolesPerClient=${clientRolesPerClient}
-DhashIterations=${hashIterations}
integration-test
integration-test
org.codehaus.mojo
properties-maven-plugin
1.0.0
read-dataset-properties
initialize
read-project-properties
${project.basedir}/datasets/${dataset}.properties
initialize-dataset-properties
dataset
org.codehaus.mojo
properties-maven-plugin
1.0.0
initialize-dataset-properties
initialize
read-project-properties
${project.basedir}/datasets/${dataset}.properties
cluster
docker-compose-cluster.yml
1
--scale keycloak=${keycloak.scale}
http://localhost:8080/auth
crossdc
docker-compose-crossdc.yml
1
1
--scale keycloak_dc1=${keycloak.dc1.scale} --scale keycloak_dc2=${keycloak.dc2.scale}
keycloak_dc1 keycloak_dc2
http://localhost:8081/auth http://localhost:8082/auth
provision
org.codehaus.mojo
exec-maven-plugin
docker-compose-up
pre-integration-test
exec
${project.basedir}/..
docker-compose
-f ${compose.file} up -d --build ${compose.up.params}
${project.version}
${keycloak.docker.cpuset}
${keycloak.dc1.docker.cpuset}
${keycloak.dc2.docker.cpuset}
${keycloak.docker.memlimit}
${db.docker.cpuset}
${db.docker.memlimit}
${keycloak.jvm.memory}
${keycloak.http.max-connections}
${keycloak.ajp.max-connections}
${keycloak.worker.io-threads}
${keycloak.worker.task-max-threads}
${keycloak.ds.min-pool-size}
${keycloak.ds.max-pool-size}
${keycloak.ds.pool-prefill}
${keycloak.ds.ps-cache-size}
${keycloak-lb.jvm.memory}
${keycloak-lb.http.max-connections}
${keycloak-lb.worker.io-threads}
${keycloak-lb.worker.task-max-threads}
${infinispan.jvm.memory}
healthcheck
pre-integration-test
exec
./healthcheck.sh
${project.basedir}/..
${keycloak.server.uris}
maven-antrun-plugin
write-provisioned-system-properties
pre-integration-test
run
generate-data
org.codehaus.mojo
exec-maven-plugin
generate-data
pre-integration-test
exec
java
${project.build.directory}
-classpath
-DnumOfRealms=${numOfRealms}
-DusersPerRealm=${usersPerRealm}
-DclientsPerRealm=${clientsPerRealm}
-DrealmRoles=${realmRoles}
-DrealmRolesPerUser=${realmRolesPerUser}
-DclientRolesPerUser=${clientRolesPerUser}
-DclientRolesPerClient=${clientRolesPerClient}
-DhashIterations=${hashIterations}
org.keycloak.performance.RealmsConfigurationBuilder
load-data
pre-integration-test
exec
java
${project.build.directory}
-classpath
-DnumOfWorkers=${numOfWorkers}
org.keycloak.performance.RealmsConfigurationLoader
benchmark-realms.json
maven-antrun-plugin
write-imported-dataset-properties
pre-integration-test
run
export-dump-after-generation
false
export-dump
org.codehaus.mojo
exec-maven-plugin
export-dump
pre-integration-test
exec
${project.basedir}/..
./prepare-dump.sh
${dataset}
import-dump
org.codehaus.mojo
exec-maven-plugin
load-dump
pre-integration-test
exec
${project.basedir}/..
./load-dump.sh
${dataset}
restart-keycloak
pre-integration-test
exec
${project.basedir}/..
docker-compose
-f ${compose.file} restart ${compose.restart.params}
healthcheck
pre-integration-test
exec
./healthcheck.sh
${project.basedir}/..
${keycloak.server.uris}
test
false
teardown
-v
org.codehaus.mojo
exec-maven-plugin
docker-compose-down
post-integration-test
exec
${project.basedir}/..
docker-compose
-f ${compose.file} down ${volumes.arg}
${project.version}
keep-data
monitoring
org.codehaus.mojo
exec-maven-plugin
monitoring-docker-compose-up
pre-integration-test
exec
${project.basedir}/..
docker-compose
-f docker-compose-monitoring.yml up -d --build
${monitoring.docker.cpuset}
monitoring-off
org.codehaus.mojo
exec-maven-plugin
monitoring-docker-compose-down
post-integration-test
exec
${project.basedir}/..
docker-compose
-f docker-compose-monitoring.yml down ${monitoring.volumes.arg}
delete-monitoring-data
-v