Afirmaciones en SoapUIScripts, XQuery, tipos XPath

โšก Resumen inteligente

Afirmaciones en SoapUI Son los puntos de control que deciden si la respuesta de un servicio web es correcta, convirtiendo una solicitud que simplemente se ejecuta en una prueba que realmente pasa o falla con contenido real y verificable.

  • ๐Ÿ”˜ Categorรญas: Contenido de la propiedad, Cumplimiento/Estado/Estรกndares, Script, SLA, JMS y Seguridad.
  • โ˜‘๏ธ Contiene: Confirma que existe una cadena en la respuesta, con soporte para expresiones regulares.
  • โœ… No contiene: Confirma que una cadena estรก ausente, lo cual resulta รบtil para tokens de error y campos filtrados.
  • ๐Ÿงช Coincidencia de XPath: Primero, declare el espacio de nombres y, a continuaciรณn, seleccione un nodo y compare su valor.
  • ๐Ÿ› ๏ธ Coincidencia XQuery: Valida conjuntos de nodos repetitivos que, de otro modo, requerirรญan cientos de comprobaciones XPath.
  • ๐Ÿ“Š Guiรณn: Groovy Las aserciones gestionan las respuestas dinรกmicas y la lรณgica de configuraciรณn o desmontaje.
  • ๐Ÿ” Soluciรณn de Problemas: La mayorรญa de los fallos se deben a un espacio de nombres incorrecto y al uso de un punto en lugar de dos puntos.

Afirmaciones en SoapUI

ยฟQuรฉ es una afirmaciรณn?

Aserciรณn significa acto de afirmar o afirmar algo. Tambiรฉn puede interpretarse como un punto de control o un punto de validaciรณn.

Una vez que se envรญa una solicitud a un servidor web, se recibe una respuesta. Necesitamos validar si la respuesta contiene los datos que esperamos. Para validar la respuesta, necesitamos usar aserciones. Sin una aserciรณn, un paso de prueba solo demuestra que el servicio respondiรณ, no que respondiรณ correctamente, por lo que cada Prueba de API deberรญa llevar al menos uno.

Tipos de afirmaciรณn

Hay varias formas de afirmar una respuesta; sin embargo, nos centraremos en las mรกs utilizadas. SoapUI tipos de aserciรณn al validar una respuesta. A continuaciรณn se muestran las categorรญas que estรกn disponibles en la versiรณn de cรณdigo abierto de SoapUI.

  1. Contenido de la propiedad
  2. Estรกndar de estado de cumplimiento
  3. Script
  4. SLA
  5. JMS
  6. Seguridad

El cuadro de diรกlogo agrupa todas las afirmaciones bajo esas categorรญas, como se muestra en la captura de pantalla a continuaciรณn.

Categorรญas de aserciones enumeradas en el SoapUI Cuadro de diรกlogo Agregar aserciรณn
Tipos de afirmaciones en SoapUI

Ademรกs de las funciones mencionadas anteriormente, la versiรณn Pro tambiรฉn incluye una funciรณn de aserciรณn JDBC integrada que nos permite verificar si el servicio web ha actualizado correctamente la base de datos.

Nota de versiรณn: corriente SoapUI La documentaciรณn tambiรฉn enumera un JDBC categorรญa (Estado JDBC y Tiempo de espera JDBC) junto con las categorรญas anteriores, y una Contenido del mensaje afirmaciรณn dentro del Contenido de la propiedad para una comparaciรณn XML mรกs completa. La ediciรณn comercial a la que se hace referencia aquรญ como "Pro" ahora se vende como ReadyAPI Desarrollado por SmartBear, por lo que las etiquetas del menรบ en las versiones mรกs recientes pueden mostrarse de forma diferente, aunque el comportamiento de la aserciรณn se mantiene igual.

Contiene afirmaciรณn

Busca la existencia de la cadena especificada. Tambiรฉn admite expresiones regulares.

Continuaremos con el mismo ejemplo del tutorial anterior con solicitud WSDL como http://www.dneonline.com/calculator.asmxSi aรบn no has creado ese proyecto, trabaja a travรฉs de Creaciรณn de un proyecto, un conjunto de pruebas y un caso de prueba. de antemano.

