329 lines
13 KiB
XML
329 lines
13 KiB
XML
<!--
|
|
-
|
|
- 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>
|