@After public void afterBenchmarkIntegrationTests() throws Exception { final BenchmarkStatusResponse statusResponse = client().prepareBenchStatus().execute().actionGet(); assertThat( "Some benchmarks are still running", statusResponse.benchmarkResponses(), is(empty())); }
@Test public void testListBenchmarks() throws Exception { SearchRequest searchRequest = prepareBlockingScriptQuery(); final BenchmarkRequest request = BenchmarkTestUtil.randomRequest( client(), indices, numExecutorNodes, competitionSettingsMap, searchRequest); logger.info( "--> Submitting benchmark - competitors [{}] iterations [{}]", request.competitors().size(), request.settings().iterations()); final ActionFuture<BenchmarkResponse> future = client().bench(request); try { waitForQuery.await(); final BenchmarkStatusResponse statusResponse = client().prepareBenchStatus().execute().actionGet(); waitForTestLatch.countDown(); assertThat(statusResponse.benchmarkResponses().size(), equalTo(1)); for (BenchmarkResponse benchmarkResponse : statusResponse.benchmarkResponses()) { assertThat(benchmarkResponse.benchmarkName(), equalTo(BENCHMARK_NAME)); assertThat(benchmarkResponse.state(), equalTo(BenchmarkResponse.State.RUNNING)); assertFalse(benchmarkResponse.hasErrors()); for (CompetitionResult result : benchmarkResponse.competitionResults().values()) { assertThat(result.nodeResults().size(), lessThanOrEqualTo(numExecutorNodes)); validateCompetitionResult( result, competitionSettingsMap.get(result.competitionName()), false); } } } finally { if (waitForTestLatch.getCount() == 1) { waitForTestLatch.countDown(); } client().prepareAbortBench(BENCHMARK_NAME).get(); // Confirm that there are no active benchmarks in the cluster assertThat( client().prepareBenchStatus().execute().actionGet().totalActiveBenchmarks(), equalTo(0)); assertThat(waitForTestLatch.getCount(), is(0l)); } // Confirm that benchmark was indeed aborted assertThat( future.get().state(), isOneOf(BenchmarkResponse.State.ABORTED, BenchmarkResponse.State.COMPLETE)); }