【问题标题】:Response Processing In JmeterJmeter中的响应处理
【发布时间】:2013-09-06 19:57:56
【问题描述】:

step1: Jmeter 向服务器发送请求 step2:服务器将以解密的形式向 Jmeter 发送响应。 现在我的任务开始了。 step3:现在我需要对解密的响应执行一些逻辑。

但没有得到我的响应处理逻辑的位置。

到目前为止我所尝试的。 1.我提取ApacheJmeterhttp.jar并将逻辑放在示例方法中的HttpSamplerProxy类中。并制作了带有指定更改的jar。它工作得很好。但我不想更改内部 jar 文件。

  1. 我创建了一个类并扩展了 AbstractFuntion 类。在重写的执行方法中编写逻辑。并使用 PostProcessor 执行它。有效。但这是一种同步方法。每个响应处理都需要时间。意味着按顺序而不是并行处理每个响应。需求是并行处理响应。所以对我来说不方便

请给我一个合适的解决方案。

【问题讨论】:

    标签: java jmeter jmeter-plugins


    【解决方案1】:

    使用 Jsr223 Post Processor + Groovy 作为脚本语言,最后确保在 JSR223 Post Processor 配置中使用缓存键。

    【讨论】:

    • 使用此链接 [link]code4reference.com/2013/06/… 用于制作自定义函数并根据上述 URL 将解密逻辑放入同步执行方法中。
    • 以上帖子帮助了我。感谢您给出合适的答案。我将逻辑放在 JSR223 PostProcessor 脚本区域中,它工作正常。我是 jmeter 的初学者所以给我 Groovy 脚本的示例或提供我的 groovy 脚本链接。并且无法理解这一行“最终确保您在 JSR223 后处理器配置中使用缓存键”。
    • 'code'(import com.jacob.activeX.*; import com.jacob.com.*; ActiveXComponent comp = new ActiveXComponent("Com.Calculation"); String str = prev.getResponseDataAsString( ); String decryptData=Dispatch.call(comp, "uncompress",str).toString(); byte[] modifiedResponse = decryptData.getBytes(); prev.setResponseData(modifiedResponse);)
    • 在上面的评论中,我必须将 comp 声明为静态变量,但不能这样做。有没有办法做到这一点?
    • 您应该接受这个答案,因为它看起来不错。然后再问一个关于这个特定问题的问题。
    【解决方案2】:

    执行方法中的代码

    public synchronized String execute(SampleResult previousResult, Sampler currentSampler)throws InvalidVariableException {
    log.info("@ Inside execute");
    String decryptData=Dispatch.call(comp, "uncompress", str).toString();
    byte[] orignalResponse = previousResult.getResponseData();
    byte[] addedData = decryptData.getBytes();
    orignalResponse = ArrayUtils.addAll(orignalResponse, addedData);
    previousResult.setResponseData(orignalResponse);
    return "";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2017-08-13
      • 2013-05-10
      相关资源
      最近更新 更多