2016-06-07 5 views
0

У меня есть jsonurl, который я хочу читать и это выглядит следующим образом:Как написать пользовательский фидер для gatling json?

> { 
>  "elements": [ 
>  { 
>   "box": { 
>   "x": 0, 
>   "y": 0, 
>   "width": 186, 
>   "height": 10.526316 
>   }, 
>   "type": "Header" 
>  }, 
>  { 
>   "box": { 
>   "x": 0, 
>   "y": 0, 
>   "width": 0, 
>   "height": 0 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 0, 
>   "y": 14.035088, 
>   "width": 43.333332, 
>   "height": 3.508772 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 95.08772, 
>   "y": 14.035088, 
>   "width": 90.87719, 
>   "height": 45.614037 
>   }, 
>   "type": "Image" 
>  }, 
>  { 
>   "box": { 
>   "x": 95.08772, 
>   "y": 63.157894, 
>   "width": 90.87719, 
>   "height": 3.508772 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 95.08772, 
>   "y": 63.157894, 
>   "width": 90.87719, 
>   "height": 3.508772 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 47.54386, 
>   "y": 42.105263, 
>   "width": 43.333332, 
>   "height": 5.9649124 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 0, 
>   "y": 0, 
>   "width": 43.333332, 
>   "height": 98.24561 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 47.54386, 
>   "y": 0, 
>   "width": 43.333332, 
>   "height": 98.24561 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 95.08772, 
>   "y": 0, 
>   "width": 43.333332, 
>   "height": 98.24561 
>   }, 
>   "type": "Regular" 
>  }, 
>  { 
>   "box": { 
>   "x": 142.63158, 
>   "y": 0, 
>   "width": 43.333332, 
>   "height": 98.24561 
>   }, 
>   "type": "Regular" 
>  } 
>  ], 
>  "points": [ 
>  { 
>   "x": 190, 
>   "y": 22.192982 
>  }, 
>  { 
>   "x": 376, 
>   "y": 22.192982 
>  }, 
>  { 
>   "x": 376, 
>   "y": 120.4386 
>  }, 
>  { 
>   "x": 190, 
>   "y": 120.4386 
>  } 
>  ], 
>  "state": "UNUSED", 
>  "contentPath": "/content/ffx/print-authoring/en/newsholes/FNZ/DPT/2016/05/30/test_pages/q001/newshole-63019301", 
>  "assetId": null }, 

Затем я хочу прочитать "state" и "contentPath" и сопоставить их. в настоящее время я использую статический источник как:

вал nhfeeder = jsonFile ("форм-data.json")

с использованием в качестве,

.feed (nhfeeder)

, который является статическим источником, поэтому я хочу, чтобы пользовательский фидер, который может считывать непосредственно с jsonurl и делать необходимые ,

ответ

0

В Gatling documentation вы можете найти решение в разделе «JSon фидеров»

val jsonUrlFeeder = jsonUrl("http://me.com/foo.json") 
+0

Это не очень полезный ответ, а также общий и, кроме того, пункт – VeRo

0

Единственное, что вам нужно изменить, чтобы сделать Корневой элемент вашего JSON в виде массива. Несоблюдение этого правила приведет к: #

java.lang.IllegalArgumentException: Root element of JSON feeder file isn't an array

Ваш JSON Структура должна быть:

[ 
    {"box": { 
     "x": 0, 
     "y": 0, 
     "width": 186, 
     "height": 10.526316 
    }, 
    "type": "Header" 
    }, 
    { 
    "box": { 
     "x": 0, 
     "y": 0, 
     "width": 0, 
     "height": 0 
    }, 
    "type": "Regular" 
    }, 
    { 
    "box": { 
     "x": 0, 
     "y": 14.035088, 
     "width": 43.333332, 
     "height": 3.508772 
    }, 
    "type": "Regular" 
    } 
] 

С этого момента, когда вы создаете Feeder:

val nhfeeder = jsonUrl("http://url-to-json/shapes-data.json").records 

теперь у вас есть фидер, который будет предоставлять значения при использовании в сеансе. Выражения вроде:

scenario("my-scenario") 
.foreach(nhfeeder, "shape", "index") { 
exec(
    http("calculate-for-shape-{index}") 
    .get("/calculate-area/${shape.box.width}/${shape.box.height}") 
)} 

Я представил сценарий, в котором вы хотите протестировать функцию, которая вычисляет площадь ваших фигур. Важная часть здесь заключается в том, что вы можете использовать язык выражений для навигации по записям. Json Object внутри вашего Json Array.

Смежные вопросы