private void printTestCaseInfo(
     PrintStream reportOut,
     TestInformationKit.TestCaseInfo testCaseInfo,
     final List<TestInformationKit.TestCaseCounter> countersForTest) {
   reportOut.printf("\t\t<testCase>\n");
   reportOut.printf("\t\t\t<name>%s</name>\n", testCaseInfo.getTestName());
   reportOut.printf(
       "\t\t\t<httprequestcount>%d</httprequestcount>\n", testCaseInfo.getHttpRequestCount());
   reportOut.printf("\t\t\t<runtimeMS>%d</runtimeMS>\n", testCaseInfo.getRuntimeMS());
   reportOut.printf("\t\t\t<httptimeMS>%d</httptimeMS>\n", testCaseInfo.getHttpTimeMS());
   reportOut.printf("\t\t\t<http50thMS>%d</http50thMS>\n", testCaseInfo.getHttp50thMS());
   reportOut.printf("\t\t\t<http90thMS>%d</http90thMS>\n", testCaseInfo.getHttp90thMS());
   reportOut.printf("\t\t\t<http100thMS>%d</http100thMS>\n", testCaseInfo.getHttp100thMS());
   reportOut.printf("\t\t\t<msperrequest>%f</msperrequest>\n", testCaseInfo.getMsPerRequest());
   reportOut.printf("\t\t\t<parseTimeMS>%d</parseTimeMS>\n", testCaseInfo.getParseTimeMS());
   reportOut.printf("\t\t\t<parseCount>%d</parseCount>\n", testCaseInfo.getParseCount());
   reportOut.printf("\t\t\t<counters>\n");
   for (TestInformationKit.TestCaseCounter counter : countersForTest) {
     reportOut.printf("\t\t\t\t<counter>\n");
     reportOut.printf("\t\t\t\t\t<name>%s</name>\n", counter.getName());
     reportOut.printf("\t\t\t\t\t<value>%f</value>\n", counter.getValue());
     reportOut.printf("\t\t\t\t</counter>\n");
   }
   reportOut.printf("\t\t\t</counters>\n");
   reportOut.printf("\t\t</testCase>\n");
   reportOut.flush();
 }
  @Override
  public void suiteFinished(final WebTestDescription suiteDescription) {
    List<TestInformationKit.TestCaseInfo> allTestsRun = TestInformationKit.getAllTestsRun();
    Collections.sort(allTestsRun);

    File parent = new File("target/test-reports");
    parent.mkdirs();

    File report = new File(parent, "timings-report.xml");
    System.out.printf("Writing timings file to '%s'\n", report.getAbsolutePath());
    try {
      PrintStream reportOut = printReportPreamble(report);
      printTestCaseInfo(
          reportOut,
          TestInformationKit.getTotals(),
          Collections.<TestInformationKit.TestCaseCounter>emptyList());
      for (TestInformationKit.TestCaseInfo testCaseInfo : allTestsRun) {
        List<TestInformationKit.TestCaseCounter> countersForTest =
            TestInformationKit.getCountersForTest(testCaseInfo.getTestName());
        printTestCaseInfo(reportOut, testCaseInfo, countersForTest);
      }

      printReportFinalyArguments(reportOut);
    } catch (IOException e) {
      System.out.printf("Cant open or write to timing report file :" + report + "\n");
    }
  }