SOAP UI - Return 针对相同 REST API 端点的两个不同 POST 请求负载的两个不同响应
SOAP UI - Return two different responses for two different POST Request Payloads for same REST API end point
我有一个 REST POST API 端点 - "abc/def".
它的请求负载有(在许多其他字段中)一个字段 "yourId" 可以采用 1 或 2,如下所示:
{
"yourId":"1"
}
或
{
"yourId":"2
}
根据 "yourId" 的值,我需要 return 两个不同的响应 1. YOUR_RESPONSE_1 或 2. YOUR_RESPONSE_2 我已经写了groovy 脚本如下所示:
def requestBody = mockRequest.getRequestContent()
log.info "Request body: " + requestBody
yourId="yourId"
id1="1"
id2="2"
if(requestBody.contains(yourId+":"+id1)){
return "YOUR_RESPONSE_1"
}else if(requestBody.contains(yourId+":"+id2)){
return "YOUR_RESPONSE_2"
}else return "ERROR_RESPONSE"
当我从 postman 到达终点 "localhost:8080/abc/def" 时,我得到 ERROR_RESPONSE。我该如何解决它。
我建议您使用 JSONSlurper(),因为这样可以避免使用转义字符并使脚本清晰易读,而且当输入 JSON 很复杂时它也会派上用场
def requestBody = mockRequest.getRequestContent()
def parsedJson = new groovy.json.JsonSlurper().parseText(requestBody)
def ID = parsedJson.yourId
if(ID=="1"){
return "YOUR_RESPONSE_1"
}
else if(ID=="2"){
return "YOUR_RESPONSE_2"
}
else return "ERROR_RESPONSE"
我有一个 REST POST API 端点 - "abc/def".
它的请求负载有(在许多其他字段中)一个字段 "yourId" 可以采用 1 或 2,如下所示:
{
"yourId":"1"
}
或
{
"yourId":"2
}
根据 "yourId" 的值,我需要 return 两个不同的响应 1. YOUR_RESPONSE_1 或 2. YOUR_RESPONSE_2 我已经写了groovy 脚本如下所示:
def requestBody = mockRequest.getRequestContent()
log.info "Request body: " + requestBody
yourId="yourId"
id1="1"
id2="2"
if(requestBody.contains(yourId+":"+id1)){
return "YOUR_RESPONSE_1"
}else if(requestBody.contains(yourId+":"+id2)){
return "YOUR_RESPONSE_2"
}else return "ERROR_RESPONSE"
当我从 postman 到达终点 "localhost:8080/abc/def" 时,我得到 ERROR_RESPONSE。我该如何解决它。
我建议您使用 JSONSlurper(),因为这样可以避免使用转义字符并使脚本清晰易读,而且当输入 JSON 很复杂时它也会派上用场
def requestBody = mockRequest.getRequestContent()
def parsedJson = new groovy.json.JsonSlurper().parseText(requestBody)
def ID = parsedJson.yourId
if(ID=="1"){
return "YOUR_RESPONSE_1"
}
else if(ID=="2"){
return "YOUR_RESPONSE_2"
}
else return "ERROR_RESPONSE"