在我的SOAP中,我有两个步骤,一个groovy脚本步骤和一个针对POST crud方法的rest请求步骤。
在groovy脚本中,我创建了一个名为“成年人”的随机测试用例属性。这个值是介于2-5之间的随机值.
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"
}现在这个要求是固定的,一个成人乘客,但问题是,如果我有多个乘客,我实际上需要多个乘客在"passengersInformation“。因此,几乎每增加一名成年人,我都要补充:
{
"firstName": "Test",
"lastName": "Tester",
"isLeadPassenger": false,
"age": 30
},所以我想的是乘客的名字,因为我们不允许重复名字,我们只是在名字的末尾加上一个数字。另外两个字段我们可以保持不变。
因此,我的问题是,如何根据从groovy脚本中随机选择的成人数量在请求中添加额外的乘客详细信息?
谢谢,
发布于 2017-02-15 15:17:43
这里有一种复制乘客的方法:注意,我必须修复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"
}https://stackoverflow.com/questions/42251416
复制相似问题