将动态响应作为字符串参数传递给 Groovy 脚本测试步骤

Pass dynamic response to Groovy Script Test step as String parameter

我正在尝试将 json 响应传递给 Groovy 'jsonString' 参数。当我在代码中手动传递 json 时,它可以正常工作。但是我的响应是动态的,我需要在运行时通过。

import groovy.json.JsonSlurper
String jsonString = context.expand('${REST SearchRooms#Response}')
JsonSlurper jsonSlurper = new JsonSlurper()
Map convertedJSONMap  = jsonSlurper.parseText(jsonString)
if(convertedJSONMap."RoomSearchResult")
{
    log.info "ResourceItemID : " + convertedJSONMap."RoomSearchResult"[0]."ResourceItemID"
}

我的 json 回复是这样的:

{
   "Success": true,
   "TotalRecords": 2,
   "RoomSearchResult":    [
            {
         "ResourceItemID": 2290,
         "Name": "Room 23 (L02)",
         "LocationId": 7,
         "GroupID": 518,
         "FloorID": 2,
         "DefaultCapacity": 4,
         "CanBeBooked": true
      },
{
         "ResourceItemID": 2063,
         "Name": "Room 15 (L10)",
         "LocationId": 7,
         "GroupID": 518,
         "FloorID": 10,
         "DefaultCapacity": 8,
         "CanBeBooked": true
      }
   ],
   "Error":    {
      "ErrorCode": 0,
      "ErrorDescription": ""
   }
}

错误:JSON 输入文本不应为空也不应为空。

我是 groovy 的新手。请建议如何操作。

你犯了一个小错误。

冲到线下

发件人:

String jsonString = context.expand('${REST SearchRooms#Response}')

收件人:

String jsonString = context.expand('${SearchRooms#Response}')