【问题标题】:JMeter BeanShell PreProcessor modify requestJMeter BeanShell PreProcessor 修改请求
【发布时间】:2021-03-08 21:58:09
【问题描述】:

我有一个 JMeter HTTP-Request 元素,它执行如下的 POST 调用:

{
  "id" : 1,
  "name" : "me"
}

我想在BeanShell PreProcessor 上加载此请求正文并修改name 字段,我该如何实现?

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:

    回答我自己的问题:

    1. 获取请求正文:

      String requestBody = sampler.getArguments().getArgument(0).getValue();

    2. 修改请求(在我的情况下,我将其修改为解析的JSONObject

    3. 将修改后的请求体设置为当前请求:

      sampler.getArguments().getArgument(0).setValue(modifiedRequestObject.toString());

    【讨论】:

      【解决方案2】:

      Since JMeter 3.1 you're supposed to be using JSR223 Test Elements and Groovy language for scripting 所以我建议重新考虑您的“Beanshell”方法。

      这是一段示例Groovy 代码,展示了如何修改请求:

      def payload = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
      
      payload.name = 'some new name'
      
      sampler.getArguments().clear()
      sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(payload).toPrettyString(), '')
      sampler.setPostBodyRaw(true)
      

      更多信息:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-16
        • 1970-01-01
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-12
        相关资源
        最近更新 更多