summaryrefslogtreecommitdiff
path: root/java/perftests/etc
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-07-05 14:56:45 +0000
committerKeith Wall <kwall@apache.org>2012-07-05 14:56:45 +0000
commited30bcde2a746670bb334397698e47ca085c4df4 (patch)
tree12a1db4de8416e81935897b6c729889e566f6c90 /java/perftests/etc
parente4b7a04ed3bf95c789d43acf43903653cee9dde8 (diff)
downloadqpid-python-ed30bcde2a746670bb334397698e47ca085c4df4.tar.gz
QPID-4110 added topic support to performance tests.
Specifically: - Added support for creating and tearing down durable subscriptions - Improved IterationValueTest so that we test the format for boolean properties (such as durableSubscription) - Added test and chart definitions Applied patch from Philip Harvey <phil@philharveyonline.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1357650 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/perftests/etc')
-rw-r--r--java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef29
-rw-r--r--java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef28
-rw-r--r--java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef28
-rw-r--r--java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef28
-rw-r--r--java/perftests/etc/testdefs/Topic-AckModes.js67
-rw-r--r--java/perftests/etc/testdefs/Topic-NumberOfConsumers.js64
-rw-r--r--java/perftests/etc/testdefs/Topic-NumberOfTopics.js69
-rw-r--r--java/perftests/etc/testdefs/Topic-Persistence.js69
8 files changed, 382 insertions, 0 deletions
diff --git a/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef b/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef
new file mode 100644
index 0000000000..05bfd73b3b
--- /dev/null
+++ b/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+chartType=LINE
+chartTitle=Number of topic consumers
+chartSubtitle=Transient 1KB messages
+xAxisTitle=Numer of consumers
+yAxisTitle=Throughput (KB/s)
+
+series.1.statement=SELECT testName, throughputKbPerS FROM Topic-NumberOfConsumers WHERE participantName = 'All'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
+
diff --git a/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef b/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef
new file mode 100644
index 0000000000..3d9a04b5b6
--- /dev/null
+++ b/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+chartType=LINE
+chartTitle=Number of topics
+chartSubtitle=Transient 1KB messages
+xAxisTitle=Numer of topics
+yAxisTitle=Throughput (KB/s)
+
+series.1.statement=SELECT testName, throughputKbPerS FROM Topic-NumberOfTopics WHERE participantName = 'All'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
diff --git a/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef b/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef
new file mode 100644
index 0000000000..aa449f48c9
--- /dev/null
+++ b/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+chartType=BAR
+chartTitle=Topic transient/durable subscriptions
+chartSubtitle=1KB messages
+xAxisTitle=Durable subscription
+yAxisTitle=Throughput (KB/s)
+
+series.1.statement=SELECT isDurableSubscription, throughputKbPerS FROM Topic-Persistence WHERE participantName = 'All Consumers'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
diff --git a/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef b/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef
new file mode 100644
index 0000000000..6a7e6016f1
--- /dev/null
+++ b/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+chartType=BAR
+chartTitle=Topic acknowledge modes
+chartSubtitle=Transient 1KB messages
+xAxisTitle=Ack Mode
+yAxisTitle=Throughput (KB/s)
+
+series.1.statement=SELECT acknowledgeMode, throughputKbPerS FROM Topic-AckModes WHERE participantName = 'All'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
diff --git a/java/perftests/etc/testdefs/Topic-AckModes.js b/java/perftests/etc/testdefs/Topic-AckModes.js
new file mode 100644
index 0000000000..0ad519aa50
--- /dev/null
+++ b/java/perftests/etc/testdefs/Topic-AckModes.js
@@ -0,0 +1,67 @@
+var duration = 30000;
+var topicName = "topic://amq.topic/?routingkey='testTopic'";
+
+var jsonObject = {
+ _tests: [
+ {
+ "_name": "Topic ack modes",
+ "_iterations": [
+ {
+ "_acknowledgeMode": 1
+ },
+ {
+ "_acknowledgeMode": 2
+ },
+ {
+ "_acknowledgeMode": 3
+ }
+ ],
+ "_clients": [
+ {
+ "_name": "producingClient",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_producers": [
+ {
+ "_name": "Producer",
+ "_destinationName": topicName,
+ "_maximumDuration": duration
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ .concat(QPID.times(10,
+ {
+ "_name": "consumingClient-__INDEX",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_consumers": [
+ {
+ "_name": "Consumer-__INDEX",
+ "_destinationName": topicName,
+ "_maximumDuration": duration,
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "__INDEX"))
+ }]
+};
+
diff --git a/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js b/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js
new file mode 100644
index 0000000000..9351987115
--- /dev/null
+++ b/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js
@@ -0,0 +1,64 @@
+var jsonObject = {
+ _tests:[]
+};
+
+var duration = 30000;
+var topicName = "topic://amq.topic/?routingkey='testTopic.1'";
+
+var numbersOfConsumers = [1, 10, 50, 100];
+
+for(i=0; i < numbersOfConsumers.length ; i++)
+{
+ var numberOfConsumers = numbersOfConsumers[i];
+ var test = {
+ "_name": numberOfConsumers,
+ "_clients":[
+ {
+ "_name": "producingClient",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_producers": [
+ {
+ "_name": "Producer1",
+ "_destinationName": topicName,
+ "_maximumDuration": duration
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ].concat(QPID.times(numberOfConsumers,
+ {
+ "_name": "consumingClient-__INDEX",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_consumers": [
+ {
+ "_name": "Consumer-__INDEX",
+ "_destinationName": topicName,
+ "_maximumDuration": duration
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "__INDEX"))
+ };
+
+ jsonObject._tests= jsonObject._tests.concat(test);
+}
+
diff --git a/java/perftests/etc/testdefs/Topic-NumberOfTopics.js b/java/perftests/etc/testdefs/Topic-NumberOfTopics.js
new file mode 100644
index 0000000000..227650a16d
--- /dev/null
+++ b/java/perftests/etc/testdefs/Topic-NumberOfTopics.js
@@ -0,0 +1,69 @@
+var jsonObject = {
+ _tests:[]
+};
+
+var duration = 30000;
+var topicName = "topic://amq.topic/?routingkey='testTopic.__INDEX'";
+
+var numbersOfTopics = [1, 10, 50, 100];
+
+// Each test has n pairs of producers and consumers, each with a different topic
+
+for(i=0; i < numbersOfTopics.length ; i++)
+{
+ var numberOfTopics = numbersOfTopics[i];
+ var test = {
+ "_name": numberOfTopics,
+ "_clients":
+ QPID.times(numberOfTopics,
+ {
+ "_name": "producingClient-__INDEX",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_producers": [
+ {
+ "_name": "Producer-__INDEX",
+ "_destinationName": topicName,
+ "_maximumDuration": duration
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "__INDEX")
+ .concat(
+ QPID.times(numberOfTopics,
+ {
+ "_name": "consumingClient-__INDEX",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_consumers": [
+ {
+ "_name": "Consumer-__INDEX",
+ "_destinationName": topicName,
+ "_maximumDuration": duration
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "__INDEX"))
+ };
+
+ jsonObject._tests= jsonObject._tests.concat(test);
+}
+
diff --git a/java/perftests/etc/testdefs/Topic-Persistence.js b/java/perftests/etc/testdefs/Topic-Persistence.js
new file mode 100644
index 0000000000..d843d37861
--- /dev/null
+++ b/java/perftests/etc/testdefs/Topic-Persistence.js
@@ -0,0 +1,69 @@
+var duration = 30000;
+var topicName = "topic://amq.topic/?routingkey='testTopic'";
+
+var jsonObject = {
+ _tests: [
+ {
+ "_name": "Topic persistence",
+ "_iterations": [
+ // note that we use _durableSubscription (the JaveBeans property name)
+ // rather than _isDurableSubscription (the field name)
+ {
+ "_deliveryMode": 1,
+ "_durableSubscription": false
+ },
+ {
+ "_deliveryMode": 2,
+ "_durableSubscription": true
+ }
+ ],
+ "_clients": [
+ {
+ "_name": "producingClient",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_producers": [
+ {
+ "_name": "Producer",
+ "_destinationName": topicName,
+ "_maximumDuration": duration,
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ .concat(QPID.times(10,
+ {
+ "_name": "consumingClient-__INDEX",
+ "_connections":[
+ {
+ "_name": "connection1",
+ "_factory": "connectionfactory",
+ "_sessions": [
+ {
+ "_sessionName": "session1",
+ "_consumers": [
+ {
+ "_name": "Consumer-__INDEX",
+ "_destinationName": topicName,
+ "_isTopic": true,
+ "_maximumDuration": duration,
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "__INDEX"))
+ }]
+};
+