首页 > 解决方案 > Junit 测试用例在 STS 中成功运行,但无法通过 Jmeter 运行。

问题描述

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

018-11-30 14:06:30,854 错误 oajJMeter: 未捕获的异常: java.lang.ExceptionInInitializerError: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_181] at sun.reflect.NativeConstructorAccessorImpl。 newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_181] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_181] at java.lang.reflect.Constructor.newInstance( Constructor.java:423) ~[?:1.8.0_181] at org.apache.jmeter.protocol.java.sampler.JUnitSampler.getClassInstance(JUnitSampler.java:534) ~[ApacheJMeter_junit.jar:5.0 r1840935] at 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] at 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] at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:730) ~[ApacheJMeter_core.jar:5.0 r1840935] at 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。运行(线程。java:748) [?:1.8.0_181] 引起:com.autodesk.acmtest.config.env.EnvConfigs.loadFromPropertiesFile(EnvConfigs.java:38) ~[acm_test.jar:?] at com.java.lang.NullPointerException .autodesk.acmtest.config.env.EnvConfigs.loadFromSystemProperties(EnvConfigs.java:30) ~[acm_test.jar:?] at com.autodesk.acmtest.config.Configs.getEnvConfig(Configs.java:34) ~[acm_test. jar:?] at com.autodesk.acmtest.cases.BaseTests.(BaseTests.java:11) ~[acm_test.jar:?] ... 14 更多 2018-11-30 14:06:30,858 信息 oajeStandardJMeterEngine:通知测试测试结束的听众 2018-11-30 14:06:30,859 INFO oajguJMeterMenuBar: setRunning(false,?] 在 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:?] at com.autodesk.acmtest.cases.BaseTests.(BaseTests.java:11) ~[acm_test.jar:?] ... 14 更多 2018-11-30 14:06:30,858 信息oajeStandardJMeterEngine:通知测试侦听器测试结束 2018-11-30 14:06:30,859 信息 oajguJMeterMenuBar: setRunning(false,?] 在 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:?] at com.autodesk.acmtest.cases.BaseTests.(BaseTests.java:11) ~[acm_test.jar:?] ... 14 更多 2018-11-30 14:06:30,858 信息oajeStandardJMeterEngine:通知测试侦听器测试结束 2018-11-30 14:06:30,859 信息 oajguJMeterMenuBar: setRunning(false,通知测试侦听器测试结束 2018-11-30 14:06:30,859 INFO oajguJMeterMenuBar: setRunning(false,通知测试侦听器测试结束 2018-11-30 14:06:30,859 INFO oajguJMeterMenuBar: setRunning(false,本地

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

标签: javamavenjmeter

解决方案


查看错误原因:

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

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

或者查看行,您可以在system.propertiesEnvConfigs.loadFromSystemProperties文件中执行配置(它位于 JMeter 安装的“bin”文件夹中)或通过命令行参数提供值,例如:-D

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

更多信息:


推荐阅读