protected void addSamplingListeners(final PerfTest perfTest, final SingleConsole singleConsole) {
		// Add SamplingLifeCycleListener
		singleConsole.addSamplingLifeCycleListener(new PerfTestSamplingCollectorListener(singleConsole,
				perfTest.getId(), perfTestService, scheduledTaskService));
		singleConsole.addSamplingLifeCycleListener(new AgentLostDetectionListener(singleConsole, perfTest,
				perfTestService, scheduledTaskService));
		List<OnTestSamplingRunnable> testSamplingPlugins = pluginManager.getEnabledModulesByClass
				(OnTestSamplingRunnable.class, asList(new MonitorCollectorPlugin(config, scheduledTaskService,
					perfTestService, perfTest.getId()), new TooManyErrorCheckPlugin()));
		singleConsole.addSamplingLifeCycleListener(new PluginRunListener(testSamplingPlugins, singleConsole,
				perfTest, perfTestService));
		singleConsole.addSamplingLifeCycleListener(new AgentDieHardListener(singleConsole, perfTest, perfTestService,
				agentManager, scheduledTaskService));
	}
Run a given {@link PerfTest} with the given {@link GrinderProperties} and
the {@link SingleConsole} .

@param perfTest          perftest
@param grinderProperties grinder properties
@param singleConsole     console to be used.
ngrinder-controller/src/main/java/org/ngrinder/perftest/service/PerfTestRunnable.java