Paso 1: Por defecto no hay aserciones.

  1. El nรบmero de afirmaciones se muestra en la pestaรฑa Afirmaciones.
  2. Para agregar una nueva afirmaciรณn, haga clic en el botรณn "Agregar nueva afirmaciรณn".

SoapUI Pestaรฑa Aserciones que no muestra ninguna aserciรณn y el botรณn Agregar nueva aserciรณn

Paso 2: Ahora

  1. Seleccione la categorรญa de afirmaciรณn.
  2. Seleccione el tipo de afirmaciรณn.
  3. Haga clic en 'Agregar'

Agregar cuadro de diรกlogo de aserciรณn con la categorรญa y el tipo de aserciรณn seleccionados.

Paso 3: Vamos a comprobar si la cadena '46' existe en la respuesta. Haz clic en 'Aceptar'.

Nota: Tambiรฉn podemos ignorar mayรบsculas y minรบsculas y agregar expresiones regulares.

Contiene un cuadro de diรกlogo de configuraciรณn de aserciรณn con el valor 46 introducido.

Paso 4: Al agregarlo, se ejecuta inmediatamente la aserciรณn y muestra si es VรLIDO o INVรLIDO.

La pestaรฑa de aserciones informa que la aserciรณn Contains es VรLIDA.

Paso 5: Ahora supongamos que cambiamos el contenido de 'Contains Assertion en SoapUI' a '47 y veamos quรฉ pasa.

Ediciรณn del contenido de la aserciรณn Contains de la pรกgina 46 a la 47.

Paso 6: Se ejecuta la aserciรณn y se muestra el resultado al usuario. Como no encontramos la cadena '47' en la respuesta, la aserciรณn ha fallado.

La pestaรฑa de aserciones informa que la aserciรณn Contains ha fallado.

No contiene afirmaciรณn

Su contraparte funciona a la inversa. Busca la inexistencia de la cadena especificada. Tambiรฉn admite expresiones regulares.

Paso 1: Ahora, despuรฉs de hacer clic en el botรณn 'agregar nuevas aserciones',

  1. Seleccione la categorรญa de afirmaciรณn.
  2. Seleccione el tipo de afirmaciรณn: en este caso, "NO contiene".
  3. Haga clic en 'Agregar'

Agregar cuadro de diรกlogo de aserciรณn con la opciรณn NO contiene seleccionada

Paso 2: Validemos si la cadena 'intA' existe en la respuesta. Introduzca la cadena 'FromCurrency' y haga clic en 'Aceptar'.

No contiene cuadro de diรกlogo de aserciรณn con la cadena FromCurrency ingresada

Paso 3: Tan pronto como se agrega una aserciรณn, se ejecuta y muestra el resultado. Hasta ahora hemos agregado dos aserciones, por lo que ambas se ejecutan y muestran el resultado.

Pestaรฑa de afirmaciones que muestra los resultados de Contiene y No contiene.

Paso 4: Ahora vamos a cambiar el contenido de la 'Aserciรณn No Contiene' y veremos quรฉ sucede. Comprobaremos si la cadena "AddResult" no existe.

No contiene el cuadro de diรกlogo de aserciรณn que comprueba el token AddResult

Paso 5: La cadena 'AddResult' estรก presente en la respuesta, por lo tanto, la aserciรณn 'NOT Contains' fallarรก como se muestra a continuaciรณn.

La aserciรณn Not Contains falla porque AddResult estรก presente.

Aserciรณn de coincidencia XPath

La coincidencia de cadenas es poco precisa, por lo que la siguiente aserciรณn se dirige a un รบnico nodo. Utiliza una expresiรณn XPath para seleccionar el nodo de destino y sus valores. XPathes un lenguaje de consulta XML para seleccionar nodos de un documento XML.

Paso 1: Ahora, despuรฉs de hacer clic en el botรณn 'Agregar nuevas aserciones',

  1. Seleccione la categorรญa de afirmaciรณn.
  2. Seleccione el tipo de afirmaciรณn: en este caso, "XPath Match"
  3. Haga clic en 'Agregar'

