blob: b38201f5dab927dd77072d4fd83fc03080e63a46 [file] [log] [blame]
<!--
-
- 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 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>
<target name="precompile">
<mkdir dir="${scripts.dir}"/>
<jython path="${mllib.dir}">
<args>
<arg value="generate-scripts"/>
<arg value="scripts.xml"/>
<arg value="${scripts.dir}"/>
</args>
</jython>
</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>