JMeter: JSON манипуляции в Groovy с использованием JSR223 - PullRequest
0 голосов
/ 20 апреля 2020

Я получил ответ от HTTP-запроса GET в виде файла JSON, и я хочу использовать этот JSON и передать его следующему HTTP-запросу. Я получил следующие данные ответа

{
  "apiInfo": {
      "id": "23143",
      "name": "bookkeeping",
      "state": "used",
      "data": "15893712000000"
  },
  "apiDetails": [
     {
        "bookName": "abc",
        "state": "old",
        "noOfTimesUsed": "53",
        "userInfo": {
            "name": "abc"
        }
        "additionalParam": {
            "id": "123"
        }
    },
    {
        "bookName": "def",
        "state": "new",
        "noOfTimesUsed": "5",
        "action": "keep",
        "userInfo": {
            "name": "def"
        },
        "additionalParam":{
            "id": "456"
        }
    },
    {
        "bookName": "xyz",
        "state": "avg",
        "noOfTimesUsed": "23",
        "userInfo": {
            "name": "ghi"
        },
        "additionalParam": {
            "id": "789"
        }
    },
    {
        "bookName": "pqr",
        "state": "old",
        "noOfTimesUsed": "75",
        "action": "discard",
        "userInfo": {
            "name": "jkl"
        },
        "additionalParam": {
            "id": "012"
        }
    }
  ]
}

Я хочу использовать часть "apiInfo" и "apiDetails" из ответа JSON и манипулировать его данными. Как вы можете заметить, некоторые поля массива содержат атрибут «действие», а некоторые нет. Я хочу убедиться, что все поля в массиве имеют эти данные и назначены как «действие»: «держать». Кроме того, я хочу добавить «id» из apiInfo и «name» из дополнительныхParams из apiDetails. Конечный результат, который мне нужен, примерно такой:

"apiDetails": [
   {
      "id": "23143",
      "bookName": "abc",
      "state": "old",
      "noOfTimesUsed": "53",
      "action": "keep",
      "additionalParam"{
            "data": "15893712000000"
            "name": "abc",
            "id": "123"
        }
   },
   {
       "id": "23143",
       "bookName": "def",
       "state": "new",
       "noOfTimesUsed": "5",
       "action": "keep",
       "additionalParam"{
            "data": "15893712000000"
            "name": "def",
            "id": "456"
        }
   },
   { 
       "id": "23143",
       "bookName": "xyz",
       "state": "avg",
       "noOfTimesUsed": "23",
       "action": "keep",
       "additionalParam"{
            "data": "15893712000000"
            "name": "ghi",
            "id": "789"
        }
   },
   {
       "id": "23143",
       "bookName": "pqr",
       "state": "old",
       "noOfTimesUsed": "75",
       "action": "keep",
       "additionalParam"{
            "data": "15893712000000"
            "name": "jkl",
            "id": "012"
        }
    }
  ]

Я пытался использовать сэмплер JSR223 и боролся с ним. Это немного сложно, и мне нужна помощь. PS: я пытался использовать код javascript для манипулирования результатами по желанию, но безуспешно.

Пожалуйста, помогите.

Спасибо, Сид

...