@Override
  public Object call()  {
    logger.info("Start processing the TestRunner(" + this.stepPhase + ") id " + id + " in " + interval + "ms");
    waitAround(interval);
    if (stepPhase.equals(StepPhase.LOADREACHED)) {
      this.setReportForCurrentPhase();
    }
    this.reports.get(stepPhase).setStartTimestamp();
    test.suite.addChild(this.reports.get(stepPhase).getUuid());
    this.reports.get(stepPhase).addLabel("suite", test.suite.getName());
    this.reports.get(stepPhase).addLabel("parentSuite",test.suite.getParentSuite());
    if (this.webDriver == null) {
      StatusDetails details = new StatusDetails();
      details.setCode(4);
      details.setMessage("Skipped due to absence of webdriver");
      this.reports.get(stepPhase).setDetails(details);
      this.reports.get(stepPhase).setStatus(Status.SKIPPED);
    }

    for (TestStep step : this) {
      if (this.webDriver != null) {
        if (this.test.isLoadTest) {
          if (step.getStepPhase().equals(StepPhase.ALL) || step.getStepPhase().equals(stepPhase)) {
            step.processTestStep(stepPhase, this.reports.get(stepPhase), testConfig.isLoadTest());
          }
        } else {
          if (!this.test.hasWebdriverIssue()) {
            step.processTestStep(stepPhase, this.reports.get(stepPhase), testConfig.isLoadTest());
          } else {
            step.skipTestStep(stepPhase, this.reports.get(stepPhase), testConfig.isLoadTest());
          }
        }
      } else {
        step.skipTestStep(stepPhase, this.reports.get(stepPhase), testConfig.isLoadTest());
      }
    }
    this.reports.get(stepPhase).setStopTimestamp();
    return null;
  }
Super constructor for JsTestRunner, which does not create the webdriver,
since it's done by the js script

@param test   the test 
@param id        the id
KITE-Framework/src/main/java/org/webrtc/kite/tests/TestRunner.java