无法使用jmeter maven插件实例化类:org.apache.activemq.jndi.ActiveMQInitialContextFactory
简而言之,如果我从Maven运行下面的JMeter计划测试,它会给出结果:无法使用jmeter maven插件实例化类:org.apache.activemq.jndi.ActiveMQInitialContextFactory,maven,jmeter,activemq,jndi,jmeter-maven-plugin,Maven,Jmeter,Activemq,Jndi,Jmeter Maven Plugin,简而言之,如果我从Maven运行下面的JMeter计划测试,它会给出结果: javax.naming.NamingException: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.activemq.jndi.ActiveMQInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.apac
javax.naming.NamingException: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.activemq.jndi.ActiveMQInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.apache.activemq.jndi.ActiveMQInitialContextFactory]
尽管如此,如果我在没有maven插件的情况下运行相同的JMeter计划测试,它将正确运行
提供更多详细信息:
如果以这种方式启动ActiveMQ(Windows命令提示):
然后,我以完全相同的方式运行jmx脚本:
jmeter.bat -n -t C:\_d\scripts\JMeter\JMS_SQS_MVN\SQS.jmx -l C:\temp\activemq.jtl -j C:\temp\activemq.jmx.log
mvn clean verify
我可以转到ActiveMq控制台,看到创建的队列标记为sqs_dummy_mvn6,正如它出现在这样的jmx脚本中一样
现在,使用相同的脚本,但通过maven插件,它只是显示“无法实例化类:org.apache.activemq.jndi.ActiveMQInitialContextFactory”。我知道,每当我使用jmeter maven插件时,嵌入式jmeter和嵌入式activemq都会在验证阶段启动和停止
我通过maven以这种方式调用相同的脚本:
jmeter.bat -n -t C:\_d\scripts\JMeter\JMS_SQS_MVN\SQS.jmx -l C:\temp\activemq.jtl -j C:\temp\activemq.jmx.log
mvn clean verify
…\artproducer\src\test\jmeter\SQS.jmx(下面仅启用发布服务器;禁用订阅以使测试更简单)
…\artproducer\target\jmeter\results\20170111-SQS.jtl
<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">
<sample t="0" it="0" lt="0" ts="0" s="false" lb="JMS Publisher" rc="000" rm="javax.naming.NamingException: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.activemq.jndi.ActiveMQInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.apache.activemq.jndi.ActiveMQInitialContextFactory]" tn="Grupo de Usuários - Consumers 1-1" dt="" by="0" ng="1" na="1"/>
</testResults>
pom:
4.0.0
grpactivemq
艺术制作人
战争
0.0.1-快照
艺术制作人Maven Webapp
http://maven.apache.org
UTF-8
1.8
4.11
5.9.0
4.1.5.1发布
org.apache.activemq
activemq全部
${activemq.version}
org.springframework
弹簧芯
${spring.version}
org.springframework
SpringJMS
${spring.version}
org.apache.xbean
xbean spring
3.7
朱尼特
朱尼特
${junit.version}
com.lazerycode.jmeter
jmetermaven插件
2.0.3
jmeter测试
验证
性能测试
org.apache.activemq
activemq全部
${activemq.version}
org.apache.maven.plugins
maven编译器插件
${jdk.version}
${jdk.version}
艺术制作人
我认为您需要将activemq all.jar
依赖项添加到JMeter的/lib/ext
文件夹中,如上所述,这与您使用的
语法略有不同:
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.0.3</version>
<executions>
<execution>
<id>jmeter-test</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<configuration>
<jmeterExtensions>
<artifact>org.apache.activemq:activemq-all:jar:${activemq.version}</artifact>
</jmeterExtensions>
</configuration>
</plugin>
com.lazerycode.jmeter
jmetermaven插件
2.0.3
jmeter测试
验证
性能测试
org.apache.activemq:activemq all:jar:${activemq.version}
使用2.6.0版的
并在配置节点下添加:
<testPlanLibraries>
<artifact>org.apache.activemq:activemq-spring:5.15.2</artifact>
<artifact>org.apache.activemq:activemq-client:5.15.2</artifact>
<artifact>org.apache.activemq:activemq-broker:5.15.2</artifact>
</testPlanLibraries>
<!-- Remove broken JARS -->
<excludedArtifacts>
<exclusion>commons-pool2:commons-pool2</exclusion>
<exclusion>commons-math3:commons-math3</exclusion>
<exclusion>com.sun.jdmk:jmxtools</exclusion>
<exclusion>com.sun.jmx:jmxri</exclusion>
</excludedArtifacts>
activemq:activemqspring:5.15.2
activemq:activemq客户端:5.15.2
activemq:activemq代理:5.15.2
commons-pool2:commons-pool2
commons-math3:commons-math3
jdmk:jmxtools
com.sun.jmx:jmxri
Kiril,完成了。作为补充,和之间的区别是什么。。。在下面换句话说,你的方法和我的有什么不同。未来的读者可能有兴趣知道,只有在我遵循Kiril answer并启动了ActiveMQ服务之后,它才会起作用,所以,我假设这样的maven插件不会启动ActiveMQ嵌入式,与我在问题中的假设非常不同。在1.x版本中,插件依赖项是通过在POM的插件配置中应用特定的依赖项而引入的。对于2.x版本的插件,我们改变了这一点,因为我们改变了获取和应用不同人工制品的方式。当前的实现应该更可靠。Ubik Load Pack关于插件2.6.0版本的回答也是正确的,并且是向前推进的方法。同样,这个回答帮助我解决了问题。。。只需下载并将这个:文件添加到/lib/ext,不要忘记重新运行/重新启动Jmeter程序来加载.jar dependencies在downvoter上,您能测试一下答案吗?我们团队的成员是jmeter maven插件的核心开发人员,所以答案是正确的。投否决票不是很好!
<testPlanLibraries>
<artifact>org.apache.activemq:activemq-spring:5.15.2</artifact>
<artifact>org.apache.activemq:activemq-client:5.15.2</artifact>
<artifact>org.apache.activemq:activemq-broker:5.15.2</artifact>
</testPlanLibraries>
<!-- Remove broken JARS -->
<excludedArtifacts>
<exclusion>commons-pool2:commons-pool2</exclusion>
<exclusion>commons-math3:commons-math3</exclusion>
<exclusion>com.sun.jdmk:jmxtools</exclusion>
<exclusion>com.sun.jmx:jmxri</exclusion>
</excludedArtifacts>