Jmeter:如何在不同的 JMX 文件之间重用自定义 java 函数

Jmeter: How to reuse custom java function between different JMX file

要求:Post 每个采样器对 Mongo 数据库的响应时间,为此创建了一个 HttpClient java 代码(Class 函数)。

问题:需要调用自定义(在 150+ jmx 文件之间重复使用相同的代码)Java 在每个采样器之后从 Beanshell 调用的函数。

void logTransaction(responseTime,samplerName);

解决方案需要:将自定义 java 函数(.c 或 .txt)与 jmx 文件合并。

例如,在 Load runner 中,我们可以包含具有可重用代码的 .h 文件(在公共路径中共享)并包含在 globals.h 中。

有没有jmeter可用的方法或解决方案?

您可以 运行 相同的脚本文件 JSR223 Sampler 也支持 Java/Beanshell 语言。

Script file 字段中输入脚本文件名和 e 在不同的 jmx 文件中重用它

  1. 将下一行添加到 user.properties 文件(位于 JMeter 安装的 "bin" 文件夹中)

    beanshell.sampler.init=BeanShellSampler.bshrc
    
  2. 将您的 logTransaction 函数放入 BeanShellSampler.bshrc 文件(同一位置,JMeter 的 "bin" 文件夹)
  3. 下次启动 JMeter 时,您将能够从任何脚本中的任何 Beanshell Sampler 调用该函数

参考文献:

代码可以通过保存在 java 文件中并在 JSR223 中给出文件路径来重复使用。

创建一个包含可重用 java 代码的 JAR 并从 JSR223 侦听器调用它检查 "Cache compiled script if available"。

使用默认脚本语言 (Groovy) 对您的调用进行编码:

def yourInstanceClass = new YourClass()
yourInstanceClass.logTransation(sampleResult.getTime(), sampleResult. getSampleLabel());