Как отправить несколько JSON в одном запросе (Jmeter) - PullRequest
0 голосов
/ 25 марта 2020

Хотя я мог видеть, что этот вопрос может быть повторен, но не смог найти аналогичного решения для нижеприведенной JSON стойки. Просьба предложить.

У меня есть лист Excel, где данные в столбцах выглядят следующим образом: Данные CSV-файла

Мои ожидаемые JSON как:

       {
       "Child ": {
       "10"
          : { "Post": { "Kid-R":1 },
        "Var": [1,1 ],
        "Tar": [2,2],
        "Fur": [3,3]},

       "11": 
          {"Post": {"Kid-R":2 },
          "Var": [1,1 ],
          "Tar": [2,2 ],
          "Fur": [5,4 ]}
          },
         "Clone": [],
         "Birth": 2,
         "TT": 11,
         "Clock": ${__time(/1000,)}
           }

I Я попытался включить препроцессор BeanShell в JMeter и попробовал следующий код:

    def builder = new groovy.json.JsonBuilder()
    @groovy.transform.Immutable
    class Child {
    String post
    String var
    String Tar
    String Fur
    }


    def villas = new File("Audit_27.csv")
    .readLines()
    .collect { line ->
        new child (line.split(",")[1],(line.split(",") 
    [2]+","+line.split(",")[3]),(line.split(",")[4]+","+line.split(",") 
   [5]),(line.split(",")[6]+","+line.split(",")[7]))}     

    builder(

    Child :villas.collect(),
         "Clone": [],
         "Birth": 2,
         "TT": 11,
         "Clock": ${__time(/1000,)}

    )
     log.info(builder.toPrettyString())
     vars.put("payload", builder.toPrettyString())

И я мог видеть только ответ ниже:

Примечание: я не знаю, как объявить значение "Key" (строка. split (",") [0]) в приведенном выше решении.

      {
     "Child": [
      {
        "post": "\"\"\"Kid-R\"\":1\"",
        "var": "\"[2,2]\"",
        "Tar": "\"[1,1]\"",
        "Fur": "\"[3,3]\""
    },
    {
        "post": "\"\"\"Kid-R\"\":2\"",
        "var": "\"[2,2]\"",
        "Tar": "\"[1,1]\"",
        "Fur": "\"[3,3]\""
      }
     ],
     "Clone": [],
     "Birth": 2,
     "TT": 11,
     "CLock": 1585219797
      }

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

На самом деле я собираюсь следовать советам DmirtiT, как упоминалось в некоторых постах, чтобы использовать случайную переменную для массового запроса API. Тот же ответ помог мне и здесь: создать несколько JSON структур с уникальными данными. Спасибо ..

0 голосов
/ 26 марта 2020

Вы копируете и вставляете решение из этого ответа , не понимая, что делаете.

Если вы измените имя класса с VILLA на own, вам нужно использовать new own вместо new VILLA

Также эта строка не будет компилироваться: Clock: <take system current time> вам нужно использовать System.currentTimeMillis () или соответствующую функцию класса Date для генерации метки времени.

Если вы хотите получить исчерпывающий ответ, вам необходимо предоставить:

  1. Правильно отформатированный CSV-файл
  2. Действительный JSON полезная нагрузка

Тем временем я бы порекомендовал ознакомиться со следующим материалом:

  1. Apache Groovy: парсинг и создание JSON
  2. Apache Groovy - Почему и как вы должны его использовать
  3. Чтение файла в Groovy
...