Agregar cuadro de diรกlogo de aserciรณn con coincidencia XPath seleccionada

Paso 2: Agregar XPath. Se abre la ventana.

Antes de agregar un SoapUI XPath, necesitamos declarar el espacio de nombres. Un espacio de nombres XML es una colecciรณn de nombres, identificados por una referencia de Identificador Uniforme de Recursos (URI), que se utilizan en documentos XML como nombres de elementos y atributos. Lo mismo se utiliza en el SoapUI Aserciรณn XPath.

Para declarar un espacio de nombres XML, solo tenemos que hacer clic en el botรณn "Declarar", que harรก el trabajo por nosotros; de lo contrario, tambiรฉn podemos declarar manualmente un espacio de nombres nosotros mismos.

Despuรฉs de declarar el espacio de nombres, necesitamos hacer referencia a la ruta XPath utilizando el espacio de nombres creado.

Al hacer clic en el botรณn "Declarar", aparecerรกn dos espacios de nombres, ya que tenemos dos URI. Uno de ellos es el esquema. URL y el otro corresponde al servicio web propiamente dicho URLNecesitamos usar el espacio de nombres real donde se encuentra el servicio web y NO el espacio de nombres del esquema al hacer referencia a XPath. Las lรญneas declaradas aparecen en la parte superior del cuadro XPath, como se muestra a continuaciรณn.

Espacios de nombres soap y ns1 declarados dentro de la ventana de aserciรณn XPath

declarar espacio de nombres jabรณn =โ€™http://schemas.xmlsoap.org/soap/envelope/โ€™;

declarar espacio de nombres ns1=โ€™http://tempuri.org/โ€™;

Ventana de aserciรณn XPath inmediatamente despuรฉs de hacer clic en Declarar

Paso 3: Ahora necesitamos introducir la ruta XPath del nodo XML que necesitamos validar.

//ns1:AddResult Nos da el valor del nodo encerrado entre & y ns1 corresponde al espacio de nombres declarado que apunta a 'http://tempuri.org/'

Despuรฉs de ingresar el XML, debemos hacer clic en "Seleccionar del actual" para que el valor de la respuesta actual se seleccione para compararlo en el futuro.

Expresiรณn XPath introducida con Seleccionar de la selecciรณn actual resaltada

Paso 4: Hasta ahora,

  1. Despuรฉs de declarar los espacios de nombres, ingresamos el XPath del nodo XML que necesitamos validar.
  2. Necesitamos hacer clic en 'Seleccionar de actual' para que el valor actual sea el valor esperado.
  3. El valor actual se muestra al usuario y podemos modificarlo si es necesario.
  4. Clic en Guardar'.

Configuraciรณn de coincidencia XPath que muestra el valor esperado y el botรณn Guardar.

Paso 5: La aserciรณn aรฑadida en SoapUI Se mostrarรก como se indica a continuaciรณn.

Pestaรฑa de aserciones que muestra la aserciรณn de coincidencia de XPath aรฑadida

Afirmaciones de secuencias de comandos

Esta tรฉcnica de afirmaciรณn es la mรกs utilizada ya que es extremadamente difรญcil gestionar y mantener cientos de afirmaciones.

SoapUI usa ya sea Groovy secuencias de comandos o JavaScript para la creaciรณn de scripts de aserciones. La tรฉcnica de scripting se adopta para el desarrollo.ping Un marco para probar SOAP. Las aserciones de script se utilizan en las siguientes circunstancias.

  • La programaciรณn de scripts permite al usuario realizar ciertas operaciones antes y despuรฉs de ejecutar un caso de prueba mediante los mรฉtodos `setup` y `teardown`, respectivamente. `setup` es un procedimiento que se ejecuta antes de ejecutar un mรฉtodo especรญfico (por ejemplo, la creaciรณn e inicializaciรณn de objetos), mientras que `teardown` es un procedimiento que se ejecuta despuรฉs de ejecutar el mรฉtodo (por ejemplo, la destrucciรณn de objetos y la limpieza). Esta funcionalidad no estรก disponible en otros tipos de aserciones y solo se puede implementar mediante cรณdigo.
  • Permite a los usuarios abrir y cerrar un proyecto, inicializar o limpiar la configuraciรณn relacionada con el proyecto y tambiรฉn trabajar con variables de entorno, lo cual resulta muy รบtil durante la creaciรณn de scripts.
  • Nos ayuda a afirmar un contenido de Respuesta dinรกmico.
  • Las aserciones de scripting se utilizan para crear aserciones definidas por el usuario que NO estรกn predefinidas por SoapUI.

