Как проверить XML-схему (XSD) с мыльным ответом (XML) в карате DSL - PullRequest
0 голосов
/ 29 сентября 2019

Я использую Karate dsl framework для автоматизации запроса мыла, я хочу проверить ответ в формате XML с помощью XML-схемы (XSD).

Мне потребовался код SchemaUtil.java и функции для его вызова.в файле .feature.Я пытался с Rest API, демо каратэ для проверки схемы JSON и нашел правильный результат, но для мыла (xml, xsd) не получаю. Я пытаюсь с этим SchemaUtil.java для проверки XSD.

public static boolean validateXMLSchema(String xsdPath, String xmlPath){

        try {
            SchemaFactory factory = 
                    SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(new File(xsdPath));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(new File(xmlPath)));
        } catch (IOException | SAXException e) {
            System.out.println("Exception: "+e.getMessage());
            return false;
        }
        return true;
    }

1 Ответ

0 голосов
/ 29 сентября 2019

Это пример для схемы JSON, попробуйте использовать тот же подход для XML: schema.feature.

Обычно в каратэ вам не нужно делать схемы JSON или XMLпроверка, потому что каратэ имеет более простой подход.На самом деле, когда вы используете XML для match ответа, это лучше , чем проверка схемы, потому что вы проверяете фактические значения, а не только структуру XML.

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

Если вы настаиваете на проверке XML-схемы, используйте код Java, как вы уже пытались это сделать.Пусть сначала он работает без каратэ, как обычный тест Java или метод main.Тогда вы можете легко интегрироваться в каратэ, см. Документы: https://github.com/intuit/karate#calling-java

В противном случае, это не совсем вопрос, связанный с каратэ.

...