846 lines
39 KiB
XML
846 lines
39 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
|
|
~ and other contributors as indicated by the @author tags.
|
|
~
|
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
~ you may not use this file except in compliance with the License.
|
|
~ You may obtain a copy of the License at
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
~ See the License for the specific language governing permissions and
|
|
~ limitations under the License.
|
|
-->
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
<parent>
|
|
<groupId>org.keycloak.testsuite</groupId>
|
|
<artifactId>performance</artifactId>
|
|
<version>11.0.0-SNAPSHOT</version>
|
|
<relativePath>../pom.xml</relativePath>
|
|
</parent>
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<artifactId>performance-tests</artifactId>
|
|
<name>Keycloak Performance TestSuite - Tests</name>
|
|
|
|
<properties>
|
|
<provisioner>docker-compose</provisioner>
|
|
<deployment>singlenode</deployment>
|
|
|
|
<provisioning.properties>${provisioner}/4cpus/${deployment}</provisioning.properties>
|
|
<dataset>default</dataset>
|
|
<test.properties>oidc-login-logout</test.properties>
|
|
|
|
<provisioning.properties.file>${project.basedir}/parameters/provisioning/${provisioning.properties}.properties</provisioning.properties.file>
|
|
<dataset.properties.file>${project.basedir}/src/test/resources/dataset/${dataset}.properties</dataset.properties.file>
|
|
<test.properties.file>${project.basedir}/parameters/test/${test.properties}.properties</test.properties.file>
|
|
|
|
<provisioned.system.properties.file>${project.build.directory}/provisioned-system.properties</provisioned.system.properties.file>
|
|
|
|
<!--other-->
|
|
|
|
<db.dump.download.site>https://downloads.jboss.org/keycloak-qe/${server.version}</db.dump.download.site>
|
|
<numOfWorkers>1</numOfWorkers>
|
|
|
|
<scala.version>2.11.7</scala.version>
|
|
<gatling.version>2.1.7</gatling.version>
|
|
<gatling-plugin.version>2.2.1</gatling-plugin.version>
|
|
<scala-maven-plugin.version>3.2.2</scala-maven-plugin.version>
|
|
<jboss-logging.version>3.3.0.Final</jboss-logging.version>
|
|
|
|
<jackson.version>2.9.6</jackson.version>
|
|
<jackson.databind.version>${jackson.version}</jackson.databind.version>
|
|
<jackson.annotations.version>${jackson.databind.version}</jackson.annotations.version>
|
|
|
|
<gatling.simulationClass>keycloak.OIDCLoginAndLogoutSimulation</gatling.simulationClass>
|
|
<gatling.skip.run>true</gatling.skip.run>
|
|
<surefire.skip.run>true</surefire.skip.run>
|
|
|
|
<trustStoreArg/>
|
|
<trustStorePasswordArg/>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-adapter-core</artifactId>
|
|
<version>${server.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-adapter-spi</artifactId>
|
|
<version>${server.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-core</artifactId>
|
|
<version>${server.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-common</artifactId>
|
|
<version>${server.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
<version>${jackson.annotations.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-admin-client</artifactId>
|
|
<version>${server.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-configuration</groupId>
|
|
<artifactId>commons-configuration</artifactId>
|
|
<version>1.10</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-validator</groupId>
|
|
<artifactId>commons-validator</artifactId>
|
|
<version>1.6</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.freemarker</groupId>
|
|
<artifactId>freemarker</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.spec.javax.ws.rs</groupId>
|
|
<artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.logging</groupId>
|
|
<artifactId>jboss-logging</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.resteasy</groupId>
|
|
<artifactId>resteasy-jaxrs</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.resteasy</groupId>
|
|
<artifactId>resteasy-client</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.resteasy</groupId>
|
|
<artifactId>resteasy-jackson2-provider</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.scala-lang</groupId>
|
|
<artifactId>scala-library</artifactId>
|
|
<version>${scala.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.gatling.highcharts</groupId>
|
|
<artifactId>gatling-charts-highcharts</artifactId>
|
|
<version>${gatling.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<testResources>
|
|
<testResource>
|
|
<filtering>true</filtering>
|
|
<directory>src/test/resources</directory>
|
|
<excludes>
|
|
<exclude>**/*.gz</exclude>
|
|
<exclude>**/*.properties</exclude>
|
|
</excludes>
|
|
</testResource>
|
|
</testResources>
|
|
<plugins>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-teardown-before-clean</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>pre-clean</phase>
|
|
<configuration>
|
|
<rules>
|
|
<requireFilesDontExist>
|
|
<message><![CDATA[
|
|
WARNING: A previously provisioned system still appears to be running.
|
|
Please tear it down with `mvn verify -P teardown [-Pcluster|crossdc]` before runing `mvn clean`,
|
|
or delete the `provisioned-system.properties` file manually.
|
|
]]></message>
|
|
<files>
|
|
<file>${provisioned.system.properties.file}</file>
|
|
</files>
|
|
</requireFilesDontExist>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>properties-maven-plugin</artifactId>
|
|
<version>1.0.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>read-parameters</id>
|
|
<phase>initialize</phase>
|
|
<goals>
|
|
<goal>read-project-properties</goal>
|
|
</goals>
|
|
<configuration>
|
|
<quiet>true</quiet>
|
|
<files>
|
|
<file>${provisioning.properties.file}</file>
|
|
<file>${test.properties.file}</file>
|
|
</files>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>read-existing-provisioned-system-properties</id>
|
|
<phase>initialize</phase>
|
|
<goals>
|
|
<goal>read-project-properties</goal>
|
|
</goals>
|
|
<configuration>
|
|
<files>
|
|
<file>${project.build.directory}/provisioned-system.properties</file>
|
|
</files>
|
|
<quiet>true</quiet>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>net.alchim31.maven</groupId>
|
|
<artifactId>scala-maven-plugin</artifactId>
|
|
<version>${scala-maven-plugin.version}</version>
|
|
|
|
<executions>
|
|
<execution>
|
|
<id>add-source</id>
|
|
<!--phase>process-resources</phase-->
|
|
<goals>
|
|
<goal>add-source</goal>
|
|
<!--goal>compile</goal-->
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>compile</id>
|
|
<!--phase>process-test-resources</phase-->
|
|
<goals>
|
|
<goal>compile</goal>
|
|
<goal>testCompile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<args>
|
|
<arg>-target:jvm-1.8</arg>
|
|
<arg>-deprecation</arg>
|
|
<arg>-feature</arg>
|
|
<arg>-unchecked</arg>
|
|
<arg>-language:implicitConversions</arg>
|
|
<arg>-language:postfixOps</arg>
|
|
</args>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<!--
|
|
Execute test directly by using:
|
|
|
|
mvn gatling:execute -Ptest -f testsuite/performance/gatling -Dgatling.simulationClass=keycloak.DemoSimulation2
|
|
|
|
For more usage info see: http://gatling.io/docs/current/extensions/maven_plugin/
|
|
-->
|
|
<groupId>io.gatling</groupId>
|
|
<artifactId>gatling-maven-plugin</artifactId>
|
|
<version>${gatling-plugin.version}</version>
|
|
|
|
<configuration>
|
|
<configFolder>${project.build.testOutputDirectory}</configFolder>
|
|
<skip>${gatling.skip.run}</skip>
|
|
<disableCompiler>true</disableCompiler>
|
|
<runMultipleSimulations>true</runMultipleSimulations>
|
|
<propagateSystemProperties>true</propagateSystemProperties>
|
|
<jvmArgs>
|
|
<!--common params-->
|
|
<param>-Dproject.build.directory=${project.build.directory}</param>
|
|
<param>-Dkeycloak.server.uris=${keycloak.frontend.servers}</param>
|
|
<param>-DauthUser=${keycloak.admin.user}</param>
|
|
<param>-DauthPassword=${keycloak.admin.password}</param>
|
|
<!--dataset params-->
|
|
|
|
<param>-Ddataset.properties.file=${dataset.properties.file}</param>
|
|
|
|
<!-- <param>-DnumOfRealms=${numOfRealms}</param>
|
|
<param>-DusersPerRealm=${usersPerRealm}</param>
|
|
<param>-DclientsPerRealm=${clientsPerRealm}</param>
|
|
<param>-DrealmRoles=${realmRoles}</param>
|
|
<param>-DrealmRolesPerUser=${realmRolesPerUser}</param>
|
|
<param>-DclientRolesPerUser=${clientRolesPerUser}</param>
|
|
<param>-DclientRolesPerClient=${clientRolesPerClient}</param>
|
|
<param>-DhashIterations=${hashIterations}</param>-->
|
|
<!--test params-->
|
|
<param>-DusersPerSec=${usersPerSec}</param>
|
|
<param>-DrampUpPeriod=${rampUpPeriod}</param>
|
|
<param>-DwarmUpPeriod=${warmUpPeriod}</param>
|
|
<param>-DmeasurementPeriod=${measurementPeriod}</param>
|
|
<param>-DfilterResults=${filterResults}</param>
|
|
<param>-DuserThinkTime=${userThinkTime}</param>
|
|
<param>-DrefreshTokenPeriod=${refreshTokenPeriod}</param>
|
|
<param>-DrefreshTokenCount=${refreshTokenCount}</param>
|
|
<param>-DbadLoginAttempts=${badLoginAttempts}</param>
|
|
|
|
<param>${trustStoreArg}</param>
|
|
<param>${trustStorePasswordArg}</param>
|
|
</jvmArgs>
|
|
</configuration>
|
|
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
</goals>
|
|
<phase>integration-test</phase>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<configuration>
|
|
<workingDirectory>${project.basedir}</workingDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<systemPropertyVariables>
|
|
<dataset.properties.file>${dataset.properties.file}</dataset.properties.file>
|
|
</systemPropertyVariables>
|
|
<skip>${surefire.skip.run}</skip>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
|
|
<profile>
|
|
<id>cluster</id>
|
|
<properties>
|
|
<deployment>cluster</deployment>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>crossdc</id>
|
|
<properties>
|
|
<deployment>crossdc</deployment>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>ssl</id>
|
|
<activation>
|
|
<property>
|
|
<name>trustStore</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<trustStoreArg>-Djavax.net.ssl.trustStore=${trustStore}</trustStoreArg>
|
|
<trustStorePasswordArg>-Djavax.net.ssl.trustStorePassword=${trustStorePassword}</trustStorePasswordArg>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>provision</id>
|
|
<properties>
|
|
<project.basedir>${project.basedir}</project.basedir>
|
|
<project.build.directory>${project.build.directory}</project.build.directory>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>prepare-provisioning</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<ant antfile="prepare-provisioning.xml" target="prepare-${provisioner}" />
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>provision</id>
|
|
<phase>process-test-resources</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>${deployment}</DEPLOYMENT>
|
|
<OPERATION>provision</OPERATION>
|
|
|
|
<KEYCLOAK_VERSION>${project.version}</KEYCLOAK_VERSION>
|
|
|
|
<MANAGEMENT_USER>${management.user}</MANAGEMENT_USER>
|
|
<MANAGEMENT_USER_PASS>${management.user.password}</MANAGEMENT_USER_PASS>
|
|
<KEYCLOAK_JSTAT>${keycloak.jstat}</KEYCLOAK_JSTAT>
|
|
|
|
<KEYCLOAK_SCALE>${keycloak.scale}</KEYCLOAK_SCALE>
|
|
<KEYCLOAK_DC1_SCALE>${keycloak.dc1.scale}</KEYCLOAK_DC1_SCALE>
|
|
<KEYCLOAK_DC2_SCALE>${keycloak.dc2.scale}</KEYCLOAK_DC2_SCALE>
|
|
<KEYCLOAK_CPUSETS>${keycloak.docker.cpusets}</KEYCLOAK_CPUSETS>
|
|
<KEYCLOAK_DC1_CPUSETS>${keycloak.dc1.docker.cpusets}</KEYCLOAK_DC1_CPUSETS>
|
|
<KEYCLOAK_DC2_CPUSETS>${keycloak.dc2.docker.cpusets}</KEYCLOAK_DC2_CPUSETS>
|
|
<KEYCLOAK_MEMLIMIT>${keycloak.docker.memlimit}</KEYCLOAK_MEMLIMIT>
|
|
<KEYCLOAK_JVM_MEMORY>${keycloak.jvm.memory}</KEYCLOAK_JVM_MEMORY>
|
|
<KEYCLOAK_HTTP_MAX_CONNECTIONS>${keycloak.http.max-connections}</KEYCLOAK_HTTP_MAX_CONNECTIONS>
|
|
<KEYCLOAK_AJP_MAX_CONNECTIONS>${keycloak.ajp.max-connections}</KEYCLOAK_AJP_MAX_CONNECTIONS>
|
|
<KEYCLOAK_WORKER_IO_THREADS>${keycloak.worker.io-threads}</KEYCLOAK_WORKER_IO_THREADS>
|
|
<KEYCLOAK_WORKER_TASK_MAX_THREADS>${keycloak.worker.task-max-threads}</KEYCLOAK_WORKER_TASK_MAX_THREADS>
|
|
<KEYCLOAK_DS_MIN_POOL_SIZE>${keycloak.ds.min-pool-size}</KEYCLOAK_DS_MIN_POOL_SIZE>
|
|
<KEYCLOAK_DS_MAX_POOL_SIZE>${keycloak.ds.max-pool-size}</KEYCLOAK_DS_MAX_POOL_SIZE>
|
|
<KEYCLOAK_DS_POOL_PREFILL>${keycloak.ds.pool-prefill}</KEYCLOAK_DS_POOL_PREFILL>
|
|
<KEYCLOAK_DS_PS_CACHE_SIZE>${keycloak.ds.ps-cache-size}</KEYCLOAK_DS_PS_CACHE_SIZE>
|
|
|
|
<KEYCLOAK_ADMIN_USER>${keycloak.admin.user}</KEYCLOAK_ADMIN_USER>
|
|
<KEYCLOAK_ADMIN_PASSWORD>${keycloak.admin.password}</KEYCLOAK_ADMIN_PASSWORD>
|
|
|
|
<DB_CPUSETS>${db.docker.cpusets}</DB_CPUSETS>
|
|
<DB_DC1_CPUSETS>${db.dc1.docker.cpusets}</DB_DC1_CPUSETS>
|
|
<DB_DC2_CPUSETS>${db.dc2.docker.cpusets}</DB_DC2_CPUSETS>
|
|
<DB_MEMLIMIT>${db.docker.memlimit}</DB_MEMLIMIT>
|
|
<DB_MAX_CONNECTIONS>${db.max.connections}</DB_MAX_CONNECTIONS>
|
|
|
|
<LB_CPUSETS>${lb.docker.cpusets}</LB_CPUSETS>
|
|
<LB_DC1_CPUSETS>${lb.dc1.docker.cpusets}</LB_DC1_CPUSETS>
|
|
<LB_DC2_CPUSETS>${lb.dc2.docker.cpusets}</LB_DC2_CPUSETS>
|
|
<LB_MEMLIMIT>${lb.docker.memlimit}</LB_MEMLIMIT>
|
|
<LB_JVM_MEMORY>${lb.jvm.memory}</LB_JVM_MEMORY>
|
|
<LB_HTTP_MAX_CONNECTIONS>${lb.http.max-connections}</LB_HTTP_MAX_CONNECTIONS>
|
|
<LB_WORKER_IO_THREADS>${lb.worker.io-threads}</LB_WORKER_IO_THREADS>
|
|
<LB_WORKER_TASK_MAX_THREADS>${lb.worker.task-max-threads}</LB_WORKER_TASK_MAX_THREADS>
|
|
<LB_JSTAT>${lb.jstat}</LB_JSTAT>
|
|
|
|
<INFINISPAN_DC1_CPUSETS>${infinispan.dc1.docker.cpusets}</INFINISPAN_DC1_CPUSETS>
|
|
<INFINISPAN_DC2_CPUSETS>${infinispan.dc2.docker.cpusets}</INFINISPAN_DC2_CPUSETS>
|
|
<INFINISPAN_MEMLIMIT>${infinispan.docker.memlimit}</INFINISPAN_MEMLIMIT>
|
|
<INFINISPAN_JVM_MEMORY>${infinispan.jvm.memory}</INFINISPAN_JVM_MEMORY>
|
|
<INFINISPAN_JSTAT>${infinispan.jstat}</INFINISPAN_JSTAT>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>properties-maven-plugin</artifactId>
|
|
<version>1.0.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>read-new-provisioned-system-properties</id>
|
|
<goals>
|
|
<goal>read-project-properties</goal>
|
|
</goals>
|
|
<phase>pre-integration-test</phase>
|
|
<configuration>
|
|
<files>
|
|
<file>${project.build.directory}/provisioned-system.properties</file>
|
|
</files>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>generate-data</id>
|
|
<properties>
|
|
<delete>false</delete>
|
|
<log.every>5</log.every>
|
|
<queue.timeout>60</queue.timeout>
|
|
<shutdown.timeout>60</shutdown.timeout>
|
|
<template.cache.size>10000</template.cache.size>
|
|
<randoms.cache.size>10000</randoms.cache.size>
|
|
<entity.cache.size>100000</entity.cache.size>
|
|
<max.heap>2g</max.heap>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>load-data</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>java</executable>
|
|
<workingDirectory>${project.build.directory}</workingDirectory>
|
|
<arguments>
|
|
|
|
<argument>-classpath</argument>
|
|
<classpath/>
|
|
|
|
<argument>-Xms64m</argument>
|
|
<argument>-Xmx${max.heap}</argument>
|
|
<argument>-XX:MetaspaceSize=96M</argument>
|
|
<argument>-XX:MaxMetaspaceSize=256m</argument>
|
|
|
|
<argument>-Dkeycloak.server.uris=${keycloak.frontend.servers}</argument>
|
|
<argument>-DauthUser=${keycloak.admin.user}</argument>
|
|
<argument>-DauthPassword=${keycloak.admin.password}</argument>
|
|
<argument>-DnumOfWorkers=${numOfWorkers}</argument>
|
|
<argument>-Ddataset.properties.file=${dataset.properties.file}</argument>
|
|
<argument>${trustStoreArg}</argument>
|
|
<argument>${trustStorePasswordArg}</argument>
|
|
|
|
<argument>-Ddelete=${delete}</argument>
|
|
<argument>-Dlog.every=${log.every}</argument>
|
|
<argument>-Dqueue.timeout=${queue.timeout}</argument>
|
|
<argument>-Dshutdown.timeout=${shutdown.timeout}</argument>
|
|
<argument>-Dtemplate.cache.size=${template.cache.size}</argument>
|
|
<argument>-Drandoms.cache.size=${randoms.cache.size}</argument>
|
|
<argument>-Dentity.cache.size=${entity.cache.size}</argument>
|
|
|
|
<argument>org.keycloak.performance.dataset.DatasetLoader</argument>
|
|
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>export-dump</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>export-dump</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>${deployment}</DEPLOYMENT>
|
|
<OPERATION>export-dump</OPERATION>
|
|
<DATASET_PROPERTIES_FILE>${dataset.properties.file}</DATASET_PROPERTIES_FILE>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>import-dump</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>import-dump</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>${deployment}</DEPLOYMENT>
|
|
<OPERATION>import-dump</OPERATION>
|
|
<DATASET_PROPERTIES_FILE>${dataset.properties.file}</DATASET_PROPERTIES_FILE>
|
|
<DUMP_DOWNLOAD_SITE>${db.dump.download.site}</DUMP_DOWNLOAD_SITE>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>test</id>
|
|
<properties>
|
|
<gatling.skip.run>false</gatling.skip.run>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>junit</id>
|
|
<properties>
|
|
<surefire.skip.run>false</surefire.skip.run>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>collect</id>
|
|
<properties>
|
|
<gnuplot>false</gnuplot>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>collect-artifacts</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>${deployment}</DEPLOYMENT>
|
|
<OPERATION>collect</OPERATION>
|
|
<JSTAT>${jstat}</JSTAT>
|
|
<GNUPLOT>${gnuplot}</GNUPLOT>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>teardown</id>
|
|
<properties>
|
|
<delete.data>true</delete.data>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>teardown</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>${deployment}</DEPLOYMENT>
|
|
<OPERATION>teardown</OPERATION>
|
|
<DELETE_DATA>${delete.data}</DELETE_DATA>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>keep-data</id>
|
|
<properties>
|
|
<delete.data>false</delete.data>
|
|
</properties>
|
|
</profile>
|
|
|
|
|
|
<profile>
|
|
<id>monitoring</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>monitoring-on</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>monitoring</DEPLOYMENT>
|
|
<OPERATION>provision</OPERATION>
|
|
<MONITORING_CPUSETS>${monitoring.docker.cpusets}</MONITORING_CPUSETS>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>monitoring-off</id>
|
|
<properties>
|
|
<delete.monitoring.data>false</delete.monitoring.data>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>monitoring-off</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./${provisioner}.sh</executable>
|
|
<environmentVariables>
|
|
<PROVISIONER>${provisioner}</PROVISIONER>
|
|
<DEPLOYMENT>monitoring</DEPLOYMENT>
|
|
<OPERATION>teardown</OPERATION>
|
|
<DELETE_DATA>${delete.monitoring.data}</DELETE_DATA>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>delete-monitoring-data</id>
|
|
<properties>
|
|
<delete.monitoring.data>true</delete.monitoring.data>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>sar</id>
|
|
<properties>
|
|
<gnuplot>false</gnuplot>
|
|
<bzip>false</bzip>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>start-sar</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./sar.sh</executable>
|
|
<environmentVariables>
|
|
<SAR_OPERATION>start</SAR_OPERATION>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>stop-sar</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>./sar.sh</executable>
|
|
<environmentVariables>
|
|
<SAR_OPERATION>stop</SAR_OPERATION>
|
|
<GNUPLOT>${gnuplot}</GNUPLOT>
|
|
<BZIP>${bzip}</BZIP>
|
|
</environmentVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>gnuplot</id>
|
|
<properties>
|
|
<gnuplot>true</gnuplot>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>jstat</id>
|
|
<properties>
|
|
<jstat>true</jstat>
|
|
</properties>
|
|
</profile>
|
|
|
|
</profiles>
|
|
|
|
</project>
|