Para demostrar una aserciรณn de script en SoapUIHaremos uso del WSDL de la calculadora, el caso de prueba 'Add' que habรญamos creado anteriormente.

Paso 1: Los pasos para agregar un script Groovy son los mismos que para otras aserciones, con la diferencia de que esta aserciรณn no es predefinida. En cambio, es una aserciรณn definida por el usuario, lo que ofrece mayor flexibilidad que las integradas.

Seleccione el paso de prueba contra el cual se debe agregar la afirmaciรณn.

Paso de prueba seleccionado en el SoapUI navegador antes de agregar una aserciรณn

Haga clic en el botรณn "Agregar afirmaciรณn" como se muestra a continuaciรณn.

Botรณn Agregar aserciรณn en la barra de herramientas de aserciones del paso de prueba

Paso 2: Ahora seleccione la categorรญa de Aserciรณn.

  1. En este caso es Script.
  2. Seleccionar SoapUI Aserciรณn de script y no tiene subtipos asociados.
  3. Haga clic en 'Agregar'.

Agregar cuadro de diรกlogo de aserciรณn con la categorรญa Script seleccionada.

Paso 3: Se abre el cuadro de diรกlogo de scripting, donde el usuario podrรก escribir un script personalizado para validar la respuesta XML.

Vacรญo SoapUI diรกlogo del editor de aserciones de script

Paso 4: Ahora vamos a escribir un script Groovy para validar la tasa de conversiรณn. El script se adjunta a continuaciรณn con los comentarios incorporados. Se recomienda tener conocimientos sobre Java Guiรณn o Groovy Guiรณn antes de intentar escribir su propio guiรณn.

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"

//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")

//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult

//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. Haga clic en el botรณn "Ejecutar" para activar la ejecuciรณn.
  2. La salida del script se muestra en el panel Salida. Ha impreso tanto el valor de conversiรณn como el resultado final (aprobado o reprobado).
  3. Se muestra la informaciรณn "Se aprobรณ la aserciรณn de script". Haga clic en Aceptar.

Nota: La ventana emergente de informaciรณn final siempre se mostrarรก con el mensaje "Aserciรณn del script aprobada", siempre y cuando el script sea sintรกcticamente correcto. No tiene correlaciรณn con su afirmaciรณn en el guiรณn.

Panel de salida de la aserciรณn del script que imprime el valor del resultado y Pass

haga clic en Aceptar

Paso 5: Ahora la pestaรฑa de aserciones muestra todas las aserciones que hemos agregado para este conjunto de pruebas con el estado de cada una de ellas.

La pestaรฑa Aserciones enumera todas las aserciones aรฑadidas al conjunto de pruebas.

Paso 6: Ahora

  1. Seleccione el conjunto de pruebas en el รกrbol del Navegador.
  2. Haga clic en el botรณn "Ejecutar"
  3. Los resultados se mostrarรกn para todo el conjunto de pruebas.

Resultados de la ejecuciรณn del conjunto de pruebas tras ejecutar todas las aserciones.

Aserciรณn de coincidencia XQuery

Utiliza una expresiรณn XQuery para seleccionar contenido de la propiedad de destino. Necesitamos un XML de respuesta mucho mรกs grande para comprender mejor la aserciรณn XQuery en SoapUIImportemos otro WSDL como se muestra a continuaciรณn: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Nota: Los puntos finales de demostraciรณn pรบblicos de webservicex.net utilizados en este tutorial ya no son accesibles de forma fiable, por lo que las capturas de pantalla de la solicitud y la respuesta que aparecen a continuaciรณn se mantienen como ejemplo de referencia. Cualquier WSDL que devuelva un conjunto de nodos repetitivos comprobarรก la aserciรณn XQuery exactamente de la misma manera.

