【问题标题】:Junit Test case run in STS successfully although can not run through Jmeter.Junit 测试用例在 STS 中成功运行,但无法通过 Jmeter 运行。
【发布时间】:2019-05-02 07:07:42
【问题描述】:

我在 Spring 工具编辑器中有一个 Java 项目。当我在春天运行测试用例时,它会被执行。虽然当我将它导出到 jar 并放入 Jmeter/lib/junit.并在 Jmeter 中选择 junit 请求采样器,它失败了

018-11-30 14:06:30,854 错误 o.a.j.JMeter:未捕获的异常: java.lang.ExceptionInInitializerError: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) ~[?:1.8.0_181] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_181] 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_181] 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_181] 在 org.apache.jmeter.protocol.java.sampler.JUnitSampler.getClassInstance(JUnitSampler.java:534) ~[ApacheJMeter_junit.jar:5.0 r1840935] 在 org.apache.jmeter.protocol.java.sampler.JUnitSampler.initializeTestObject(JUnitSampler.java:658) ~[ApacheJMeter_junit.jar:5.0 r1840935] 在 org.apache.jmeter.protocol.java.sampler.JUnitSampler.threadStarted(JUnitSampler.java:646) ~[ApacheJMeter_junit.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:762) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:994) ~[jorphan.jar:5.0 r1840935] 在 org.apache.jorphan.collections.HashTree.traverse(HashTree.java:977) ~[jorphan.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:730) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:718) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249) ~[ApacheJMeter_core.jar:5.0 r1840935] 在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_181] 原因: java.lang.NullPointerException 在 com.autodesk.acmtest.config.env.EnvConfigs.loadFromPropertiesFile(EnvConfigs.java:38) ~[acm_test.jar:?] 在 com.autodesk.acmtest.config.env.EnvConfigs.loadFromSystemProperties(EnvConfigs.java:30) ~[acm_test.jar:?] 在 com.autodesk.acmtest.config.Configs.getEnvConfig(Configs.java:34) ~[acm_test.jar:?] 在 com.autodesk.acmtest.cases.BaseTests.(BaseTests.java:11) ~[acm_test.jar:?] ... 14 更多 2018-11-30 14:06:30,858 信息 o.a.j.e.StandardJMeterEngine:通知测试侦听器测试结束 2018-11-30 14:06:30,859 信息 o.a.j.g.u.JMeterMenuBar: setRunning(false, 本地)

我正在使用 Jmeter 5.0 和 Java 1.8。非常感谢任何帮助。

【问题讨论】:

    标签: java maven jmeter


    【解决方案1】:

    查看错误原因:

    原因:com.autodesk.acmtest.config.env.EnvConfigs.loadFromPropertiesFile(EnvConfigs.java:38) ~[acm_test.jar:?] 处的 java.lang.NullPointerException

    如果您使用相对路径,我的期望是您忘记将一些“.properties”文件与您的 JUnit 测试配置一起复制 - 很可能您应该将文件放到 JMeter 的“bin”文件夹中。

    或者查看EnvConfigs.loadFromSystemProperties 行,您可以在system.properties 文件中执行配置(它位于JMeter 安装的“bin”文件夹中)或通过-D 命令行提供值像这样的论点:

    jmeter -Dparameter1=value1 -Dparameter2=value2 -n -t test.jmx -l result.jtl
    

    更多信息:

    【讨论】:

    • 感谢您的回复。当我运行时,它会引发警告 WARN o.a.j.p.j.s.JUnitSampler: ClassNotFoundException::
    • 您需要将您的 JUnit 测试的所有依赖项添加到 JMeter classpath。或者,您可以将 JUnit 测试构建为 Uber Jar。查看How to Use JUnit With JMeter 了解一般建议和故障排除提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2018-11-17
    • 2014-08-03
    相关资源
    最近更新 更多