Groovy 如何在json请求中添加额外数据
在我的soapui中,我有两个步骤,一个是groovy脚本步骤,另一个是postcrud方法的rest请求步骤 在groovy脚本中,我创建了一个名为“成人”的随机测试用例属性。该值是介于2-5之间的随机值Groovy 如何在json请求中添加额外数据,groovy,soapui,Groovy,Soapui,在我的soapui中,我有两个步骤,一个是groovy脚本步骤,另一个是postcrud方法的rest请求步骤 在groovy脚本中,我创建了一个名为“成人”的随机测试用例属性。该值是介于2-5之间的随机值 testRunner.testCase.setPropertyValue('adults', String.valueOf((int)Math.random()*5)+2); 以下是我对该职位的休息要求: { "xxx": "xxx", "ratePlanCode": "xxx"
testRunner.testCase.setPropertyValue('adults', String.valueOf((int)Math.random()*5)+2);
以下是我对该职位的休息要求:
{
"xxx": "xxx",
"ratePlanCode": "xxx"
"roomOccupancies": [
{
"passengersInformation": [
{
"firstName": "Test",
"lastName": "Tester",
"isLeadPassenger": true,
"age": 30
},
]
}
],
"xxx": "xxx"
}
现在这个请求是针对1名成人乘客的,但问题是如果我有多名乘客,我实际上需要“乘客信息”下的多名乘客。因此,对于每一个额外的成年人,我需要补充:
{
"firstName": "Test",
"lastName": "Tester",
"isLeadPassenger": false,
"age": 30
},
所以我想的是乘客的名字,因为我们不允许重复名字,我们只是在名字和姓氏的末尾加上一个数字。其他两个字段可以保持不变
因此,我的问题是,如何根据从groovy脚本中随机选择的成人数量,在请求中添加额外的乘客详细信息
谢谢,这里有一种复制乘客的方法:注意,我必须修复JSON字符串中的两个逗号(多余和缺少)
import groovy.json.*
def jsonData = '''{
"hotelArrivalDate": "2017-06-01T18:15:00",
"ratePlanCode": "xxx=",
"roomOccupancies": [
{
"passengersInformation": [
{
"firstName": "Test",
"lastName": "Tester",
"isLeadPassenger": true,
"age": 30
}
]
}
],
"holidaysBookingReference": "TestRef"
}'''
def n=1
def data = (new JsonSlurper()).parseText(jsonData)
def newPerson = data.roomOccupancies[0].
passengersInformation[0].
collectEntries {k,v ->
['firstName','lastName'].contains(k) ? [k,v+n] : [k,v]
}
data.roomOccupancies[0].passengersInformation << newPerson
jsonData = (new JsonBuilder(data)).toPrettyString()
{
"hotelArrivalDate": "2017-06-01T18:15:00",
"ratePlanCode": "xxx=",
"roomOccupancies": [
{
"passengersInformation": [
{
"firstName": "Test",
"lastName": "Tester",
"isLeadPassenger": true,
"age": 30
},
{
"firstName": "Test1",
"lastName": "Tester1",
"isLeadPassenger": true,
"age": 30
}
]
}
],
"holidaysBookingReference": "TestRef"
}