Файл класса для org.apache.jmeter.testelement.TestIterationListene не найден - PullRequest
0 голосов
/ 09 декабря 2018

Я получаю следующую ошибку:

Error:(87, 20) java: cannot access org.apache.jmeter.testelement.TestIterationListener
  class file for org.apache.jmeter.testelement.TestIterationListener not found

Я не знаю почему.Вот некоторая информация о проблемном коде:

Импорт:

import org.apache.jmeter.assertions.ResponseAssertion;
import org.apache.jmeter.control.LoopController;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.protocol.http.sampler.HTTPSampler;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestPlan;
import org.apache.jmeter.threads.SetupThreadGroup;
import org.apache.jorphan.collections.HashTree;

Функция, вызывающая эту ошибку:

private HTTPSampler createHttpSampler(String method, String host, int port, String path){
    HTTPSampler httpSampler = new HTTPSampler();
    httpSampler.setMethod(method);
    httpSampler.setDomain(host);
    httpSampler.setPort(port);
    httpSampler.setPath(path);
    return httpSampler;
}

Мои J-метры-зависимости внутри моего Pom.xml

        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>2.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_http -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_http</artifactId>
            <version>2.8</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>3.1</version>
        </dependency>

Ребята, возможно, знаете, что вызывает эту проблему?Есть ли способ проверить, какую зависимость я должен добавить, чтобы получить

org.apache.jmeter.testelement.TestIterationListener

1 Ответ

0 голосов
/ 10 декабря 2018

Скорее всего, ошибка вызвана так называемым jar hell , когда разные библиотеки JMeter используют разные версии зависимостей, которые где-то конфликтуют.

Есть ли какая-либо конкретная причина для наличия библиотек JMeter из 3 разных версий ?Согласно JMeter Best Practices вы должны всегда использовать последнюю версию JMeter, которая на данный момент является JMeter 5.0 , поэтому рассмотрите возможность изменения ваших зависимостей так:

<dependency>
  <groupId>org.apache.jmeter</groupId>
  <artifactId>ApacheJMeter_core</artifactId>
  <version>5.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_http -->
<dependency>
  <groupId>org.apache.jmeter</groupId>
  <artifactId>ApacheJMeter_http</artifactId>
  <version>5.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
<dependency>
  <groupId>org.apache.jmeter</groupId>
  <artifactId>ApacheJMeter_java</artifactId>
  <version>5.0</version>
</dependency>

Вы также можете добавить следующие строки в ваш HTTP-запрос создание сэмплера:

httpSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());

Это позволит вам открыть сгенерированный план тестирования в графическом интерфейсе JMeter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...