DataSet ComponentTesting of distributed and asynchronous processing is notoriously difficult. The Mock, Test and DataSet endpoints work great with the Spring Testing framework to simplify your unit and integration testing using Enterprise Integration Patterns and Camel's large range of Components together with the powerful Mock and Test testing endpoints. The DataSet component (available since 1.3.0) provides a mechanism to easily perform load & soak testing of your system. It works by allowing you to create DataSet instances URI formatdataset:name Where name is used to find the DataSet instance ExampleFor example to test that a set of messages are sent to a queue then consumed from a queue without loosing any messages. // send the dataset to a queue from("dataset:foo").to("activemq:SomeQueue"); // now lets test that the messages are consumed correctly from("activemq:SomeQueue").to("dataset:foo"); The above would look in the Registry to find the foo DataSet instance which is used to create the messages. Then you create a DataSet implementation, such as using the SimpleDataSet as described below, configuring things like how big the data set is and what the messages look like etc. Properties on SimpleDataSet
Load testing ActiveMQ with CamelThere is an example of load testing an ActiveMQ queue using Camel in the ActiveMQ You can grab the code svn co https://svn.apache.org/repos/asf/activemq/trunk/activemq-camel-loadtest/
Then try running the test case cd activemq-camel-loadtest mvn clean install To see how the test is defined see the Spring XML file <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd "> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="dataset:myDataSet"/> <to uri="activemq:test.queue"/> </route> <route> <from uri="activemq:test.queue"/> <to uri="dataset:myDataSet"/> </route> </camelContext> <bean id="myDataSet" class="org.apache.camel.component.dataset.SimpleDataSet"> <property name="size" value="10000"/> <property name="reportCount" value="100"/> </bean> <!-- lets create an embedded broker for this test --> <broker xmlns="http://activemq.apache.org/schema/core" dataDirectory="target/activemq"> <transportConnectors> <transportConnector uri="tcp://localhost:61616"/> </transportConnectors> </broker> </beans> See Also |