示例#1
0
  public void runTest(JMeterTest jMeterTest) throws Exception {
    JMeterResult results;

    // Init JMeter
    jmeterHome = JMeterInstallationProvider.getInstance().getJMeterHome();

    testFile = jMeterTest.getTestFile();
    // setting jmeter.properties file parameter
    setJMeterPropertyFile(jMeterTest);

    if (jMeterTest.getLogLevel() != null) {
      jmeterLogLevel = jMeterTest.getLogLevel();
    }

    results = executeMe();
    //        checkForErrors();
    log.info("for more info. " + results.getFileName());
    if (results.getErrorCount() > 0) {
      throw new Exception(
          "Test Failed. "
              + results.getErrorCount()
              + " Error/s Found.\n"
              + results.getErrorList().toString()
              + "\nRefer "
              + results.getFileName()
              + " for test result");
    }

    if (results.getFailureCount() > 0) {
      throw new AssertionError(
          "Test Failed. "
              + results.getFailureCount()
              + " Assertion Failure/s.\n"
              + results.getAssertList().toString()
              + "\nRefer "
              + results.getFileName()
              + " for test result");
    }
  }
示例#2
0
  private JMeterResult executeMe() throws Exception {
    addLogFile(testFile.getName());
    Boolean resultState = true;
    JMeterResult results = new JMeterResult();

    String resultFile = executeTest(testFile);
    try {
      // Force shutdown
      ShutdownClient.main(new String[] {"Shutdown"});
    } catch (IOException ex) {
      log.error(ex);
      resultState = false;
    }
    try {
      results = resultValidator(resultFile);
    } catch (FileNotFoundException e) {
      log.error(e);
      resultState = false;
    }
    results.setFileName(resultFile);
    results.setExecutionState(resultState);

    return results;
  }
示例#3
0
  private JMeterResult resultValidator(String fileName) throws Exception {

    OMElement documentElement;
    FileInputStream inputStream = null;
    XMLStreamReader parser = null;
    StAXOMBuilder builder = null;
    File file = new File(fileName);
    JMeterResult result;
    List<String> assertionFailureList;
    List<String> errorList;

    if (file.exists()) {
      try {
        inputStream = new FileInputStream(file);
        parser = XMLInputFactory.newInstance().createXMLStreamReader(inputStream);

        builder = new StAXOMBuilder(parser);
        documentElement = builder.getDocumentElement();

        result = new JMeterResult();
        assertionFailureList = new ArrayList<String>();
        errorList = new ArrayList<String>();
        Iterator itrAssertionResult = documentElement.getChildrenWithName(new QName("httpSample"));
        while (itrAssertionResult.hasNext()) {
          OMElement omDocument = (OMElement) itrAssertionResult.next();

          OMElement omName;
          OMElement omFailure;
          OMElement omError;
          OMElement omFailureMessage;
          String responseMessage;
          String label;

          responseMessage = omDocument.getAttributeValue(new QName("s"));
          label = omDocument.getAttributeValue(new QName("lb"));

          if ("false".equalsIgnoreCase(responseMessage)) {
            result.increaseErrorCount();
            String errorMessage = label + " > " + responseMessage;
            if (!errorList.contains(errorMessage)) {
              errorList.add(errorMessage);
            }
          }

          Iterator itrResult = omDocument.getChildrenWithName(new QName("assertionResult"));
          while (itrResult.hasNext()) {
            OMElement omAssertionResult = (OMElement) itrResult.next();

            omName = omAssertionResult.getFirstChildWithName(new QName("name"));

            omFailure = omAssertionResult.getFirstChildWithName(new QName("failure"));

            omError = omAssertionResult.getFirstChildWithName(new QName("error"));

            omFailureMessage = omAssertionResult.getFirstChildWithName(new QName("failureMessage"));

            if ("true".equalsIgnoreCase(omFailure.getText())
                || "true".equalsIgnoreCase(omError.getText())) {
              result.increaseFailureCount();
              String assertionFailure =
                  label + " : " + omName.getText() + " > " + omFailureMessage.getText();
              if (!assertionFailureList.contains(assertionFailure)) {
                assertionFailureList.add(assertionFailure);
              }
            }
          }
        }
        result.setErrorList(errorList);
        result.setAssertList(assertionFailureList);
      } finally {
        if (builder != null) {
          builder.close();
        }
        if (parser != null) {
          try {
            parser.close();
          } catch (XMLStreamException e) {
            // ignore
          }
        }
        if (inputStream != null) {
          try {
            inputStream.close();
          } catch (IOException e) {
            /// ignore
          }
        }
      }

    } else {
      throw new FileNotFoundException("Result File is not Created");
    }

    return result;
  }