Paso 1: Haga clic con el botรณn derecho en el proyecto existente y seleccione 'Agregar WSDL'.

Menรบ contextual del clic derecho en el SoapUI proyecto que muestra Agregar WSDL

Paso 2: Se abrirรก el cuadro de diรกlogo Agregar WSDL. Deje las demรกs opciones por defecto y haga clic en el botรณn "Aceptar".

Agregar cuadro de diรกlogo WSDL con las opciones de importaciรณn predeterminadas.

Paso 3: Todas las operaciones se enumeran como se muestra a continuaciรณn.

Operaciones WSDL de proveedores de Medicare listadas en el รกrbol del navegador

Paso 4: Ahora agreguemos un Caso de prueba dentro del mismo conjunto de pruebas que habรญamos creado para Pruebas el conversor de moneda.

Nueva opciรณn TestCase en el conjunto de pruebas existente.

Paso 5: Introduzca el nombre del caso de prueba y haga clic en el botรณn 'Aceptar'.

Introducir el nombre del caso de prueba en el cuadro de diรกlogo Nuevo caso de prueba

Paso 6: El caso de prueba se crea como se muestra a continuaciรณn.

Caso de prueba reciรฉn creado en el SoapUI รกrbol navegador

Paso 7: Agregue un nuevo paso de prueba de tipo 'Solicitud de prueba SOAP' como se muestra a continuaciรณn.

Agregar menรบ de pasos con la solicitud de prueba SOAP seleccionada.

Paso 8: Introduzca el nombre del paso de prueba. Por ejemplo, ยซProveedor_por_Ciudadยป, que serรญa mรกs significativo. Haga clic en ยซAceptarยป.

Denominaciรณn del nuevo paso de prueba: Proveedor_por_Ciudad

Paso 9: Seleccione el Operaciรณn que queremos validar. En este caso es 'MedicareSupplierSoap -> GetSupplierByCity'. Haga clic en 'Aceptar'.

Seleccionar la operaciรณn GetSupplierByCity para el paso de prueba.

Paso 10: Introduzca el nombre del caso de prueba y haga clic en 'Aceptar'.

Confirmaciรณn del nombre de la solicitud de prueba SOAP

Paso 11: El esquema XML de la solicitud se mostrarรก como se muestra a continuaciรณn.

Esquema XML de la solicitud GetSupplierByCity generada

Paso 12: Ahora vamos a buscar toda la informaciรณn de los proveedores para la ciudad de Nueva York.

Para ello, agregue las siguientes lรญneas a su cรณdigo.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

WSDL a continuaciรณn URL โ€“ http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Solicitud XML editada con Nueva York como valor de la ciudad.

Paso 13: Al ejecutar la prueba, recibimos la siguiente respuesta.

Respuesta de GetSupplierByCity que contiene registros de proveedores repetidos

Paso 14: Supongamos que necesitamos validar todos los nรบmeros de proveedor. No podemos usar aserciones XPath, ya que necesitarรญamos cientos de ellas. Por lo tanto, el uso de XQuery es inevitable en este caso.

XQuery Assertion nos ayuda a validar un grupo de respuestas XML que son de naturaleza repetitiva.

Nodos SupplierData repetitivos sobre los que XQuery iterarรก

Paso 15: Ahora haga clic en 'Agregar una aserciรณn',

  1. Seleccione la "Categorรญa de afirmaciรณn": Contenido de propiedad en este caso.
  2. Seleccione el tipo de afirmaciรณn como 'Aserciรณn XQuery'
  3. Haga clic en 'Agregar'.

Aserciรณn XQuery seleccionada en la categorรญa Contenido de la propiedad

Paso 16: De forma similar a la aserciรณn XPath, necesitamos declarar el espacio de nombres.

  1. Haga clic en el botรณn 'Declarar' para permitir automรกticamente SoapUI Para declarar el espacio de nombres, al hacer clic en el botรณn "Declarar", aparecerรก una ventana emergente con el mensaje "Declarar espacio de nombres desde el esquema". Haga clic en "Sรญ" para continuar, como se muestra a continuaciรณn.
  2. Para recuperar todo el nรบmero de proveedor, debemos escribir una consulta XPath y la colocaremos dentro de las etiquetas y .
  3. Haga clic en 'Seleccionar de la actual' que se ejecutarรก a partir de la respuesta actual.
  4. Al hacer clic en 'Seleccionar de la lista actual', se mostrarรกn todos los nรบmeros de proveedor.
  5. Clic en Guardar'.

