При использовании типа сообщения в качестве JSON, во время проверки получено сообщение об ошибке типа «получение полезного сообщения было пустым» - PullRequest
0 голосов
/ 23 октября 2018

Используя приведенный ниже код, я попытался проверить данные mongodb для поля имени, но контрольный пример не прошел с

20193 [main] INFO com.consol.citrus.Citrus -  FAILURE: Caused by: ValidationException: Unable to validate message elements - receive message payload was empty

Тот же тест проходит, если я закомментирую .messageType(MessageType.JSON) в приведенном ниже коде.

Пожалуйста, дайте мне знать ваши входные данные об этой ошибке, а также шаги для проверки выходного сообщения JSON.

10491 [main] INFO com.consol.citrus.validation.xml.DomXmlMessageValidator - XML message validation successful: All values OK
10495 [main] INFO com.consol.citrus.validation.DefaultMessageHeaderValidator - Message header validation successful: All values OK

@CitrusTest
public void def_DI7381AndDI7383_CreateNamespace() {

    echo("----@CitrusTest Calling API services---- ");
    String strCname1="";
    String strId1="";

    http()
        .client(DIAPI)
        .send()
        .post("modeler/api/internal/namespace")
     // .name("todoRequest")
        .accept("application/json")
        .header("Content-type","application/json")
        .header("access","application/json")
        .payload(new ClassPathResource("updatedJsonFiles/NameSpace/UpdValidNameSpace.json"));
    //  .payload(new ClassPathResource("UpdValidNameSpace.json"));



    http()
        .client(DIAPI)
        .receive()
        .response(HttpStatus.CREATED)
    //  .messageType(MessageType.JSON)
    //  .payload(new ClassPathResource("updatedJsonFiles/NameSpace/UpdValidNameSpace.json"))
    //  .payload("citrus:jsonPath(citrus:message(todoRequest.payload()), '$..name')");
    //  .validate("$..id",id)
        .validate("$.name", strCname);
    //  .validate("$..namespaceId", namespaceId)
    //  .validate("$..description", description);
}

1 Ответ

0 голосов
/ 24 октября 2018

Если вы пропустите .messageType(MessageType.JSON) Citrus использует тип сообщения по умолчанию XML.Вот почему в журналах вы видите XML message validation successful.

Поскольку средство проверки XML-сообщений не может применить заданные выражения JsonPath, ваш тест зеленый.Поэтому вам нужно использовать .messageType(MessageType.JSON).

. Основная причина вашей проблемы заключается в том, что тестируемая система отвечает на запрос Http пустым телом сообщения.Как вы ожидаете, тело сообщения в вашей проверке Citrus поднимает ValidationException: Unable to validate message elements - receive message payload was empty

Поэтому, пожалуйста, убедитесь, что ваша тестируемая система отправляет правильное тело сообщения JSON в качестве ответа, и ваша проверка будет работать так, как ожидается.

...