Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中运行Jmeter测试时出现空指针异常_Java_Maven_Jmeter - Fatal编程技术网

在Java中运行Jmeter测试时出现空指针异常

在Java中运行Jmeter测试时出现空指针异常,java,maven,jmeter,Java,Maven,Jmeter,下面是我在Java8中运行jmeter测试计划的简单代码 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.TestPlan; import org.

下面是我在Java8中运行jmeter测试计划的简单代码

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.TestPlan;
import org.apache.jmeter.threads.ThreadGroup;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;


public class JmxSuite {

    public static void main(String[] args){
        StandardJMeterEngine jmeter = new StandardJMeterEngine();
        JMeterUtils.setJMeterHome("C:\\PLACES\\apache-jmeter-2.11");



        HashTree testPlanTree = new HashTree();

        HTTPSampler httpSampler = new HTTPSampler();
        httpSampler.setDomain("exapmle.com");
        httpSampler.setPort(80);
        httpSampler.setPath("/");
        httpSampler.setMethod("GET");


        LoopController loopController = new LoopController();
        loopController.setLoops(1);
        loopController.addTestElement(httpSampler);
        loopController.setFirst(true);
        loopController.initialize();


        ThreadGroup threadGroup = new ThreadGroup();
        threadGroup.setNumThreads(1);
        threadGroup.setRampUp(1);
        threadGroup.setSamplerController(loopController);

        TestPlan testPlan = new TestPlan("RKSV Jmeter Testing");

        testPlanTree.add("testPlan", testPlan);
        testPlanTree.add("loopController", loopController);
        testPlanTree.add("threadGroup", threadGroup);
        testPlanTree.add("httpSampler", httpSampler);

        jmeter.configure(testPlanTree);
        jmeter.run();
    }
}
但在运行它时,我不断遇到以下错误

INFO    2016-04-07 15:40:44.060 [jmeter.e] (): Listeners will be started after enabling running version
INFO    2016-04-07 15:40:44.079 [jmeter.e] (): To revert to the earlier behaviour, define jmeterengine.startlistenerslater=false
INFO    2016-04-07 15:40:44.108 [jmeter.p] (): No response parsers defined: text/html only will be scanned for embedded resources
INFO    2016-04-07 15:40:44.115 [jmeter.p] (): Maximum connection retries = 10
INFO    2016-04-07 15:40:44.121 [jmeter.e] (): Running the test!
INFO    2016-04-07 15:40:44.141 [jmeter.s] (): List of sample_variables: []
INFO    2016-04-07 15:40:44.141 [jmeter.s] (): List of sample_variables: []
Exception in thread "main" java.lang.NullPointerException
    at org.apache.jmeter.util.JMeterUtils.setProperty(JMeterUtils.java:885)
    at org.apache.jmeter.threads.JMeterContextService.startTest(JMeterContextService.java:92)
    at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:313)
    at JmxSuite.main(JmxSuite.java:48)
下面是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Places</groupId>
  <artifactId>Places</artifactId>
  <version>0.0.1-SNAPSHOT</version>


    <dependencies>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>2.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_http</artifactId>
            <version>2.11</version>
        </dependency>
    </dependencies>


</project>

4.0.0
地点

发生此错误是因为JMeterUtils的内部属性对象此时为空。在代码中添加以下行以初始化此对象:

JMeterUtils.loadJMeterProperties("/path/to/your/jmeter/bin/jmeter.properties");
编辑:您应该调用

JMeterUtils.initializeProperties("/path/to/your/jmeter/bin/jmeter.properties");

这是正确的方法,并在内部完成所有日志和区域设置的初始化。

如果文章中缺少几行,请仔细检查代码,即:

JMeterUtils.loadJMeterProperties("C:\\PLACES\\apache-jmeter-2.11\\bin\\jmeter.properties");
JMeterUtils.initLogging();
JMeterUtils.initLocale();
还有一个示例项目可以用作参考或框架


也考虑使用JMT的最新版本,目前它是

是的,我明白了。从未意识到那些道具如此重要。