使用JMeter测试Java类


问题内容

我想测试一个Java服务调用。我的第一次尝试是使用“ Java Request
Sampler”

文档

通过此采样器,您可以控制实现JavaSamplerClient接口的Java类。

我不确定如何获取org.apache.jmeter.protocol.java.sampler.JavaSamplerClient接口,因为在JMeter端既没有Maven
Artifact也没有提供二进制文件。只是一个JMeter
Maven插件(这不是我想要的)。我可以在本地Maven存储库中安装所需的二进制文件,只是不知道它们在哪里可用。

想知道是否有人在使用“ Java Request Sampler”?

PS也许我应该尝试JUnit
Sampler


问题答案:

我们正在与ANT构建和使用的罐子,它位于二进制文件从JMeter的\lib\ext\。将AbstractJavaSamplerClient其用于Java的请求采样位于该文件中\lib\ext\ApacheJMeter_java.jar。要使用此抽象类,还必须导入JAR文件\lib\ext\ApacheJMeter_core.jar,例如,该文件保存该类SampleResult

构建Java类之后,我们还将生成的JAR文件也放入文件夹中\lib\ext\。如果我们的类使用任何依赖关系(第3部分JAR),则将其放在“ \
lib”文件夹中。之后,您可以启动JMeter,然后可以在Java Request Sampler中选择Java类。

这是此类Java Request Sampler的示例:

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;
  }  
}