SOAPUI: التحقق من صحة استجابة ضد ملف المخطط XSD
سؤال
وكيف يمكنني التحقق من صحة استجابة SOAP ضد ملف XSD الذي يحدد مخطط الاستجابة. خدمة ويب ادعو لها XMLDocument كما المدخلات والمخرجات، لذلك لا يمكن استخدام WSDL من أجل التحقق من استجابة المخطط.
المحلول
والحالة أنا كنت لا تزال في حاجة الى ذلك (صالحة لمدة SOAP UI النسخة 2.5.1): ملف أو تفضيلات أو إعداد محرر، التحقق من صحة الاستجابة.
نصائح أخرى
استخدم النصي التأكيد:
ومشروع مواطنه = messageExchange.modelItem.testStep.testCase.testSuite.project
ومواطنه wsdlcontext = project.getInterfaceAt (0) .getDefinitionContext ()
ومواطنه المصادقة = جديد com.eviware.soapui.impl.wsdl.support.wsdl.WsdlValidator (wsdlcontext)؛
والأخطاء صفر = validator.assertRequest (messageExchange، كاذبة)
وASSERT errors.length <1
ويمكنك استخدام البرنامج النصي رائع من أجل التحقق من الاستجابة ضد الملف XSD. هنا هو طريقة للتحقق من صحة
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.SchemaFactory;
import javax.xml.XMLConstants;
//Read your xsd file and get the conten into a variable like below.
def xsdContent = "Some Schema Standard";
//Take the response into another variable that you have to validate.
def actualXMLResponse = "Actual XML Response ";
//create a SchemaFactory object
def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
//Create a given schema object with help of factory
def schema = factory.newSchema(new StreamSource(new StringReader(xsdContent ));
//Create a validator
def validator = schema.newValidator();
//now validate the actual response against the given schema
try {
validator.validate(new StreamSource(new StringReader(actualXMLResponse )));
} catch(Exception e) {
log.info (e);
assert false;
}
وآمل أن يكون هذا سوف تساعدك: -)