JMeter 中的转换错误通过 Java。缺少哪些依赖项?
Conversion Error in JMeter through Java. What dependencies are missing?
来自 https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui,我有这个测试文件:
public class JMeterTests {
StandardJMeterEngine jmeter;
HashTree testPlanTree;
@BeforeEach
void init() throws Exception {
// JMeter Engine
jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("src/test/java/com/tests/JMeterTests.java");
JMeterUtils.setJMeterHome("/usr/local/Cellar/jmeter/5.4.1");
JMeterUtils.initLocale();
// Initialize JMeter SaveService
SaveService.loadProperties();
// Load existing .jmx Test Plan
FileInputStream in = new FileInputStream("src/test/jmeter/my.jmx");
testPlanTree = SaveService.loadTree(in); // <-- testPlanTree is null, did not load
in.close();
}
@Test
void fromExistingJmx() throws MalformedURLException {
// Run JMeter Test
jmeter.configure(testPlanTree); // <-- Fails since testPlanTree is null
jmeter.run();
}
}
结果,我得到这个错误:
ERROR 2021-10-19 13:29:31.301 [jmeter.s] (): Conversion error com.thoughtworks.xstream.converters.ConversionException: org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
---- Debugging information ----
message : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
class : org.apache.jorphan.collections.ListedHashTree
required-type : org.apache.jorphan.collections.ListedHashTree
converter-type : org.apache.jmeter.save.converters.HashTreeConverter
path : /jmeterTestPlan/hashTree/hashTree/hashTree[4]/hashTree/JSONPostProcessor
line number : 207
我已经确认 my.jmx 在 GUI 模式下工作。
来自 https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui,你有以下陈述:
Have the required JMeter jars from /lib and especially /lib/ext folders of your JMeter installation in your project or module class path.
如果还不够清楚可以Apache JMeter Components » 5.4.1 library in your project classpath
此外,您在复制和粘贴此行时犯了一个错误:
JMeterUtils.loadJMeterProperties("src/test/java/com/tests/JMeterTests.java");
它应该指向 jmeter.properties 文件,最好是原始文件。
来自 https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui,我有这个测试文件:
public class JMeterTests {
StandardJMeterEngine jmeter;
HashTree testPlanTree;
@BeforeEach
void init() throws Exception {
// JMeter Engine
jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("src/test/java/com/tests/JMeterTests.java");
JMeterUtils.setJMeterHome("/usr/local/Cellar/jmeter/5.4.1");
JMeterUtils.initLocale();
// Initialize JMeter SaveService
SaveService.loadProperties();
// Load existing .jmx Test Plan
FileInputStream in = new FileInputStream("src/test/jmeter/my.jmx");
testPlanTree = SaveService.loadTree(in); // <-- testPlanTree is null, did not load
in.close();
}
@Test
void fromExistingJmx() throws MalformedURLException {
// Run JMeter Test
jmeter.configure(testPlanTree); // <-- Fails since testPlanTree is null
jmeter.run();
}
}
结果,我得到这个错误:
ERROR 2021-10-19 13:29:31.301 [jmeter.s] (): Conversion error com.thoughtworks.xstream.converters.ConversionException: org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
---- Debugging information ----
message : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
class : org.apache.jorphan.collections.ListedHashTree
required-type : org.apache.jorphan.collections.ListedHashTree
converter-type : org.apache.jmeter.save.converters.HashTreeConverter
path : /jmeterTestPlan/hashTree/hashTree/hashTree[4]/hashTree/JSONPostProcessor
line number : 207
我已经确认 my.jmx 在 GUI 模式下工作。
来自 https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui,你有以下陈述:
Have the required JMeter jars from /lib and especially /lib/ext folders of your JMeter installation in your project or module class path.
如果还不够清楚可以Apache JMeter Components » 5.4.1 library in your project classpath
此外,您在复制和粘贴此行时犯了一个错误:
JMeterUtils.loadJMeterProperties("src/test/java/com/tests/JMeterTests.java");
它应该指向 jmeter.properties 文件,最好是原始文件。