Aserciones comunes de SoapUI
En los dos artículos anteriores, cubrimos los detalles de las Aserciones específicas de prueba, que solo se aplicaban a un tipo específico de Caso de prueba o servicio web bajo prueba. Todas las aserciones mencionadas en el artículo «Aserciones Específicas de Prueba SoapUI: Servicios REST» solo son aplicables a los servicios web REST y todas las aserciones mencionadas en el artículo «Aserciones específicas de prueba SoapUI: Servicios SOAP» solo son aplicables a los servicios web SOAP. Ahora, SoapUI también proporciona algunas otras aserciones, que son aplicables para los servicios SOAP y REST y se conocen como Aserciones comunes de SoapUI. En este artículo, entenderemos el uso de todas esas afirmaciones comunes al cubrir los detalles en los siguientes temas:
- ¿Cuáles son las Aserciones de Contenido de propiedades comunes en SoapUI?
- ¿Qué es la afirmación de contenido en SoapUI?
- Además, ¿qué no contiene Aserción en SoapUI?
- ¿Qué es la aserción XPath en SoapUI?
- ¿Qué es XQuery Match Assertion En SoapUI?
- Del mismo modo, ¿cuáles son las Aserciones comunes de Cumplimiento, Estado y Estándar en SoapUI?
- ¿Qué son las aserciones de códigos de estado HTTP proporcionadas por SoapUI?
- Además, ¿qué son las aserciones de conformidad de esquemas en SoapUI?
- ¿Cuáles son las aseveraciones comunes de SLA en SoapUI?
Dado que todas estas aserciones son aplicables a los servicios SOAP y REST, utilizaremos la siguiente información para validar todas estas aserciones:
- El proyecto REST creado con URI: «http://bookstore.toolsqa.com/BookStore/v1/Books «y el proyecto SOAP creado usando WSDL:» http://bookstore.toolsqa.com/BookStoreService.wsdl » según los detalles mencionados en el artículo «SoapUI: Trabajando con proyectos.»
- Puede consultar la salida de muestra del proyecto REST desde el artículo «Prueba de aserciones específicas de SoapUI: Servicios REST», y la salida de muestra del proyecto SOAP desde el artículo»Prueba de aserciones específicas de SoapUI: Servicios SOAP».
¿Cuáles son las Aserciones de Contenido de propiedades comunes en SoapUI?
Como ya sabemos, las Aserciones de contenido de propiedad validan el contenido de la respuesta recibida. SoapUI proporciona varias aserciones de contenido que se aplican tanto a las solicitudes SOAP como a las REST. Veamos en las secciones de abajo, ¿cómo podemos usar esas afirmaciones?
¿Qué es la afirmación de contenido en SoapUI?
La aserción Contiene busca la existencia de un token de cadena en el valor de la propiedad.
Considere un escenario en el que en el Servicio de librería, necesitamos verificar si existe un libro con el nombre de autor «Richard E. Silverman»?Sigamos los pasos mencionados a continuación para validar la misma usando la aserción «Contiene»:
- En primer lugar, vaya al cuadro de diálogo Agregar aserción. Después de eso, haga clic en la aserción» Contiene «en la categoría de aserción «Contenido de propiedad», como se resalta a continuación:
- En segundo lugar, haga clic en el botón «Agregar» y mostrará el cuadro de diálogo «Contiene Aserción», como se muestra a continuación:
-
En tercer lugar, introduzca el nombre del autor «Richard E. Silverman» en la sección «Contenido». Es la cadena de búsqueda que desea validar en la respuesta del WebService.
-
En cuarto lugar, en el cuadro de diálogo anterior, también verá dos casillas de verificación. Lo son:
- Ignorar mayúsculas y minúsculas: Si selecciona la casilla de verificación Ignorar mayúsculas y minúsculas, validará la cadena ignorando las mayúsculas y minúsculas. Supongamos que escribe » richARD E. SilVerMan «en el cuadro de texto de Contenido y marca la casilla de verificación» Ignorar mayúsculas y minúsculas en comparación». Además, ignorará el caso y solo comprobará el valor de la cadena introducida.
Por lo tanto, la aserción pasará ya que los caracteres de la cadena son los mismos si ignoramos el caso.
- Expresión regular: Si desea validar la salida en función de una expresión regular, puede marcar esta casilla y, a continuación, especificar su expresión regular en la sección Contenido. SoapUI sigue los patrones de expresión regular especificados por Oracle, por ejemplo, si queremos validar que la respuesta del servicio de libro contenga «O’Reilly» en la respuesta, puede especificar «.O’Reilly.»como expresión regular en la sección de Contenido, como se muestra a continuación:
Por lo tanto, podemos validar la existencia de una cadena en la respuesta del servicio web utilizando la aserción de contenido, y podemos usar esto para los servicios Web SOAP y REST.
¿Qué no contiene Aserción en SoapUI?
A diferencia de la aserción Contiene, la aserción No Contiene busca la inexistencia de una cadena en el valor de la propiedad. Además, esta afirmación pasará si la respuesta no contiene el valor especificado.
Supongamos que queremos validar que no hay ningún Libro con el título «Libro maravilloso» en la respuesta del servicio de librería, podemos usar esta afirmación para validar la respuesta de la API de librería.
Sigamos los pasos mencionados a continuación para validar la misma usando la aserción «No contiene»:
- En primer lugar, vaya al cuadro de diálogo Agregar aserción y haga clic en la aserción» No contiene «en la categoría de aserción «Contenido de propiedad», como se resalta a continuación:
-
En segundo lugar, haga clic en el botón «Agregar» y mostrará el cuadro de diálogo «No contiene aserción», como se muestra a continuación:
-
En tercer lugar, introduzca el nombre de la cadena «Libro Groo» en la sección «Contenido». Es la cadena de búsqueda que desea validar que no existe en la respuesta del WebService.
Nota: Las dos casillas de verificación(Ignorar mayúsculas y minúsculas & expresión regular) aquí funcionan de la misma manera, como lo hacían con la aserción Contains.
- En cuarto lugar, al hacer clic en el botón» ACEPTAR » se ejecutará la aserción contra la respuesta del servicio web y se mostrará el resultado, como se muestra a continuación:
- Por lo tanto, mientras la cadena no esté presente en la respuesta del servicio de destino, la aserción pasará.
¿Qué es la aserción de coincidencia XPath en SoapUI?
La aserción de coincidencia XPath le permite usar una expresión XPath para seleccionar el contenido del nodo específico de la respuesta de destino y compararlo con el valor esperado.
Supongamos que desea validar que el ISBN del primer libro presente en la respuesta de la API de librería no es nulo. Podemos validarlo rápidamente usando la aserción XPath.
Sigamos los pasos mencionados a continuación para validar la misma utilizando la aserción «Coincidencia XPath»:
- En primer lugar, vaya al cuadro de diálogo Agregar aserción. Después de eso, haga clic en la aserción» Coincidencia XPath «en la categoría de aserción «Contenido de propiedad», como se resalta a continuación:
- En segundo lugar, haga clic en el botón» Agregar «y mostrará el cuadro de diálogo» Configuración de coincidencia Xpath», como se muestra a continuación:
Donde,
-
Declarar: Al hacer clic en este botón, se obtiene y rellena el espacio de nombres automáticamente. Si está seguro de los detalles del espacio de nombres, puede escribirlo manualmente, de lo contrario, simplemente haga clic en el botón «Declarar» y rellenará los detalles del espacio de nombres como se muestra a continuación:
- El espacio de nombres para el servicio SOAP se rellenará, como se muestra a continuación:
- Del mismo modo, el espacio de nombres para el servicio REST se rellenará, como se muestra a continuación:
Después de declarar el espacio de nombres, podemos especificar XPATH del nodo deseado en la sección Expresión XPath.
- Puede especificar un ejemplo de XPATH «/ /ns1:BooksResult/ns1:Books/ns1:CustomBookModel / ns1: Isbn «para el servicio SOAP como se muestra a continuación:
De manera similar, puede especificar un ejemplo de XPATH» / / ns1: books/ / ns1: e / ns1: isbn » para el servicio REST como se muestra a continuación:
Tenga en cuenta el uso del espacio de nombres ns1 en ambos casos. Para acceder a los nodos, el uso del espacio de nombres es obligatorio.
- Seleccionar de actual: Al hacer clic en este botón, seleccionará automáticamente el valor del nodo como se mencionó anteriormente en la sección de Resultados esperados, que es isbn en el caso anterior. Además, seleccionará el valor del nodo isbn como «9781449325862». Si no desea seleccionar automáticamente el valor haciendo clic en este botón, incluso puede escribir el resultado esperado manualmente también.
- Test: Al hacer clic en el botón «Test», puede probar la salida, si la aserción pasa, mostrará la siguiente alerta de éxito:
O si la aserción falla, genera un error y muestra un cuadro de diálogo, como se muestra a continuación:
- Casillas de verificación opcionales: La sección de Resultados esperados también proporciona algunas casillas de verificación, que proporcionan ayuda adicional para validar la aserción. Vamos a entender los detalles de estas casillas de verificación:Casilla de verificación Permitir comodín: Si el valor que queremos validar cambia dinámicamente en la respuesta de destino, podemos usar comodines para validar la respuesta. Supongamos que, si consideramos que el isbn de 1er libro siempre termina con «862», entonces podemos usar el comodín *» 862″, que validará que el isbn siempre termina con»862″. Aparecerá en la sección de Resultados esperados como:
- Casilla de verificación Ignorar prefijo de espacio de nombres: Si queremos ignorar el prefijo del espacio de nombres mientras validamos la respuesta, podemos hacerlo marcando esta casilla de verificación.Casilla de verificación Ignorar comentarios XML: si queremos ignorar los comentarios en la respuesta, podemos lograrlo seleccionando esta casilla de verificación.
- Después de explorar todas las opciones anteriores, haga clic en el botón Guardar para guardar la afirmación. Pasará como la afirmación y obtendrá el Isbn esperado como «9781449325862». En consecuencia, mostrará la salida de muestra de la siguiente manera:
¿Qué es la aserción de coincidencia XQuery en SoapUI?
La coincidencia XQuery es bastante similar a la aserción XPath, con la única diferencia de que utiliza una expresión XQuery y la compara con el resultado esperado.
Considere un escenario supongamos que desea validar todos los «Títulos» de los Libros disponibles en la respuesta, independientemente del orden en que existan. Puede escribir un XQuery simple y luego está listo para comenzar.
Sigamos los pasos mencionados a continuación para validar el mismo usando la aserción «XQueryMatch»:
- En primer lugar, vaya al cuadro de diálogo Agregar aserción. Después de eso, haga clic en la aserción» Coincidencia XQuery «en la categoría de aserción «Contenido de propiedad», como se resalta a continuación:
- En segundo lugar, haga clic en el botón» Agregar «y mostrará el cuadro de diálogo» Configuración de coincidencia XQuery», como se muestra a continuación:
Donde,
- Expresión XQuery: Es la expresión XQuery que debe especificar para extraer el valor de la respuesta del servicio web. Por ejemplo, para obtener el Título de todos los libros, podemos especificar la expresión XQuery de la siguiente manera:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>
En el fragmento de código anterior:
-
<Result>
es la etiqueta en la que se almacenará el resultado en función de la respuesta XQuery. Además, puede ser cualquier etiqueta basada en la elección del usuario. - Además, estamos iterando la respuesta usando el bucle for, y $z es cualquier variable, que obtendrá el valor de
<CustomBookModel>
. - //. especifica la raíz del modelo de libro personalizado, también puede navegar usando Espacio de nombres y luego especificar el espacio de nombres en lugar de **»//.».***
- Además de lo anterior, la función» return » devolverá el valor de la etiqueta
<Title>
. - Además, la función» data » devuelve los datos de cada etiqueta de título en la etiqueta
<CustomBookModel>
.
2) Seleccionar de la corriente: Haga clic en el botón para seleccionar el valor actual de la respuesta según el XQuery mencionado.
3) Resultado esperado: Después de hacer clic en el botón «Seleccionar de actual», devolverá todos los títulos de la respuesta del servicio. También puede especificar manualmente el resultado esperado.
4) Al hacer clic en el botón» Probar «se mostrará la respuesta de éxito, como se muestra a continuación:
- Al hacer clic en el botón» ACEPTAR » se mostrará la ejecución válida de la aserción.
¿Cuáles son las Aserciones comunes de Cumplimiento, Estado y Estándar en SoapUI?
Al igual que las aserciones comunes proporcionadas por SoapUI en la sección «Contenido de propiedad», también proporciona algunas aserciones en la categoría «Cumplimiento, Estado y Estándar», que son comunes para los servicios Web SOAP y REST. Entendamos los detalles de todas estas aserciones en las siguientes secciones:
¿Qué son las aserciones de Códigos de estado HTTP proporcionadas por SoapUI?
Como todos sabemos, los Códigos de estado HTTP representan si una solicitud HTTP se completó o no. Todos estos códigos de respuesta generalmente divididas en las siguientes categorías:
1 | 1xx: Informativos: Estos códigos de estado representan la recepción de la solicitud y su procesamiento. |
2 | 2xx: Éxito: Estos códigos de estado representan que la acción se recibió, procesó y aceptó correctamente. |
3 | 3xx: Redirección: Estos códigos de estado representan que se requiere una acción adicional para completar la solicitud. |
4 | 4xx: Error del cliente: Estos códigos de estado representan que la solicitud contiene una sintaxis incorrecta, o que hay algo incorrecto en nuestra solicitud. |
5 | 5xx: Error del servidor: Estos códigos de estado representan que hay un error en el lado del servidor, lo que significa que el servidor no cumplió con una solicitud válida. |
Para la validación de estos códigos de estado, SoapUI proporciona un par de aserciones. Entendamos los detalles de estas afirmaciones en las siguientes secciones:
¿Qué es una aserción válida de Códigos de estado HTTP en SoapUI?
Esta afirmación valida que el código de respuesta HTTP devuelto por el Servicio Web se encuentra en la lista de códigos HTTP esperados.
Considere un escenario en el que para la API de librería, queremos validar que el código de respuesta devuelto siempre sea 200 o 201. Podemos usar la aserción «Códigos de estado HTTP válidos» para validar lo mismo.
Sigamos los pasos mencionados a continuación para validar el mismo utilizando la aserción «Códigos de estado HTTP válidos» :
- Vaya al cuadro de diálogo Agregar aserción y haga clic en la aserción» Códigos de estado HTTP válidos «en la categoría de aserción» Cumplimiento, Estado y estándar», como se resalta a continuación:
- Haga clic en el botón» Agregar «y mostrará el cuadro de diálogo» Configuración de confirmación de códigos de estado HTTP válidos», como se muestra a continuación:
- En la sección» Especificar códigos», ponga los valores 200, 201. Puede especificar un solo código o una lista de códigos separados por comas. Al hacer clic en el botón» ACEPTAR», se validarán los códigos de estado HTTP frente a la última respuesta del servicio.
¿Qué es una aserción de Códigos de estado HTTP no válidos en SoapUI?
A diferencia de la afirmación «Códigos de estado HTTP válidos», la afirmación «Códigos de estado HTTP no válidos» valida que la lista de «Códigos esperados» no contenga el código de estado HTTP devuelto por el servicio web.
Considere un escenario en el que para la API de librería, queremos validar que el código de respuesta devuelto no sea 401. Podemos usar la aserción «Códigos de estado HTTP no válidos» para validar lo mismo.
Sigamos los pasos mencionados a continuación para validar el mismo usando la aserción «Códigos de estado HTTP no válidos» :
- Vaya al cuadro de diálogo Agregar aserción y haga clic en la aserción» Códigos de estado HTTP no válidos «en la categoría de aserción» Cumplimiento, Estado y estándar», como se resalta a continuación:
- Haga clic en el botón» Agregar «y mostrará el cuadro de diálogo» Configuración de confirmación de códigos de estado HTTP no válidos», como se muestra a continuación:
- En la sección» Especificar códigos», ponga los valores 401. Puede especificar un solo código o una lista de códigos separados por comas. Al hacer clic en el botón» ACEPTAR», se validará la inexistencia de códigos de estado HTTP frente a la última respuesta del servicio.
Nota: Podemos aplicar estas aserciones a los extremos SOAP y REST.
¿Qué son las aserciones de conformidad de esquemas en SoapUI?
Además de los códigos de estado, en SoapUI, también podemos validar el mensaje de respuesta contra la definición en el WSDL (SOAP) o WADL (REST) del servicio de destino bajo prueba.
Considere un escenario que queremos comprobar rápidamente si la respuesta SOAP que estamos obteniendo es compatible con el WSDL o no?
Sigamos los pasos que se mencionan a continuación para validar el mismo utilizando la aserción» Conformidad de esquema»:
- Vaya al cuadro de diálogo Agregar aserción y haga clic en la aserción» Cumplimiento de esquema «en la categoría de aserción» Cumplimiento, Estado y estándar», como se resalta a continuación:
-
Haga clic en el botón» Agregar «y se mostrará el cuadro de diálogo » Configuración de Confirmación de conformidad de esquema», como se muestra a continuación:
-
En el cuadro de diálogo de configuración, rellena automáticamente el WSDL, que creó el proyecto, pero si desea especificar otro WSDL, también puede actualizarlo. Haga clic en Aceptar para continuar.
- Si la respuesta es compatible con el esquema mencionado, verá la respuesta de éxito, como se muestra arriba. Verá el error cada vez que la última respuesta no cumpla con el esquema WSDL.
Nota: De manera similar, puede validar la respuesta del servicio REST contra un WADL especificado.
¿Cuáles son las aserciones de SLA comunes en SoapUI?
Como todos sabemos, un Acuerdo de Nivel de servicio(SLA) generalmente se conoce como el acuerdo entre un proveedor de servicios y un cliente. El acuerdo se puede clasificar por varias características acordadas, como disponibilidad, calidad, tiempo de respuesta, etc. SoapUI proporciona la funcionalidad para validar el tiempo de respuesta de un servicio específico.
Considere un escenario hipotético en el que el tiempo de respuesta acordado para el servicio web de la librería es inferior a 4 segundos. Podemos validar lo mismo en SoapUI usando las categorías de aserciones «SLA».
Sigamos los pasos que se mencionan a continuación para validar el mismo utilizando la aserción «SLA de respuesta»:
- Navegue hasta el cuadro de diálogo Agregar aserción y haga clic en la aserción» SLA de respuesta «en la categoría de aserción» SLA», como se resalta a continuación:
- Haga clic en el botón» Agregar «y mostrará el cuadro de diálogo» Configuración de aserción de SLA de respuesta», como se muestra a continuación:
- Especifique el tiempo máximo (en ms) en el que el servicio espera devolver la respuesta. Para nuestro escenario, hemos especificado 4000 ms. Haga clic en el botón Aceptar para agregar la afirmación. Mostrará el resultado de la prueba, como se muestra a continuación:
- Como podemos ver en la captura de pantalla anterior, como el tiempo de respuesta del servicio fue de 1374 ms, por lo que estaba bajo el SLA mencionado de 4000 ms y resultó en una afirmación exitosa.
Conclusiones clave
- SoapUI proporciona una amplia gama de aserciones que se pueden aplicar a los servicios web SOAP y REST.
- Además, pocas de las aserciones comunes son Contain, Not Contain, Xpath y XQuery Match, que se utilizan para validar la respuesta del contenido del servicio web.
- Además, se utiliza otro conjunto de aserciones comunes proporcionadas por SoapUI para la validación de los Códigos de estado HTTP y el Esquema de la respuesta de los servicios web.
- Además, SoapUI también proporciona una aserción de SLA que se puede usar para validar el tiempo de respuesta de los servicios SOAP y REST.
Pasemos al siguiente artículo donde profundizaremos más para comprender cómo podemos implementar algunas aserciones avanzadas utilizando «Aserciones de script» en SoapUI.