用JMeter运行Java类(豆壳)(Running Java class with JMeter

2019-10-23 05:28发布

我已经写了一个Java类为JMeter的使用,包装项目作为一个.jar文件和移动该文件到JMeter的目录下的lib / ext文件夹。 我已经看到了如何进行文档,但他们给矛盾的答案。

第一种方式是使用BeanShell的采样导入我的包和类,创建一个类的对象和运行的方式方法。 我已经使用使用示例类具有比类我想要运行的更简单的文件结构此方法。 该示例类具有以下的BeanShell脚本工作。

import tools.JmeterTools;
JmeterTools jt = new JmeterTools();
jt.foo();

当我尝试使用这种方法,因为我要运行的类,它指出变量声明是一个错误,类不能被发现。 我想这是因为我不明白导入究竟是什么,因为在我的项目文件结构是有点奇怪。

第二个使用BeanShell的预处理器的jar添加到类路径。 这个方法我还没有能够得到在所有的工作,但已经阅读别人发现许多成功的帐户。 其工作原理如下:

addClassPath("directory path to jar\lib\ext\foo.jar");
JMeterTest jtm = new JMeterTest();
jmt.test();

会有人有哪种方式会更好地工作或就如何解决进口任何想法任何知识呢?

我一直在使用BeanShell的脚本进口如下:

import client.JMeterTest;

在我的类的顶部封装线以下

import com.x.foo.client;

Answer 1:

你需要在你的jar文件JMETER_HOME/lib文件夹中。

lib/ext是JMeter的扩展/插件等

一旦你已经把你的罐子,你可能需要重新启动JMeter的。



Answer 2:

从BeanShell的运行外部类应该工作正常获得以下几方面满足的先决条件

  1. 你有依赖性测试位于JMeter的classpath中 。
  2. JMeter的需要重新启动才能挑选新的库达
  3. 您需要提供进口全名,加上全类名(或通配符)。

     import com.x.foo.client.JMeterTest; 

    要么

     import com.x.foo.client.*; 
  4. 最后,建议使用JSR223采样 ,并使用“常规”作为语言。 BeanShell的解释有严重的性能问题,所以用它的东西很“轻”之类的变量修改,转换变量属性,等等。因为它实现了可编译接口,因此可以实现类似于天然Java性能产生真正的负载使用JSR223和Groovy码。 参见BeanShell的VS JSR223和Java脚本JMeter的:性能断你一直在等待! 指南详细说明,在安装的Groovy脚本引擎支持基准和说明。



Answer 3:

对于任何人谁在未来有这个问题。 别人给的答案是正确的。 它不是为我工作,因为我已经忘记了,当一个罐子是由Maven的不包测试目录中的文件。

此链接可以帮助,如果没有人做这在未来。 生成测试罐子在测试包jar文件一起



文章来源: Running Java class with JMeter (Bean Shell)