Search code examples
javajmeterbeanshellflowable

Is there a way to dynamically set variables values for the post request with jmeter beanshell preprocessor


I need to dynamically build the following post request JSON body with jmeter beanshell preprocessor. I am referring to the following question which has a solution for my problem with looped strings. I would need to do this with json-property(variables) an array of JSON objects with different name and values. Thanks a lot.

{
  "processDefinitionId":"optaplannerkey:1:dbc4af8f-7e04-11e9-afa3-1ecac26bb5e0",
  "businessKey":"optaplannerkey",
  "returnVariables":true,
  "variables": [
    {
      "name": "TaskDescription",
      "value": "Fixing the issue with sink"
    },
    {
      "name": "TaskCategory",
      "value": "plumbing"
    },
    {
      "name": "Priority",
      "value": "Medium"
    },
    {
      "name": "Status",
      "value": "New"
    },
    {
      "name": "SkillsRequired",
      "value": "Plumbing Skills"
    },
    {
      "name": "DueDate",
      "value": "2019-05-24T11:23:08.030+05:30"
    }
  ]
}

Solution

  • Use dummy sampler with the parameterized json request and CSV Data Set Config for the dynamic input. Below, I have paremeterized only two for demo.

    enter image description here enter image description here

    Then, Use JSR223 Post processor with the following code:-

    vars.put("responseVar",prev.getResponseDataAsString());
    

    This will put response body in "responseVar" variable. Fetch it using ${responseVar}

    Hope this helps.