org.keycloak.testsuite
performance
4.0.0.CR1-SNAPSHOT
../pom.xml
4.0.0
performance-tests
Keycloak Performance TestSuite - Tests
docker-compose
singlenode
${project.build.directory}/provisioned-system.properties
2-3
2
3
2500m
-Xms64m -Xmx2g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m
50000
50000
2
16
10
100
true
100
1
1
1
2g
100
https://downloads.jboss.org/keycloak-qe
1
1
1
1500m
-Xms64m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m
50000
2
16
1
1
1500m
-Xms64m -Xmx1g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC
0
default
1
1.8
1.8
2.11.7
2.1.7
2.2.1
3.2.2
3.3.0.Final
keycloak.BasicOIDCSimulation
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
org.apache.maven.plugins
maven-enforcer-plugin
enforce-teardown-before-clean
enforce
pre-clean
${provisioned.system.properties.file}
true
org.codehaus.mojo
properties-maven-plugin
1.0.0
read-existing-provisioned-system-properties
initialize
read-project-properties
${project.build.directory}/provisioned-system.properties
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
-Dkeycloak.server.uris=${keycloak.frontend.servers}
-DnumOfRealms=${numOfRealms}
-DusersPerRealm=${usersPerRealm}
-DclientsPerRealm=${clientsPerRealm}
-DrealmRoles=${realmRoles}
-DrealmRolesPerUser=${realmRolesPerUser}
-DclientRolesPerUser=${clientRolesPerUser}
-DclientRolesPerClient=${clientRolesPerClient}
-DhashIterations=${hashIterations}
integration-test
integration-test
org.codehaus.mojo
exec-maven-plugin
${project.basedir}
docker-compose
!provisioner
org.apache.maven.plugins
maven-antrun-plugin
copy-dockerfiles-etc
generate-resources
run
cluster
cluster
2 3
crossdc
crossdc
provision
org.codehaus.mojo
exec-maven-plugin
provision
process-test-resources
exec
./${provisioner}.sh
${provisioner}
${deployment}
provision
${project.version}
${management.user}
${management.user.password}
${keycloak.scale}
${keycloak.dc1.scale}
${keycloak.dc2.scale}
${keycloak.docker.cpusets}
${keycloak.dc1.docker.cpusets}
${keycloak.dc2.docker.cpusets}
${keycloak.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}
${db.docker.cpusets}
${db.dc1.docker.cpusets}
${db.dc2.docker.cpusets}
${db.docker.memlimit}
${db.max.connections}
${lb.docker.cpusets}
${lb.dc1.docker.cpusets}
${lb.dc2.docker.cpusets}
${lb.docker.memlimit}
${lb.jvm.memory}
${lb.http.max-connections}
${lb.worker.io-threads}
${lb.worker.task-max-threads}
${infinispan.dc1.docker.cpusets}
${infinispan.dc2.docker.cpusets}
${infinispan.docker.memlimit}
${infinispan.jvm.memory}
org.codehaus.mojo
properties-maven-plugin
1.0.0
read-new-provisioned-system-properties
read-project-properties
pre-integration-test
${project.build.directory}/provisioned-system.properties
initialize-dataset-properties
dataset
org.codehaus.mojo
properties-maven-plugin
1.0.0
initialize-dataset-properties
pre-integration-test
read-project-properties
${project.basedir}/datasets/${dataset}.properties
true
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
-Dkeycloak.server.uris=${keycloak.frontend.servers}
-DnumOfWorkers=${numOfWorkers}
org.keycloak.performance.RealmsConfigurationLoader
benchmark-realms.json
export-dump
maven-enforcer-plugin
enforce-nondefault-dataset
enforce
dataset
(?!default).*
For the "export-dump" task property "dataset" cannot be set to "default".
org.codehaus.mojo
exec-maven-plugin
export-dump
pre-integration-test
exec
./${provisioner}.sh
${provisioner}
${deployment}
export-dump
${dataset}
import-dump
org.codehaus.mojo
exec-maven-plugin
import-dump
pre-integration-test
exec
./${provisioner}.sh
${provisioner}
${deployment}
import-dump
${dataset}
${db.dump.download.site}
test
false
teardown
true
org.codehaus.mojo
exec-maven-plugin
teardown
post-integration-test
exec
./${provisioner}.sh
${provisioner}
${deployment}
teardown
${delete.data}
keep-data
false
monitoring
org.codehaus.mojo
exec-maven-plugin
monitoring-on
pre-integration-test
exec
./${provisioner}.sh
${provisioner}
monitoring
provision
${monitoring.docker.cpusets}
monitoring-off
false
org.codehaus.mojo
exec-maven-plugin
monitoring-off
post-integration-test
exec
./${provisioner}.sh
${provisioner}
monitoring
teardown
${delete.monitoring.data}
delete-monitoring-data
true
sar
false
false
org.codehaus.mojo
exec-maven-plugin
start-sar
pre-integration-test
exec
./sar.sh
start
stop-sar
post-integration-test
exec
./sar.sh
stop
${gnuplot}
${bzip}
gnuplot
true