@Test
	public void benchmark() throws Exception {
		HttpSource source = newHttpSource();
		CounterSink sink = metrics().newCounterSink();
		stream().create(
				generateStreamName(),
				"%s | aggregator --store=%s --count=%d --aggregation=T(org.springframework.util.StringUtils).collectionToDelimitedString(#this.![payload],' ') --timeout=500000%s | %s ",
				source, storeName, MESSAGES_PER_GROUP,
				streamDynamicPart, sink);

		source.ensureReady();

		StopWatch stopWatch = new StopWatch(storeName);
		stopWatch.start(storeName + "-" + executionCount);
		for (int i = 0; i < MESSAGES_PER_GROUP * MESSAGE_GROUPS_PER_EXECUTION; i++) {
			source.postData("boo");
		}

		assertThat(sink, eventually(hasValue(NumberFormat.getInstance().format(MESSAGE_GROUPS_PER_EXECUTION))));

		stopWatch.stop();
		System.out.println(stopWatch.prettyPrint());
	}
Tests each Message Store type within the context of a simple aggregation use-case.
For proper benchmarking, override the values of {@link #EXECUTIONS_PER_STORE_TYPE},
{@link #MESSAGE_GROUPS_PER_EXECUTION}, and/or {@link #MESSAGES_PER_GROUP}.
The current values are minimal to avoid adding overhead to the test suite.

@author Eric Bottard
@author Mark Fisher
spring-xd-shell/src/test/java/org/springframework/xd/shell/command/MessageStoreBenchmarkTests.java