比较脚本断言中的JSON响应

时间:2015-10-05 18:44:25

标签: json rest groovy soapui

我试图比较来自两个独立测试步骤的两个JSON响应,以确定它们是否完全相同(成功的情况意味着它们是)使用以下Groovy脚本:

def response1 = context.expand( '${GetPatientProfileById#Response#}' )
def response2 = context.expand( '${GetPatientProfileById#Response2#}' )
log.info(response1)
log.info(response2)
assert response1 == response2

如何始终发出传递信号并返回以下信息:

Mon Oct 05 11:41:33 CDT 2015:INFO:
Mon Oct 05 11:41:33 CDT 2015:INFO:

我错过了什么?我认为response1和response2会从各自测试步骤的响应中保存JSON字符串值,但我显然遗漏了一些东西。

2 个答案:

答案 0 :(得分:2)

这是我最终使用的:

import groovy.json.JsonSlurper

responseContent = messageExchange.modelItem.testCase.getTestStepByName("TestStepName").getPropertyValue("response")
slurperresponse = new JsonSlurper().parseText(responseContent)

responseContent2 = messageExchange.modelItem.testCase.getTestStepByName("TestStepName2").getPropertyValue("response")
slurperresponse2 = new JsonSlurper().parseText(responseContent)

log.info (slurperresponse)
log.info (slurperresponse2)

assert slurperresponse == slurperresponse2

答案 1 :(得分:1)

您最后response未获得test step GetPatientProfileById名为#的{​​{1}}属性。

这就是context.expand( '${GetPatientProfileById#Response#}' )返回空白的原因。要更正它,请删除最后一个#,如下所示:context.expand( '${GetPatientProfileById#Response}' )

同样@SiKing评论说明您对两个变量都获得了相同的测试步骤响应。

希望这有帮助,