Pregunta

¿Cómo puedo validar una respuesta SOAP contra un archivo XSD que define el esquema de respuesta? el servicio web al que llamo tiene un documento XML como entrada y salida, por lo que no puede usar WSDL para la validación del esquema de respuesta.

¿Fue útil?

Solución

En caso de que todavía necesite esto (válido para SOAP UI versión 2.5.1): Archivo, Preferencias, Configuración del editor, Validar respuesta.

Otros consejos

Usar aserción de script:

def project = messageExchange.modelItem.testStep.testCase.testSuite.project

def wsdlcontext = project.getInterfaceAt (0) .getDefinitionContext ()

def validator = new com.eviware.soapui.impl.wsdl.support.wsdl.WsdlValidator (wsdlcontext);

def errors = validator.assertRequest (messageExchange, false)

afirmar errores.length < 1

Puede usar el script maravilloso para validar la respuesta contra el archivo xsd. Aquí está la forma de validar

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;
}

Espero que esto te ayude :-)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top