SOAP UI - Возвращает два разных ответа для двух разных полезных данных запроса POST для одной и той же конечной точки REST API. - PullRequest
0 голосов
/ 19 июня 2020

У меня есть конечная точка REST POST API - «abc / def».
В полезной нагрузке запроса есть (из многих других полей) поле «yourId», которое может принимать либо 1, либо 2, как показано ниже:

{
  "yourId":"1"
}

OR

{
  "yourId":"2
}

На основе значения yourId мне нужно вернуть два разных ответа: 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" 

Когда я попадаю в конечную точку «localhost: 8080 / abc / def» от почтальона, я получаю ERROR_RESPONSE. Как это исправить.

1 Ответ

0 голосов
/ 19 июня 2020

Я бы посоветовал вам использовать JSONSlurper (), так как это позволяет избежать использования escape-символов и делает скрипт разборчивым. Также он пригодится, когда ввод 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" 
...