diff options
| author | Keith Wall <kwall@apache.org> | 2014-12-23 09:50:14 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-12-23 09:50:14 +0000 |
| commit | 018bdbaedeb39743dce1024a6064636b19810610 (patch) | |
| tree | acb0be55fab46c6af7aa335e2184517c398574b6 /qpid/java/perftests | |
| parent | 5e0175cee706d931b12968004e61e5ed0aac071a (diff) | |
| download | qpid-python-018bdbaedeb39743dce1024a6064636b19810610.tar.gz | |
QPID-6284: [Java Broker Tests] Add system test demonstrating the effect of using SSL on a connection.
* VaryingNumberOfParticipants x axis extended to 20 participants as on current test hardware, existing maximum
parameter (10) did not show the point at which returns begin to diminish.
* Cloned VaryingNumberOfParticipants for the SSL test.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1647521 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/perftests')
4 files changed, 170 insertions, 2 deletions
diff --git a/qpid/java/perftests/etc/json_config_tool.py b/qpid/java/perftests/etc/json_config_tool.py new file mode 100755 index 0000000000..21fc0aa786 --- /dev/null +++ b/qpid/java/perftests/etc/json_config_tool.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# +# 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. +# + +from StringIO import StringIO +import json +import sys +import re +import argparse + +def transform(data): + if isinstance(data, tuple): + (k, v) = data; + return k, transform(v) + elif isinstance(data, list): + return [transform(i) for i in data] + elif isinstance(data, dict): + if "name" in data and data["name"] == objname: + data[attrname] = attrvalue + return data + else: + return data + + +parser = argparse.ArgumentParser(description='Adds (or updates) a attribute name/value pair of an existing object within a Java Broker config.json') +parser.add_argument("objectname", help='Name of the object e.g. httpManagement') +parser.add_argument("attrname", help='Name of the attribute to add or update e.g. httpBasicAuthenticationEnabled') +parser.add_argument("attrvalue", help='Value of the attribute e.g. true') +args = parser.parse_args() + +objname = args.objectname +attrname = args.attrname +attrvalue = args.attrvalue + +# Expects a config.json to be provided on stdin, write the resulting json to stdout. + +lines = [] +for line in sys.stdin: + lines.append(line.rstrip()) + +# naive strip C style comments - this deals with the Apache licence comment present on the default config +input = re.sub("/\*.*?\*/", " ", "".join(lines), re.S) + +data = json.load(StringIO(input)) +data = dict([transform((k, v)) for k,v in data.items()]) + +json.dump(data, sys.stdout, sort_keys=True, indent=2) diff --git a/qpid/java/perftests/etc/perftests-jndi.properties b/qpid/java/perftests/etc/perftests-jndi.properties index 173606cd9d..deb0a8d57b 100644 --- a/qpid/java/perftests/etc/perftests-jndi.properties +++ b/qpid/java/perftests/etc/perftests-jndi.properties @@ -18,6 +18,7 @@ java.naming.factory.initial = org.apache.qpid.jndi.PropertiesFileInitialContextFactory connectionfactory.connectionfactory = amqp://guest:guest@clientid/?brokerlist='tcp://localhost:5672' +connectionfactory.sslconnectionfactory = amqp://guest:guest@clientid/?ssl='true'&brokerlist='tcp://localhost:5671' destination.controllerqueue = direct://amq.direct//controllerqueue?autodelete='true' diff --git a/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipants.js b/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipants.js index 4e557e3571..fd6c650e90 100644 --- a/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipants.js +++ b/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipants.js @@ -25,8 +25,8 @@ var jsonObject = { var duration = 30000; var queueName = "direct://amq.direct//varNumOfParticipants?durable='true'"; -var numbersOfProducers = [1, 2, 5, 10]; -var numbersOfConsumers = [1, 2, 5, 10]; +var numbersOfProducers = [1, 2, 5, 10, 20]; +var numbersOfConsumers = [1, 2, 5, 10, 20]; for(producersIndex=0; producersIndex < numbersOfProducers.length; producersIndex++) { diff --git a/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipantsSSL.js b/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipantsSSL.js new file mode 100644 index 0000000000..0090b5aa8c --- /dev/null +++ b/qpid/java/perftests/etc/testdefs/VaryingNumberOfParticipantsSSL.js @@ -0,0 +1,104 @@ +/* + * + * 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. + * + */ +var jsonObject = { + _tests:[] +}; + +var duration = 30000; +var queueName = "direct://amq.direct//varNumOfParticipantsSsl?durable='true'"; + +var numbersOfProducers = [1, 2, 5, 10, 20]; +var numbersOfConsumers = [1, 2, 5, 10, 20]; + +for(producersIndex=0; producersIndex < numbersOfProducers.length; producersIndex++) +{ + for(consumersIndex=0; consumersIndex < numbersOfConsumers.length; consumersIndex++) + { + var numberOfProducers = numbersOfProducers[producersIndex]; + var numberOfConsumers = numbersOfConsumers[consumersIndex]; + var test = { + "_name": "Varying number of participants: " + numberOfConsumers + " consumers - " + numberOfProducers + " producers - PERSISTENT", + "_queues":[ + { + "_name": queueName, + "_durable": true + } + ], + "_iterations":[ + { + "_acknowledgeMode": 0 + } + ], + "_clients": + QPID.times(numberOfProducers, + { + "_name": "producingClient__PRODUCING_CLIENT_INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "sslconnectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_producers": [ + { + "_name": "Producer__PRODUCING_CLIENT_INDEX", + "_destinationName": queueName, + "_maximumDuration": duration, + "_deliveryMode": 2, + "_messageSize": 1024 + } + ] + } + ] + } + ] + }, + "__PRODUCING_CLIENT_INDEX") + .concat(QPID.times(numberOfConsumers, + { + "_name": "consumingClient__CONSUMING_CLIENT_INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "sslconnectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_consumers": [ + { + "_name": "Consumer__CONSUMING_CLIENT_INDEX", + "_destinationName": queueName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + }, + "__CONSUMING_CLIENT_INDEX")) + }; + + jsonObject._tests= jsonObject._tests.concat(test); + + } +} |
