package examples.benchmarking; import org.junit.Before; import uk.co.acuminous.julez.event.handler.DurationMonitor; import uk.co.acuminous.julez.runner.ConcurrentScenarioRunner; import uk.co.acuminous.julez.scenario.BaseScenario; import uk.co.acuminous.julez.scenario.Scenario; import uk.co.acuminous.julez.scenario.ScenarioSource; import uk.co.acuminous.julez.scenario.limiter.SizeLimiter; import uk.co.acuminous.julez.scenario.source.ScenarioRepeater; import static uk.co.acuminous.julez.util.JulezSugar.*; public abstract class BenchmarkTestCase { protected DurationMonitor durationMonitor = new DurationMonitor(); @Before public void warmUpJulez() { Scenario scenario = new BaseScenario() { @Override public void run() { } }; benchmark(scenario, 1000); } protected void benchmark(Scenario scenario, int n) { ScenarioSource scenarios = new SizeLimiter().limit(new ScenarioRepeater(scenario)).to(n, SCENARIOS); ConcurrentScenarioRunner runner = getScenarioRunner(); runner.register(durationMonitor); runner.queue(scenarios).go(); } protected ConcurrentScenarioRunner getScenarioRunner() { return new ConcurrentScenarioRunner(); } }