Declarar espacio de nombres desde la ventana emergente de confirmaciรณn del esquema

Nota: Al pulsar el botรณn 'Declarar', es posible que obtenga resultados diferentes. URL's como declaraciรณn de espacio de nombres, sin embargo, el espacio de nombres de la ubicaciรณn real del servicio web es lo que se considerarรญa para la codificaciรณn.

La expresiรณn XQuery finalizada, con sus declaraciones de espacio de nombres, tiene este aspecto.

// Namespace declaration
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webservicex.net/';
declare namespace x = '';

// Placing the result in Myresult Tags

{
// Iterating through all the supplier number
for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData

//Return all the Supplier number within โ€˜SupplierNumberโ€™ Tags.
return {data($x/ns1:SupplierNumber)}
}

Ventana de expresiones XQuery que muestra todos los nรบmeros de proveedores

Paso 17: Se ejecuta la aserciรณn XQuery y el resultado final se muestra en el panel "Aserciones", como se muestra a continuaciรณn. Ahora hemos agregado correctamente una aserciรณn XQuery con la que hemos validado toda la informaciรณn del nรบmero de proveedor. Esta informaciรณn se compararรก con los datos reales cada vez que se envรญe una solicitud al servidor web.

Nota: No se mostrarรกn los valores reales. Si todos los valores reales son iguales a los valores esperados, se mostrarรก "VรLIDO"; de lo contrario, se mostrarรก "Error".

Panel de aserciones que muestra el resultado de la aserciรณn XQuery.

ยฟCuรกndo utilizar la afirmaciรณn incorporada?

Una vez cubiertas las opciones de apuntar y hacer clic y las opciones mediante scripts, la pregunta prรกctica es cuรกl elegir.

  • Cuando una respuesta es corta y puede validarse utilizando una de esas afirmaciones incorporadas.
  • Tambiรฉn podemos utilizar la aserciรณn incorporada si la respuesta enviada desde el servidor web es siempre de naturaleza estรกtica. Si es dinรกmico, no podremos afirmarlo utilizando aserciones incorporadas.
  • Cuando el uso de aserciones incorporadas, como aserciones de tiempo de espera y aserciones de seguridad, se vuelve inevitable.
  • Las afirmaciones incorporadas son bastante buenas para un uso รบnico en el que no es necesario repetir las pruebas.

Opciones de afirmaciones

Las aserciones creadas se pueden controlar mejor con la ayuda del panel de control que se destaca a continuaciรณn.

Panel de control de la caja de herramientas de aserciones en SoapUI

Las afirmaciones creadas permiten a los evaluadores configurar las siguientes cosas desde la caja de herramientas de afirmaciones.

Opciรณn Mareas Ideales para Lecciones
Mover la afirmaciรณn hacia arriba icono La Aserciรณn seleccionada sube en el orden.
Mover el icono de afirmaciรณn hacia abajo La afirmaciรณn seleccionada baja en el orden.
Eliminar icono de aserciรณn Elimina la afirmaciรณn seleccionada
Icono de configuraciรณn o ediciรณn de aserciรณn Reconfigurar/editar la aserciรณn seleccionada.

