如何将Jmeter连接到Java类?

如何将Jmeter连接到Java类?,java,jmeter,Java,Jmeter,我是Jmeter的新手。目前,我已经在Jmeter中测试了web服务调用。我已经通过web服务调用向服务器发送了一个请求。我的输入是xml文件及其加密形式。所以我在PostBody中给出了加密字符串 我的问题是我无法在Jmeter中执行加密过程。 所以我决定将jmeter连接到我的java类并发送到服务器 Jmeter--->Java class--->server. 我使用了Jmeter 2.8 有没有可能将Jmeter连接到java类?Jmeter可以与很多东西进行通信(请参阅

我是Jmeter的新手。目前,我已经在Jmeter中测试了web服务调用。我已经通过web服务调用向服务器发送了一个请求。我的输入是xml文件及其加密形式。所以我在PostBody中给出了加密字符串

我的问题是我无法在Jmeter中执行加密过程。
所以我决定将jmeter连接到我的java类并发送到服务器

Jmeter--->Java class--->server.
我使用了Jmeter 2.8


有没有可能将Jmeter连接到java类?

Jmeter可以与很多东西进行通信(请参阅Apache)。一种是JMS,它可能用于连接java服务器。或者http(它通常用于)。这完全取决于您的java类能够响应什么。

我不确定是否理解,但如果您想做的是:

  • 加密一些XML
  • 将其作为原始帖子正文传递给HTTP采样器,该采样器将调用您的Web服务
  • 那么,答案如下:

  • 在JMETER_HOME/lib文件夹中添加groovy-all.jar

  • 在HTTP采样器上使用,并放入以下Groovy代码:

    import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
    import org.apache.jmeter.protocol.http.util.HTTPArgument;
    
    HTTPSamplerBase httpSamplerBase = (HTTPSamplerBase) sampler;
    
    HTTPArgument argument = 
                httpSamplerBase.getArguments().getArgument(0);
    
    String valueToEncrypt = argument.getValue();
    // Do you encryption here, in this example I put ENC for testing
    valueToEncrypt = "ENC"+valueToEncrypt;
    httpSamplerBase.getArguments().clear();
    httpSamplerBase.addNonEncodedArgument("", valueToEncrypt, "");
    
  • 在中,将要加密的原始XML放入原始帖子正文文本区域

  • 计划将具有以下结构(HTTP镜像服务器仅用于我的测试):


    注意:我使用当前的JMeter夜间构建,因此我有脚本编译缓存部分,该部分还不可用,将在2.9中提供。相反,将脚本放在一个外部文件中,并在文件名字段中引用它。

    您还可以为java类创建一个jar,并将其附加到测试计划中。然后,您可以使用groovy引擎从JSR223预处理器引用它们

    JMeter 2.9什么时候可用?还不知道,应该在年初,但如果您需要,我已经在预处理器中编写了groovy脚本。我如何将该值传递给http请求?它在我的脚本中的最后3行我已经在预处理器中编写了脚本并执行了它。在运行应用程序时,没有发生任何事情。我对你的答案投了赞成票。