/*
* https://thetestsuite.wordpress.com/2013/09/30/soapui-groovy-slurping-json-in-script-assertions/
*/
//imports
import groovy.json.JsonSlurper
//grab the response
def ResponseMessage = messageExchange.response.responseContent
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())
//verify the Id, Type and Guid aren't null
assert jsonSlurper.data.messages.msg != null
assert jsonSlurper.data.confidenceScore != null
assert jsonSlurper.data.nluResult != null
def nluResultSlurper = new JsonSlurper().parseText(jsonSlurper.data.nluResult)
assert !(nluResultSlurper.isEmpty())
assert nluResultSlurper.text != null
def score = jsonSlurper.data.confidenceScore
def msg = jsonSlurper.data.messages.msg
def text = nluResultSlurper.text
if( score >= 0.8 ) // 등록된 응답
{
assert jsonSlurper.data.messages.msg.contains("인간의 수명은 길어졌지만 병과 사고는 더 많아졌습니다. 급작스런 투병이나 사고로부터 나와 내 가족을 지키기 위해 보험은 필수입니다.")
}
else if( score >= 0.6 && score < 0.8 ) // 재질문
{
assert jsonSlurper.data.messages.msg.contains("보험이 왜 필요한지 알려드릴까요?")
}
else if( score < 0.6 ) // 상담사 연결 응답
{
assert jsonSlurper.data.messages.msg.contains("원하시는 답변 드리지 못해 죄송합니다.\n전문 상담사가 도와 드리겠습니다.")
}
/////////////////////////////////////////////////////////////////////////////////////
{"data":{"confidenceScore":0.88,"isTalkOpen":false,"nluResult":"[{\"text\":\"요즘 저가 보험 어떤거야\",\"error\":{\"message\":\"\",\"code\":0},\"asr_rank\":0,\"nlu_nbest\":[{\"action_kr\":\"search.insurance.by_price\",\"confidence_score\":0.88,\"status\":\"accept\",\"action\":\"search.insurance.by_price\",\"domain\":\"finance\",\"entities\":[{\"text\":\"요즘\",\"role\":\"DATETIME\",\"type\":\"TI_RECENT\",\"type_kr\":\"시간(최신)\"},{\"text\":\"저가\",\"role\":\"\",\"type\":\"PRICE_LOW\",\"type_kr\":\"가격\"},{\"text\":\"보험\",\"role\":\"PRODUCT\",\"type\":\"FP_CATEGORY\",\"type_kr\":\"FP_CATEGORY\"}]}]}]","errorCode":0,"messages":[{"flag":"B","seq":1,"type":"CEV","cdate":"20170207104250","msg":"저희 보험사를 이용하시면 좋은 보험을 저렴하게 이용하실 수 있습니다. \u003ca href \u003d \u0027http://www.anycardirect.com/m/index.html\u0027 target\u003d\u0027_blank\u0027\u003e 자세히 보기 \u003c/a\u003e"}]},"errorCode":0}
/////////////////////////////////////////////////////////////////////////////////////