我试图比较来自两个独立测试步骤的两个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字符串值,但我显然遗漏了一些东西。
答案 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评论说明您对两个变量都获得了相同的测试步骤响应。
希望这有帮助,