В настоящее время необходимо создать json полезную нагрузку в виде записи в jmeter с использованием jsr223 pre / post
Ниже приведен ответ:
{
"list": [
{
"listId": "003566",
"position": "position01",
"orderNo": "342455",
"listTime": "91258",
"totalCrates": 0,
"carrier": [
{
"carrierid": "000053051",
"carrierType": "z",
"carrierStatus": "",
"totalItem": "0",
"items": [
]
},
{
"carrierid": "000053050",
"carrierType": "O",
"carrierStatus": "",
"totalItem": "0",
"items": [
]
}
],
"tasks": [
{
"taskId": "00374",
"Quantity": "1",
"cou": "01015",
"Type": "F",
"taskref": "0320",
"cou": [
"01015"
],
"manufactureDates": [
],
"shipByDate": "",
"shipByDateList": [
],
"backendOfferText": "",
"backendNoteText": "",
"offerText": "",
"OrderedQuantity": "1"
},
{
"taskId": "00374",
"Quantity": "1",
"cou": "01015",
"Type": "F",
"taskref": "0320",
"cou": [
"01015"
],
"DiffDates": [
],
"ByDate": "",
"ByDateList": [
],
"backendNoteText": "",
"OrderedQuantity": "1"
}
]
}
]
}
Хотелось бы создать json полезную нагрузку как ниже:
{
"list": [{
"carrierid": "@@@",
"carrierType": "@@@",
"cou": "@@@",
"taskId": "@@@",
"position": "@@@",
"listId": "@@@",
"OQ": "@@@"
},
{
"carrierid": "@@@"
"carrierType": "@@@"
"cou": "@@@"
"taskId": "@@@"
"position": "@@@"
"listId": "@@@"
"OQ": "@@@"
}
]
}
В этом идентификаторе носителя, cou и ID задачи являются динамическими c объекты и объекты будут увеличиваться или уменьшаться в зависимости от предыдущего запроса. то есть он может иметь 1 или 50 ... Так что нужно создать полезную нагрузку json, которая является динамической c и может обрабатывать, если объекты в «задачах»: [увеличивать или уменьшать.
Заранее спасибо любой вид помощи очень ценится.
Jsr223 смог создать полезную нагрузку с 1 объектом в массиве:
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def listS = new JsonSlurper().parse(prev.getResponseData())
def jsonBuilder = new JsonBuilder()
jsonBuilder {
"list" lists.collect {
[
carrierid: vars.get('carrierid'),
carrierType: vars.get('carrierType'),
cou: vars.get('ean'),
position: vars.get('position'),
taskId: vars.get('taskId'),
OQ: vars.get('OQ'),
]
}
}
vars.put('requestBody', jsonBuilder.toPrettyString())
log.info('Generated body: ' + vars.get('requestBody'))