繁体   English   中英

使用JMeter(Bean Shell)运行Java类

[英]Running Java class with JMeter (Bean Shell)

我已经编写了一个供JMeter使用的Java类,将该项目打包为.jar文件,然后将该文件移到jmeter目录中的lib / ext文件夹中。 我看过有关如何进行的文档,但它们给出了矛盾的答案。

第一种方法是使用BeanShell Sampler导入我的包和类,创建该类的对象并以这种方式运行方法。 与示例类相比,我已经使用了这种方法,该类的文件结构比我要运行的类的文件结构更简单。 示例类与以下BeanShell脚本一起使用。

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

当我尝试对要运行的类使用此方法时,它指出变量声明是错误的,并且找不到该类。 我认为这是因为我不完全了解要导入的内容,因为项目中的文件结构有些奇怪。

第二个使用BeanShell PreProcessor将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;

您需要将jar文件放在JMETER_HOME/lib文件夹中。

lib/ext用于JMeter扩展/插件等。

放置jar后,可能必须重新启动JMeter。

满足以下先决条件,从Beanshell运行外部类应该可以正常工作

  1. 具有依赖项的测试位于JMeter classpath中
  2. 需要重新启动JMeter才能拾取新库
  3. 您需要提供完整的软件包名称以及完整的类名称(或通配符)以进行导入。

    要么

     import com.x.foo.client.JMeterTest; 

    要么

     import com.x.foo.client.*; 
  4. 最后,建议使用JSR223 Sampler并使用“ groovy”作为语言。 Beanshell解释器存在严重的性能问题,因此将其用于非常“轻”的操作(例如变量修改,将变量转换为属性等)。要生成实际负载,请使用JSR223和groovy,因为它实现了Compilable接口,因此您可以实现与本机Java类似的性能码。 请参见Beanshell,JSR223和Java JMeter脚本:您一直在等待的性能下降! 有关安装Groovy脚本引擎支持的详细说明,基准测试和说明的指南。

对于以后遇到此问题的任何人。 其他人给出的答案是正确的。 它对我不起作用,因为我忘记了在制作jar时Maven不会将文件打包在测试目录中。

如果将来有人这样做,此链接可能会有所帮助。 生成测试包以及测试包中的jar文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM