-
Notifications
You must be signed in to change notification settings - Fork 179
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:jlavallee/JMeter-Rabbit-AMQP
Conflicts: src/main/com/zeroclue/jmeter/protocol/amqp/AMQPSampler.java src/main/com/zeroclue/jmeter/protocol/amqp/gui/AMQPSamplerGui.java
- Loading branch information
Showing
11 changed files
with
878 additions
and
169 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,3 +7,9 @@ stats/ | |
target/ | ||
gc.log | ||
lib/ | ||
/nbproject/private/ | ||
/build/ | ||
/dist/ | ||
/ivy/ | ||
*.iml | ||
.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,32 @@ | ||
# JMeter-Rabbit-AMQP # | ||
========== | ||
====================== | ||
|
||
A [JMeter](http://jmeter.apache.org/) plugin to publish & consume messages from [RabbitMQ](http://www.rabbitmq.com/) or any [AMQP](http://www.amqp.org/) message broker. | ||
|
||
|
||
JMeter Runtime Dependencies | ||
--------------------------- | ||
|
||
Prior to building or installing this JMeter plugin, ensure that the RabbitMQ client library (amqp-client-3.x.x.jar) is installed in JMeter's lib/ directory. | ||
|
||
|
||
Build Dependencies | ||
------------------ | ||
|
||
Build dependencies are managed by Ivy. JARs should automagically be downloaded by Ivy as part of the build process. | ||
|
||
In addition, you'll need to copy or symlink the following from JMeter's lib/ext directory: | ||
* ApacheJMeter_core.jar | ||
|
||
|
||
Building | ||
-------- | ||
|
||
The project is built using Ant. To execute the build script, just execute: | ||
ant | ||
|
||
|
||
Installing | ||
---------- | ||
|
||
To install the plugin, build the project and copy the generated JMeterAMQP.jar file from target/dist to JMeter's lib/ext/ directory. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961"> | ||
<hashTree> | ||
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="RPC Test Plan" enabled="true"> | ||
<stringProp name="TestPlan.comments"></stringProp> | ||
<boolProp name="TestPlan.functional_mode">false</boolProp> | ||
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp> | ||
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</elementProp> | ||
<stringProp name="TestPlan.user_define_classpath"></stringProp> | ||
</TestPlan> | ||
<hashTree> | ||
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> | ||
<stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp> | ||
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> | ||
<boolProp name="LoopController.continue_forever">false</boolProp> | ||
<stringProp name="LoopController.loops">125</stringProp> | ||
</elementProp> | ||
<stringProp name="ThreadGroup.num_threads">8</stringProp> | ||
<stringProp name="ThreadGroup.ramp_time">15</stringProp> | ||
<longProp name="ThreadGroup.start_time">1361373100000</longProp> | ||
<longProp name="ThreadGroup.end_time">1361373100000</longProp> | ||
<boolProp name="ThreadGroup.scheduler">false</boolProp> | ||
<stringProp name="ThreadGroup.duration"></stringProp> | ||
<stringProp name="ThreadGroup.delay"></stringProp> | ||
</ThreadGroup> | ||
<hashTree> | ||
<RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="Reply-To Queue Name" enabled="true"> | ||
<stringProp name="maximumValue">999999999</stringProp> | ||
<stringProp name="minimumValue">1</stringProp> | ||
<stringProp name="outputFormat">000000000</stringProp> | ||
<boolProp name="perThread">false</boolProp> | ||
<stringProp name="randomSeed"></stringProp> | ||
<stringProp name="variableName">replyToQueue</stringProp> | ||
</RandomVariableConfig> | ||
<hashTree/> | ||
<RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="Unique ID" enabled="true"> | ||
<stringProp name="variableName">uniqueId</stringProp> | ||
<stringProp name="outputFormat">0000000</stringProp> | ||
<stringProp name="minimumValue">1</stringProp> | ||
<stringProp name="maximumValue">9999999</stringProp> | ||
<stringProp name="randomSeed">3499272</stringProp> | ||
<boolProp name="perThread">false</boolProp> | ||
</RandomVariableConfig> | ||
<hashTree/> | ||
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="RPC Endpoint" enabled="true"> | ||
<boolProp name="TransactionController.parent">true</boolProp> | ||
<boolProp name="TransactionController.includeTimers">false</boolProp> | ||
</TransactionController> | ||
<hashTree> | ||
<com.zeroclue.jmeter.protocol.amqp.AMQPPublisher guiclass="com.zeroclue.jmeter.protocol.amqp.gui.AMQPPublisherGui" testclass="com.zeroclue.jmeter.protocol.amqp.AMQPPublisher" testname="RPC Request" enabled="true"> | ||
<stringProp name="AMQPSampler.Exchange">my_rpc_exchange</stringProp> | ||
<stringProp name="AMQPSampler.Queue">RPCRequestQueue</stringProp> | ||
<stringProp name="AMQPSampler.RoutingKey">RPCMessage.Request.v1_0</stringProp> | ||
<stringProp name="AMQPSampler.VirtualHost">/</stringProp> | ||
<stringProp name="AMQPSampler.MessageTTL"></stringProp> | ||
<stringProp name="AMQPSampler.ExchangeType">direct</stringProp> | ||
<stringProp name="AMQPSampler.QueueDurable">true</stringProp> | ||
<stringProp name="AMQPSampler.QueueExclusive">false</stringProp> | ||
<stringProp name="AMQPSampler.QueueAutoDelete">false</stringProp> | ||
<stringProp name="AMQPSampler.Timeout">1000</stringProp> | ||
<stringProp name="AMQPSampler.Host">localhost</stringProp> | ||
<stringProp name="AMQPSampler.Port">5672</stringProp> | ||
<stringProp name="AMQPSampler.Username">guest</stringProp> | ||
<stringProp name="AMQPSampler.Password">guest</stringProp> | ||
<stringProp name="AMQPPublisher.MessageRoutingKey">RPCMessage.Request.v1_0</stringProp> | ||
<stringProp name="AMQPPublisher.Message">{ | ||
"RequestMessageText": '${uniqueId}' | ||
}</stringProp> | ||
<stringProp name="AMQPPublisher.MessageType">RPCMessageRequest</stringProp> | ||
<stringProp name="AMQPPublisher.ReplyToQueue">jMeter_${__threadNum}_${replyToQueue}</stringProp> | ||
<stringProp name="AMQPPublisher.CorrelationId">${uniqueId}</stringProp> | ||
</com.zeroclue.jmeter.protocol.amqp.AMQPPublisher> | ||
<hashTree/> | ||
<com.zeroclue.jmeter.protocol.amqp.AMQPConsumer guiclass="com.zeroclue.jmeter.protocol.amqp.gui.AMQPConsumerGui" testclass="com.zeroclue.jmeter.protocol.amqp.AMQPConsumer" testname="RPC Response" enabled="true"> | ||
<stringProp name="AMQPSampler.Exchange"></stringProp> | ||
<stringProp name="AMQPSampler.Queue">jMeter_${__threadNum}_${replyToQueue}</stringProp> | ||
<stringProp name="AMQPSampler.RoutingKey">RPCMessage.Request.v1_0</stringProp> | ||
<stringProp name="AMQPSampler.VirtualHost">/</stringProp> | ||
<stringProp name="AMQPSampler.MessageTTL"></stringProp> | ||
<stringProp name="AMQPSampler.ExchangeType">direct</stringProp> | ||
<stringProp name="AMQPSampler.QueueDurable">false</stringProp> | ||
<stringProp name="AMQPSampler.QueueExclusive">true</stringProp> | ||
<stringProp name="AMQPSampler.QueueAutoDelete">true</stringProp> | ||
<stringProp name="AMQPSampler.Timeout">1000</stringProp> | ||
<stringProp name="AMQPSampler.Host">localhost</stringProp> | ||
<stringProp name="AMQPSampler.Port">5672</stringProp> | ||
<stringProp name="AMQPSampler.Username">guest</stringProp> | ||
<stringProp name="AMQPSampler.Password">guest</stringProp> | ||
<stringProp name="AMQPConsumer.ReceiveTimeout">10000</stringProp> | ||
<stringProp name="AMQPConsumer.PurgeQueue">false</stringProp> | ||
<stringProp name="AMQPConsumer.AutoAck">true</stringProp> | ||
</com.zeroclue.jmeter.protocol.amqp.AMQPConsumer> | ||
<hashTree/> | ||
</hashTree> | ||
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
<ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Respones" enabled="true"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
</hashTree> | ||
</hashTree> | ||
</hashTree> | ||
</jmeterTestPlan> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<ivy-module version="2.0"> | ||
<info organisation="com.zeroclue.jmeter.protocol.amqp" module="jmeter-rabbit-amqp"/> | ||
<configurations> | ||
<conf name="build" description="Libraries needed to for compilation"/> | ||
<conf name="runtime" extends="build" description="Libraries that need to be included with project jar" /> | ||
</configurations> | ||
<dependencies> | ||
<dependency org="org.apache.commons" name="commons-lang3" rev="3.0" conf="build->default"/> | ||
<dependency org="commons-io" name="commons-io" rev="1.4" conf="build->default"/> | ||
<dependency org="commons-jexl" name="commons-jexl" rev="1.1" conf="build->default"/> | ||
<dependency org="commons-codec" name="commons-codec" rev="1.4" conf="build->default"/> | ||
<dependency org="commons-collections" name="commons-collections" rev="3.2.1" conf="build->default"/> | ||
<dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" conf="build->default"/> | ||
<dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="build->default"/> | ||
<dependency org="commons-net" name="commons-net" rev="1.4.1" conf="build->default"/> | ||
<dependency org="org.apache.jmeter" name="jorphan" rev="2.6" conf="build->default"/> | ||
<dependency org="avalon-logkit" name="avalon-logkit" rev="2.0" conf="build->default"/> | ||
<dependency org="com.rabbitmq" name="amqp-client" rev="3.3.4" conf="build->default"/> | ||
<dependency org="org.apache.jmeter" name="ApacheJMeter_core" rev="2.11" conf="build->default"/> | ||
</dependencies> | ||
</ivy-module> |
Oops, something went wrong.