Soapui Script Assertion,当Json响应返回为字符串时

时间:2016-07-26 06:51:08

标签: json string soapui assertions

我的Json响应(以字符串形式返回),

"[{\"Serial\":5,\"Name\":\"hold\",\"Types\":[{\"Serial\":36,\"Id\":5,\"Data\":true}]}]"

我的脚本断言,

import groovy.json.JsonSlurper
def ResponseMessage = messageExchange.response.responseContent
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())
assert jsonSlurper.Serial == 5

但我收到错误

" JSON有效负载应该以一个开放的大括号开始' {'或者是一个开放的方括号' ['。 相反,'" [{\" Serial \":5,\" Name \":\" hold \", \"类型\":[{\"串行\":36,\"标识\":5,\"数据\& #34;:真}]}]"'在线上找到:1,列:1"

如何修复此脚本,我只想声明我的响应不应为空,而Serial等于5。

1 个答案:

答案 0 :(得分:0)

所以我通过简单的正则表达式解决了我自己的问题。

以下是代码人员,

//imports
import groovy.json.JsonSlurper

//grab the response
def ResponseMessage = messageExchange.response.responseContent

def TrimResponse =ResponseMessage.replaceAll('^\"|\"$','').replaceAll('^ \\[|\\]$','').replaceAll('\\\\','')

//define a JsonSlurper
def jsonSlurper = new JsonSlurper().parseText(TrimResponse)

//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())

assert jsonSlurper.Serial != null
assert jsonSlurper.Serial == 5
assert jsonSlurper.Types[0].Serial == 36

享受:)