我正在使用Karate dsl framework
来自动化肥皂请求, 我想使用XML架构(XSD(验证XML格式的响应。
我需要SchemaUtil.java
代码和函数在 .feature 文件中调用它。我尝试使用 Rest API、空手道演示来验证 json 架构并找到了正确的结果,但对于 soap(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;
}
这是 JSON 模式的示例,请尝试遵循与 XML 相同的方法:schema.feature
。
通常,在空手道中,您不需要执行JSON或XML模式验证,因为空手道具有更简单的方法。实际上,当您使用 XMLmatch
响应时,这比架构验证更好,因为您验证的是实际值,而不仅仅是 XML 的结构。
因此,请试着说服任何要求你这样做的人,这是不需要的。
如果您坚持要执行 XML 模式验证,那么请像您已经在尝试的那样使用 Java 代码。 首先让它在没有空手道的情况下作为普通的 Java 测试或main
方法工作。然后,您可以轻松集成到空手道中,请参阅文档:https://github.com/intuit/karate#calling-java
否则,这不是一个真正与空手道有关的问题。