首页 文章

未找到org.apache.jmeter.testelement.TestIterationListene的类文件

提问于
浏览
0

我收到以下错误:

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;
}

我的Pom.xml中的J-Meter-Dependencies

<!-- 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

    很可能这个错误是由所谓的jar hell引起的,当时不同的JMeter库依赖于不同的依赖版本,这些版本以某种方式在某处发生冲突 .

    3 different versions 获取JMeter库是否有任何特定原因?根据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 Request采样器创建中添加下一行:

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

    这将允许您在JMeter GUI中打开生成的测试计划 .

相关问题