A continuaciรณn se detallan las caracterรญsticas disponibles exclusivamente en la versiรณn Pro de SoapUI, ahora se envรญa como ReadyAPILa versiรณn Pro tambiรฉn nos ayuda a agrupar aserciones para que podamos agregar una capa mรกs de validaciรณn a las aserciones creadas.

  • Y: Todas las aserciones se evalรบan como aserciones VรLIDAS, lo que darรก como resultado una condiciรณn de grupo APROBADA.
  • O: Al menos una de las afirmaciones dentro del grupo debe ser VรLIDA para poder afirmar una condiciรณn de grupo APROBADA.
  • La versiรณn Pro tambiรฉn permite Clonaciรณn de afirmacionesEsta opciรณn permite a los evaluadores autorizar la copia de una aserciรณn a un paso de prueba diferente en el mismo proyecto o en uno diferente.
  • Deshabilitar/Habilitar aserciones: Esta opciรณn permite deshabilitar o habilitar cualquier aserciรณn, ya sea agrupada o no. Si una aserciรณn estรก deshabilitada, aparecerรก atenuada y, al ejecutar un caso de prueba, las aserciones deshabilitadas no se ejecutarรกn.
  • Desagrupar aserciones: Cualquier aserciรณn agrupada puede desagruparse si los evaluadores asรญ lo deciden.

Lista completa de mรฉtodos disponibles en varios tipos de afirmaciones

La tabla que aparece a continuaciรณn recopila todas las afirmaciones mencionadas anteriormente, agrupadas por la categorรญa en la que aparecen en el cuadro de diรกlogo Agregar afirmaciรณn.

Mecanismo de afirmaciรณn Mareas Ideales para Lecciones
CONTENIDO DE LA PROPIEDAD
Contiene Busca la existencia de la cadena especificada. Tambiรฉn admite expresiones regulares.
no contiene Busca la inexistencia de la cadena especificada. Tambiรฉn admite expresiones regulares.
Coincidencia XPath Utiliza la expresiรณn XPath para seleccionar el nodo de destino y sus valores.
Coincidencia de XQuery Utiliza una expresiรณn XQuery para seleccionar contenido de la propiedad de destino.
Cumplimiento, Estado, Estรกndares
HTTP Descargar todos los recursos Valida el documento HTML despuรฉs de la descarga y se mantiene vรกlido para cualquier propiedad que contenga HTML.
Estado HTTP no vรกlido Codes Verifica si la respuesta HTML contiene un cรณdigo de estado que no estรก en la lista de cรณdigos definidos.
No es culpa de SOAP Verifica si el รบltimo mensaje recibido no es una falla SOAP. Es muy obvio que solo se aplica a los pasos de prueba de SOAP.
Cumplimiento del esquema Verifica si el รบltimo mensaje recibido cumple con la definiciรณn de esquema estรกndar WSDL o WADL. Es vรกlido para los pasos de prueba SOAP y REST.
Fallo de jabรณn Verifica si el รบltimo mensaje recibido es una falla SOAP. Es lo inverso de las afirmaciones de error "NO SOAP".
Respuesta SOAP Verifica si la รบltima respuesta recibida es una respuesta SOAP vรกlida y es vรกlida รบnicamente para los pasos de solicitud de prueba SOAP.
Estado HTTP vรกlido Codes Verifica si la respuesta HTML contiene un cรณdigo de estado que se encuentra en la lista de cรณdigos definidos. Es lo opuesto a 'Estado HTTP no vรกlido'. CodeAfirmaciรณn de s.
Solicitud de direccionamiento WS Verifica si la รบltima solicitud recibida contiene encabezados WS-Addressing adecuados.
Respuesta de direccionamiento WS Verifica si la รบltima respuesta recibida contiene encabezados WS-Addressing adecuados.
Estado de seguridad WS Valida si el รบltimo mensaje recibido contiene encabezados WS-Security vรกlidos y solo es vรกlido para solicitudes SOAP.
Script
Afirmaciรณn de guiรณn Permite a los usuarios ejecutar un script personalizado para realizar validaciones definidas por el usuario.
SLA
SLA de respuesta Valida si el tiempo de respuesta de la รบltima respuesta recibida estuvo dentro del lรญmite definido.
JMS
Estado JMS Verifica si la solicitud JMS del paso de prueba se ha ejecutado correctamente y es vรกlida para los pasos de prueba con un punto final JMS.
Tiempo de espera JMS Verifica si la respuesta JMS de un paso de prueba no tardรณ mรกs que la duraciรณn especificada.
Seguridad
Exposiciรณn de informaciรณn confidencial Verifica si el mensaje de respuesta no expone informaciรณn confidencial sobre el sistema de destino. Podemos utilizar esta afirmaciรณn para los pasos de prueba REST, SOAP y HTTP.

