-1

以下是我的回复。。

jsonCallback({"validationErrors":null,
              "response":{"type":"PreTokenResponse",
                          "preToken":"43a81ef8-693d-4e3d-ad83-f8ed76f39756",
                          "errors":null},
              "exception":null});

现在当我使用

testRunner.testCase.getTestStepByName("xxx").getPropertyValue("response")

上面的脚本正在提取响应。现在我想提取“preToken”值。

这个怎么做?

谢谢

4

2 回答 2

0

我假设您尝试过:

testRunner.testCase.getTestStepByName("xxx").getPropertyValue("response").preToken
于 2013-11-06T14:57:55.937 回答
0

奇怪的是,您的响应而不是纯Json对象包含jsonCallback()包裹您的Json的字符串。

因此,假设您的响应包含此文本,您必须在解析Json对象之前将其删除,一旦将其删除,您就可以使用 解析它JsonSlurper并使用正确的路径访问您的preToken元素:

import groovy.json.JsonSlurper

def response = '''jsonCallback({"validationErrors":null,
              "response":{"type":"PreTokenResponse",
                          "preToken":"43a81ef8-693d-4e3d-ad83-f8ed76f39756",
                          "errors":null},
              "exception":null});'''

// remove the unnecesary data               
response = response - 'jsonCallback('
response = response - ');'
// now you've a correct json
log.info response

// parse the json
def json = new JsonSlurper().parseText(response)
// access the desired value
log.info json.response.preToken
assert '43a81ef8-693d-4e3d-ad83-f8ed76f39756' == json.response.preToken

我将您的响应用作字符串只是为了在 SOAPUI 中为您提供一个工作示例,它必须相同,但从您的testStepresponse的属性中获取:

def response = testRunner.testCase.getTestStepByName("xxx").getPropertyValue("response")
于 2016-10-14T12:51:36.320 回答