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 文件,最好是原始文件。