在用Java代码运行JMeter文件时,如何包含额外的jar依赖项?

在用Java代码运行JMeter文件时,如何包含额外的jar依赖项?,java,jmeter,Java,Jmeter,因此,我在“resources”文件夹下创建了一个文件夹作为JMeter home: 我有以下代码来运行JMX文件: // JMeter Engine StandardJMeterEngine jmeter = new StandardJMeterEngine(); // Initialize Properties, logging, locale, etc. File jmeterProperties = new ClassPathResource("/jmeter/JMeterHome/

因此,我在“resources”文件夹下创建了一个文件夹作为JMeter home:

我有以下代码来运行JMX文件:

// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();

// Initialize Properties, logging, locale, etc.
File jmeterProperties = new ClassPathResource("/jmeter/JMeterHome/bin/jmeter.properties").getFile();
JMeterUtils.loadJMeterProperties(jmeterProperties.getAbsolutePath());
File jmeterHome = new ClassPathResource("/jmeter/JMeterHome").getFile();
JMeterUtils.setJMeterHome(jmeterHome.getAbsolutePath());
JMeterUtils.initLocale();

// Initialize JMeter SaveService
SaveService.loadProperties();

// Load existing .jmx Test Plan
File jmx = new ClassPathResource("/jmeter/some-test.jmx").getFile();
HashTree testPlanTree = SaveService.loadTree(jmx);

// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
然而,我得到了ClassNotFoundException,这是因为lib文件夹中没有任何jar文件被加载

cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : com.tag.jmeter.ext.config.PropertyReader
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/com.tag.jmeter.ext.config.PropertyReader
问题是很多jar文件甚至都不在maven repo中,而且它们太多了。在类路径中包含它们的最佳方式是什么?或者我是否遗漏了一些内容

我临时添加了以下依赖项,但这不是正确的解决方案:

<dependency>
    <groupId>all</groupId>
    <artifactId>all</artifactId>
    <version>1.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/jmeter/JMeterHome/lib/tag-jmeter-extn-1.1.jar</systemPath>
</dependency>

全部的
全部的
1.1
系统
${project.basedir}/src/main/resources/jmeter/JMeterHome/lib/tag-jmeter-extn-1.1.jar
请注意,我正在编写一系列的util类来运行jmx文件,这将是一个共享的util项目,可以在其他项目中作为依赖项来运行jmx文件

这是我的pom依赖项:

<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_java</artifactId>
    <version>2.13</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-math3</artifactId>
            <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
            <artifactId>commons-pool2</artifactId>
            <groupId>commons-pool2</groupId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_http</artifactId>
    <version>2.13</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-math3</artifactId>
            <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
            <artifactId>commons-pool2</artifactId>
            <groupId>commons-pool2</groupId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_components</artifactId>
    <version>2.13</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-math3</artifactId>
            <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
            <artifactId>commons-pool2</artifactId>
            <groupId>commons-pool2</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_config</artifactId>
    <version>2.13</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-math3</artifactId>
            <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
            <artifactId>commons-pool2</artifactId>
            <groupId>commons-pool2</groupId>
        </exclusion>
    </exclusions>
</dependency>

org.apache.jmeter
爪哇公寓
2.13
commons-math3
commons-math3
commons-pool2
commons-pool2
org.apache.jmeter
ApacheJMeter_http
2.13
commons-math3
commons-math3
commons-pool2
commons-pool2
org.apache.jmeter
ApacheJMeter_组件
2.13
commons-math3
commons-math3
commons-pool2
commons-pool2
org.apache.jmeter
ApacheJMeter_配置
2.13
commons-math3
commons-math3
commons-pool2
commons-pool2

正如您所看到的,我们正在使用JMeter v 2.13,我无法升级,因为有数百个jmx是使用此版本编写的,升级目前不是一个选项。

您遇到的错误是缺少类实现,为了能够使用它,您需要添加一个
ApacheJMeter_jdbc
依赖项,如:

<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_jdbc</artifactId>
    <version>2.13</version>
</dependency>

org.apache.jmeter

您应该总是使用目前最新的可用JMIT版本,所以考虑将“JMT”组件的“<代码> <代码> > <代码> 4 /代码> < / P>对不起,我发布了错误的错误信息…我已经编辑了我的帖子并添加了更多信息。再次抱歉