SOAPUI: التحقق من صحة استجابة ضد ملف المخطط XSD

StackOverflow https://stackoverflow.com/questions/317017

  •  11-07-2019
  •  | 
  •  

سؤال

وكيف يمكنني التحقق من صحة استجابة 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;
}

وآمل أن يكون هذا سوف تساعدك: -)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top