Как автоматизировать сценарий, чтобы получить ответ в спокойствии, чтобы получить ответ API, отображаемый в формате массива? - PullRequest
0 голосов
/ 06 января 2020

Тело API -

{"custId": "588",
"subId": "479",
"switches": [],
"services":[],
"nationwide": "null",
"subscriptionName": "",
"customerName": "",
"emailDomain": "",
"recipients": [],
"severity": "null",
"plannedOutages": "null",
"portalOnly": "null",
"ecpdId": ""
}

, а ответ -

[
    {
        "fieldName": "customerName",
        "message": "\"customerName\" is not allowed to be empty"
    },
    {
        "fieldName": "emailDomain",
        "message": "\"emailDomain\" is not allowed to be empty"
    },
    {
        "fieldName": "nationwide",
        "message": "\"nationwide\" must be a boolean"
    },
    {
        "fieldName": "portalOnly",
        "message": "\"portalOnly\" must be a boolean"
    },
    {
        "fieldName": "plannedOutages",
        "message": "\"plannedOutages\" must be a boolean"
    },
    {
        "fieldName": "severity",
        "message": "\"severity\" must be a boolean"
    },
    {
        "fieldName": "ecpdId",
        "message": "\"ecpdId\" is not allowed to be empty"
    },
    {
        "fieldName": "services",
        "message": "\"services\" must contain at least 1 items"
    },
    {
        "fieldName": "recipients",
        "message": "\"recipients\" must contain at least 1 items"
    }
]

Я попробовал следующие методы, чтобы получить сообщение в ответ

apiUser .should (ResponseConsequence.seeThatResponse ("Должен видеть ответ и данные как", response -> response.statusCode (400) .body ("message", hasItems ("\" subscriptionName \ "не разрешено быть пустым", " \ "customerName \" не может быть пустым "," \ "emailDomain \" не может быть пустым "," \ "nationalwide \" должно быть логическим "," \ "portalOnly \" должно быть логическим " , "\ "planOutages \" должен быть логическим "," \ "серьезность \" должен быть логическим "," \ "ecpdId \" не допускается быть пустым "," \ "services \" должен содержать хотя бы 1 items "," \ "переключатели \" должны содержать как минимум 1 элемент "," \ "получатели \" должны содержать как минимум 1 элемент "))));

, а другой используемый мной метод -

apiUser.should (ResponseConsequence.seeThatResponse ("Проверить пустые поля:", ответ -> response.statusCode (400) .body ("сообщение. [0]", hasItems (SubNa) me1_msg)). body ("message. [1]", hasItems (custName1_msg)) .body ("message. [2]", hasItems (emailDomain1_msg)). body ("message. [3]", hasItems (nationwide1_msg) ) .body ("message. [4]", hasItems (portalOnly1_msg)) .body ("message. [5]", hasItems (planOutages1_msg)). body ("сообщение. [6]", hasItems (severity1_msg)). body ("message. [7]", hasItems (ecpdId1_msg)) .body ("message. [8]", hasItems (services1_msg)). body ("message. [9]", hasItems (receients1_msg))));

и еще один метод, который я использовал:

. Объявляя все сообщения в строке, а затем вызывая его таким образом

apiUser.should. (ResponseConsequence.seeThatResponse («Проверить обязательные поля:», ответ -> response.statusCode (400) .body («сообщение», содержитString (SubName_msg)) .body («сообщение», содержитString (custName_msg)). Body ("message ", containsString (emailDomain_msg)).. body (" сообщение ", содержитString (nationwide_msg)) .body (" сообщение ", содержитString (portalOnly_msg)). body (" сообщение ", содержитString (planOutages_) msg)). body ("сообщение", содержит строку (severity_msg)) .body ("сообщение", содержит строку (ecpdId_msg)). тело ("сообщение", содержит строку (services_msg)). тело ("сообщение", содержит строку (receients_msg) )));

Но в каждом случае я получал один и тот же результат, показывая

ОШИБКА net .thucydides.core.steps.ConsoleLoggingListener - 1 ожидание не выполнено. JSON путь к сообщению не совпадает. Ожидается: (коллекция, содержащая «\» subscriptionName \ », не может быть пустой», а коллекция, содержащая «\» customerName \ », не может быть пустой», а коллекция, содержащая » \ "emailDomain \" не может быть пустым ", а коллекция, содержащая" \ "nationalwide \", должна быть логической ", а коллекция, содержащая" \ "portalOnly \", должна быть логической ", а коллекция, содержащая" \ "planOutages \ "должен быть логическим", а коллекция, содержащая "\" серьезность \ ", должна быть логической", а коллекция, содержащая "\" ecpdId \ ", не может быть пустой", а коллекция, содержащая "\" services \ ", должна против не менее 1 элемента ", а коллекция, содержащая" \ "переключатели \", должна содержать не менее 1 элемента ", а коллекция, содержащая" \ "получатели \", должна содержать не менее 1 элемента ") Фактически: [" subscriptionName "не допускается чтобы быть пустым, «customerName» не может быть пустым, «emailDomain» не может быть пустым, «общенациональный» должен быть логическим, «portalOnly» должен быть логическим, «planOutages »должен быть логическим,« серьезность » "должен быть логическим," ecpdId "не может быть пустым," services "должен содержать по крайней мере, 1 элемент, «получатели» должны содержать как минимум 1 элемент.

...