DESCARGUE EL PROYECTO SOAPUI QUE CONTIENE LAS Afirmaciones ANTERIORES

Errores comunes y soluciรณn de problemas

La mayorรญa de los fallos de aserciรณn tracVolvemos a un pequeรฑo conjunto de errores, asรญ que revรญsalos antes de reescribir una expresiรณn.

  • Utilice el espacio de nombres correcto. El espacio de nombres debe ser el URL donde se encuentra el servicio web.
  • Si se produce un error durante el desarrolloping una aserciรณn de script, use 'log.info' para imprimir el contenido de las variables.
  • Si no ha obtenido el resultado deseado, verifique si se pasa una entrada vรกlida en la solicitud.

Por ejemplo, en un convertidor de divisas, si se introduce 'intA' como 'x', que no es un nรบmero entero, la salida arroja un cรณdigo de error 'SOAP-Client', lo que significa que el problema reside en el parรกmetro que se pasa desde el cliente. La solicitud con el valor no vรกlido se muestra primero.

SoapUI Solicitud que pasa un valor no entero no vรกlido para intA

La respuesta devuelve el cรณdigo de error en lugar de un resultado, como se muestra a continuaciรณn.

Cรณdigo de error del cliente SOAP devuelto en el SoapUI editor de respuestas

Asegรบrese de usar la sintaxis correcta al usar XPath y las aserciones XQuery. NO debe usar el punto (.) en lugar de los dos puntos (:) al usar la aserciรณn anterior. La sintaxis es //namespace:Tagname y NO //namespace.tagname. Si lo hace, podrรญa recibir el mensaje "No se encontrรณ ninguna coincidencia en la respuesta actual", aunque el nombre de la etiqueta sea correcto.

No se encontrรณ ninguna coincidencia en la respuesta actual debido a una sintaxis XPath incorrecta.

Preguntas Frecuentes

Cualquier nรบmero. SoapUI Aplica todas las aserciones adjuntas a un paso de prueba de muestreo despuรฉs de su ejecuciรณn, y el paso se marca como fallido en la vista del caso de prueba si falla incluso una sola de esas aserciones.

Compara un mensaje XML con un documento esperado nodo por nodo, de modo que se pueden ignorar o comparar campos seleccionados en lugar de tratar toda la carga รบtil como una sola cadena simple.

De cรณdigo abierto SoapUI Abarca el contenido de la propiedad, el cumplimiento normativo, los scripts, los acuerdos de nivel de servicio (SLA), el sistema de gestiรณn de contenido (JMS) y la seguridad. ReadyAPI agrega sueloping, clonaciรณn, comprobaciones JDBC y control de habilitaciรณn o deshabilitaciรณn.

Los modelos de IA leen una respuesta de muestra y sugieren expresiones XPath o XQuery, proponen valores lรญmite e identifican los campos que cambian en cada ejecuciรณn, lo que reduce considerablemente el trabajo manual de escritura de espacios de nombres y expresiones.

Sรญ. Copilot autocompletar GroovyCรณdigo base para utilidades y XmlHolder. Ejecute siempre primero el script, ya que un script sintรกcticamente vรกlido informa que la aserciรณn del script se ha superado, independientemente de la comparaciรณn.

Sรญ. Los campos de contenido de las aserciones admiten la expansiรณn de propiedades, por lo que el valor esperado se puede obtener de una propiedad del proyecto o del caso de prueba en lugar de un valor literal, lo que permite reutilizar una misma aserciรณn en diferentes entornos.

Una aserciรณn fallida marca su paso de prueba como fallido en la vista del caso de prueba y escribe una entrada FALLIDA correspondiente, con los detalles del fallo, en el registro de ejecuciรณn de pruebas en la parte inferior de la ventana.

Contiene, No contiene, Coincidencia XPath, Coincidencia XQuery, SLA de respuesta, Script, cรณdigos de estado HTTP vรกlidos e invรกlidos, Exposiciรณn de informaciรณn confidencial y Cumplimiento del esquema con respecto a un esquema WADL o inferido.

Resumir este post con: