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 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.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 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} ${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