Json в Allure отчете с помощью Attachment

Добрый день, подскажите пожалуйста, кто делал и кто сталкивался. Для API тестов, в конечном шаге я прикрепляю с помощью @Attachment в Allure ожидаемый результат. Он прикрепляется все ок, но отображается в виде строки, что затрудняет его понимание и читаемость. Есть возможность отображать его в виде Json дерева ?

    @SneakyThrows
    @Attachment(value = "Expected data", type = "application/json")
    private static JsonObject attachResults(Object expectedResponse) {

        ObjectMapper mapper = new ObjectMapper();

        String json = mapper.writeValueAsString(expectedResponse);
        JsonParser parser = new JsonParser();
        return parser.parse(json).getAsJsonObject();
    }

попробовал вернуть прям непосредственно json, а он все же отображается как строка.
Возможно есть другое решение ?
в отчете получается вот так


Response подтягивается непосредственно RestAssured и его получается сделать красивым и читаемым.

Вот так будет работать

    @SneakyThrows
    @Attachment(value = "Expected data", type = "application/json", fileExtension = ".json")
    private static byte[] attachResults(Object expectedResponse) {

        ObjectMapper mapper = new ObjectMapper();

        String json = mapper.writeValueAsString(expectedResponse);
        JsonParser parser = new JsonParser();
        return parser.parse(json).getAsJsonObject().toString(4).getBytes();
    }

Идея такая, что JsonObject к строке приведется не тобой и не по твоим правилам в твоем примере, поэтому принудительно форматируешь с нужным тебе отступом и возвращаешь как массив байт. Добавив fileExtension = “.json” проще будет скачать если будет такая необходимость.

Спасибо, нашел другое решение, сразу строю диф если есть различия.

1 лайк