3

我们如何在 JMETER 中编写 java 代码?

我从谷歌获得了一些信息,Java Sampler 正在使用它,我尝试过这种方式只是我确实从谷歌复制粘贴了一些代码,但也从导入中得到错误,总是 org.apache.jmeter 显示错误,任何人都可以告诉我关于实现和示例代码alao

这是我的java代码

package com.code4reference.jmeter.functions;
import org.apache.jmeter.engine.util.CompoundVariable; 
import org.apache.jmeter.functions.AbstractFunction; 

public class JavaRequestSamplerDemo extends AbstractJavaSamplerClient {

  @Override
  public SampleResult runTest(JavaSamplerContext ctx) {
    JMeterVariables vars = JMeterContextService.getContext().getVariables();
    vars.put("demo", "demoVariableContent");

    SampleResult sampleResult = new SampleResult();
    sampleResult.setSuccessful(true);
    sampleResult.setResponseCodeOK();
    sampleResult.setResponseMessageOK();
    return sampleResult;
  }  
}
4

3 回答 3

1

如果您缺少 org.apache.jmeter.* 包,您需要将 JMeter 安装的 /lib/ext 文件夹中的所有 jar 包添加到 Java 构建类路径中。有关如何执行此操作,请参阅您的 IDE 文档。

在 Eclipse 中,它可以通过 Project -> Properties -> Java Build Path 在 Idea 中它在 Project -> Dependencies 中完成 如果您使用的是 Apache Ant,则需要执行类似的操作

<path id="build.classpath">
    <fileset dir="${path.to.your.jmeter.lib.ext.folder">
        <include name="*.jar"/>
    </fileset>
<path>

至少有 3 个地方可以注入 Java 代码。

1.Java请求

例子:

  • /src/protocol/java/org/apache/jmeter/protocol/java/test/JavaTest.java
  • /src/protocol/java/org/apache/jmeter/protocol/java/test/SleepTest.java

哪些是 JavaTest 和 SleepTest Java 请求采样器的源代码

2.你自己的采样器

例子:

  • /src/examples/org/apache/jmeter/examples/sampler/ExampleSampler.java

3. Beanshell 或 JSR233 采样器

JMeter 支持Beanshell和 JSR233 脚本,两者都可以理解 Java 语法。

JMeter 源代码可从JMeter 下载页面获得。

于 2013-11-10T11:38:28.573 回答
1

除了需要特定 JMeter 上下文知识的 Java Sampler 之外,其他选项:

  1. 您可以在JSR223 元素中编写 Java 代码,该元素能够像 groovy 一样执行任何 JSR223 支持的语言。

JSR223 Sampler 允许 JSR223 脚本代码

  1. 在其他 JMeter 元素中,如 If Controller,您可以在__BeanShell函数或__groovy中执行 Java 代码

为了提高性能,最好使用 __groovy 函数

  1. 将您的代码打包到一个 jar 中并将其放入 JMeter 的 lib 文件夹中。然后你可以执行它的公共方法。
于 2018-10-31T06:45:10.477 回答
0

我会说使用 BeanShell 来完成类似的事情,除非您打算将一些 JMeter 功能包装到 Java 应用程序中。人们通常使用 BSF 或 BeanShell 创建测试计划添加一些更高级的功能,然后使用 Ant 无头运行。

于 2013-11-13T07:11:55.593 回答