summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/perftests/build.xml')
-rw-r--r--qpid/java/perftests/build.xml339
1 files changed, 339 insertions, 0 deletions
diff --git a/qpid/java/perftests/build.xml b/qpid/java/perftests/build.xml
new file mode 100644
index 0000000000..497bfc8035
--- /dev/null
+++ b/qpid/java/perftests/build.xml
@@ -0,0 +1,339 @@
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you 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 name="Performance Tests" default="build">
+
+ <property name="module.depends" value="systests client broker common common/test junit-toolkit"/>
+
+ <import file="../module.xml"/>
+
+ <property name="xms" value="-Xms256m"/>
+ <property name="xmx" value="-Xmx1024m"/>
+ <property name="test.logging.level" value="-Damqj.test.logging.level=info"/>
+ <property name="qpid.logging.level" value="-Damqj.logging.level=warn"/>
+ <property name="log4j.config" value="-Dlog4j.configuration=perftests.log4j"/>
+ <property name="properties" value="perftests.properties"/>
+ <property name="scripts.dir" value="${build.bin}/${module.name}"/>
+
+ <condition property="results" value="${result-path}/results" else="${project.root}/${module}/results">
+ <isset property="result-path"/>
+ </condition>
+
+ <property name="scripts.timestamp" location="${build.scratch}/perftests/scripts.timestamp" />
+
+ <target name="check_scripts_uptodate">
+ <uptodate property="scripts.notRequired" targetfile="${scripts.timestamp}">
+ <srcfiles dir="${scripts.dir}" includes="**.sh" />
+ <srcfiles dir="${project.root}/perftests/" includes="scripts.xml" />
+ </uptodate>
+ </target>
+
+ <target name="precompile" depends="check_scripts_uptodate" unless="scripts.notRequired">
+ <mkdir dir="${scripts.dir}"/>
+ <jython path="${mllib.dir}">
+ <args>
+ <arg value="generate-scripts"/>
+ <arg value="scripts.xml"/>
+ <arg value="${scripts.dir}"/>
+ </args>
+ </jython>
+ <touch file="${scripts.timestamp}" />
+ </target>
+
+ <target name="all-tests" depends="all-queue-tests,all-topic-tests"/>
+
+ <target name="all-queue-tests" depends="Queue-Duration-Persistent,Queue-Concurrent,
+ Queue-Duration,Queue-Latency,Queue-Duration-Transacted,Queue-LargeMessage-Persistent"/>
+
+ <target name="all-topic-tests" depends="Topic-Concurrent,Topic-Duration,Topic-Latency,
+ Topic-Duration-Transacted"/>
+
+ <!-- Queue tests -->
+
+ <!--
+ Send 10000 (.5K) messages and measure the time for receiving 1000 messages (10 intervals)
+ the overall latency is also calculated (See Test * Size Throughput)
+ Note that "Test Throughput" is the average time for receiving 1000 messages
+ -->
+ <target name="Queue-Latency" depends="build" description="Run Queue-Latency">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-n Queue-Latency"/>
+ <arg value="-s[10000]"/>
+ <arg value="-t testPingLatency"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingLatencyTestPerf"/>
+ <arg value="rate=100"/>
+ <arg value="batchSize=1000"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one producer/consumer pair
+ for sending and receiving 10000 transient messages.
+ The test last for 5 minutes.
+ -->
+ <target name="Queue-Duration" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Queue-Duration"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one producer/consumer pair
+ for sending and receiving 10000 0.5K persistent messages.
+ The test last for 5 minutes.
+ -->
+ <target name="Queue-Duration-Persistent" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Queue-Duration-Persistent"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="persistent=true"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one producer/consumer pair
+ for sending and receiving 10000 100K persistent messages.
+ The test last for 5 minutes.
+ -->
+ <target name="Queue-LargeMessage-Persistent" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Queue-LargeMessage-Persistent"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="persistent=true"/>
+ <arg value="messageSize=102400"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one (transacted producer)/(Transacted consumer) pair
+ for sending and receiving 10000 (0.5K) persistent messages.
+ Tx batch size is 100 (consumer and producer)
+ The test last for 5 minutes.
+ -->
+ <target name="Queue-Duration-Transacted" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Queue-Duration-Transacted"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="persistent=true"/>
+ <arg value="transacted=true"/>
+ <arg value="batchSize=100"/>
+ <arg value="consTransacted=true"/>
+ <arg value="commitBatchSize=100"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time for four concurrent producer/receiver pairs to send and receive 1000 transient messages
+ -->
+ <target name="Queue-Concurrent" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-r1"/>
+ <arg value="-n Queue-Concurrent"/>
+ <arg value="-s[1000]"/>
+ <arg value="-c[4]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+
+ <!-- Topic tests -->
+
+ <!--
+ Send 10000 (.5K) messages and measure the time for receiving 1000 messages (10 intervals)
+ the overall latency is also calculated (See Test * Size Throughput)
+ Note that "Test Throughput" is the average time for receiving 1000 messages
+ -->
+ <target name="Topic-Latency" depends="build" description="Run Queue-Latency">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-n Topic-Latency"/>
+ <arg value="-s[10000]"/>
+ <arg value="-t testPingLatency"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingLatencyTestPerf"/>
+ <arg value="rate=100"/>
+ <arg value="batchSize=1000"/>
+ <arg value="messageSize=512"/>
+ <arg value="pubsub=true"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one producer/consumer pair
+ for sending and receiving 10000 transient messages.
+ The test last for 5 minutes.
+ -->
+ <target name="Topic-Duration" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Topic-Duration"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="messageSize=512"/>
+ <arg value="pubsub=true"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time required for one (transacted producer)/(Transacted consumer) pair
+ for sending and receiving 10000 (0.5K) persistent messages.
+ Tx batch size is 100 (consumer and producer)
+ The test last for 5 minutes.
+ -->
+ <target name="Topic-Duration-Transacted" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-d5M"/>
+ <arg value="-n Topic-Duration-Transacted"/>
+ <arg value="-s[1000]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="persistent=true"/>
+ <arg value="transacted=true"/>
+ <arg value="batchSize=100"/>
+ <arg value="consTransacted=true"/>
+ <arg value="commitBatchSize=100"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+ <!--
+ Measure the time for four concurrent producer/receiver pairs to send and receive 1000 transient messages
+ -->
+ <target name="Topic-Concurrent" depends="build" description="">
+ <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true">
+ <classpath refid="module.test.path"/>
+ <jvmarg value="${xms}"/>
+ <jvmarg value="${xmx}"/>
+ <jvmarg value="${test.logging.level}"/>
+ <jvmarg value="${qpid.logging.level}"/>
+ <jvmarg value="${log4j.config}"/>
+ <!-- args -->
+ <arg value="-r1"/>
+ <arg value="-n Topic-Concurrent"/>
+ <arg value="-s[1000]"/>
+ <arg value="-c[4]"/>
+ <arg value="-t testAsyncPingOk"/>
+ <arg value="-o${results}"/>
+ <arg value="--csv"/>
+ <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/>
+ <arg value="messageSize=512"/>
+ </java>
+ </target>
+
+</project>