how handle exception soapui groovy scripts soapui tutorial 11
En este tutorial de SoapUI, veremos el manejo de excepciones usando scripts Groovy. El manejo de excepciones en tiempo de ejecución en groovy es similar a Java, ya que las bibliotecas de Java están integradas. Sin embargo, discutiremos conceptos básicos en SoapUI y profundizaremos en el manejo de excepciones en Java.
Este es tutorial n. ° 11 en la serie de tutoriales de SoapUI . Este es el último tutorial de la versión gratuita de SoapUI. Quedan un par de temas más en esta serie que se refieren a las funciones profesionales de SoapUI, los servicios REST y SOAP, y las pruebas basadas en datos en SoapUI.
Comencemos con una breve introducción a una excepción:
¿Qué es una excepción?
Un excepción es un error que se encuentra durante la ejecución de un programa. Puede suceder debido a muchas razones, como datos no válidos, pérdida de conexión de red, intentar abrir archivos que no están disponibles, acceder a clases no válidas, pérdida de memoria, es decir, forzar al sistema a trabajar con una gran cantidad de datos, el servidor de la base de datos no responde, etc. Estos errores puede deberse a usuarios, desarrolladores o recursos de hardware.
alternativa gratuita de Quickbooks para pequeñas empresas
Internamente, cuando se encuentra una excepción durante la ejecución, SoapUI intentará encontrar el controlador. El controlador es el bloque que contiene el código para detectar la excepción.
Las excepciones se clasifican en dos tipos:
- Excepción en tiempo de ejecución
- Excepción de tiempo de compilación: no se aplica a SoapUI ya que no tiene un compilador explícito
Mire la siguiente captura de pantalla que nos muestra una excepción de tiempo de ejecución para código no válido. En el siguiente script intentamos dividir un número entero entre 0. En el diálogo de error se puede ver que la excepción se genera desde las bibliotecas de Java y el mensaje de error es División por cero .
Podemos detectar esta excepción durante la ejecución y manejarla programáticamente. Antes de eso, veremos algunas de las palabras clave importantes que se utilizan en los conceptos de excepción de Java. Algunas de las palabras clave también se pueden utilizar en el guión maravilloso. Son:
- Lanzar - Esta palabra clave nos ayuda a lanzar una excepción manualmente, es decir, a lanzar excepciones definidas por el usuario
- Lanza - Se utiliza para llamar a las excepciones predefinidas de la definición del método. Por lo tanto, detectará la excepción si se encuentra algún error de tiempo de ejecución durante la ejecución.
- Tratar y Captura - La palabra clave 'probar' se utiliza con la palabra clave 'captura'. Si podemos predecir la parte del programa donde puede surgir la excepción durante la ejecución, podemos usar el bloque 'try' en ese lugar. Al final del bloque 'try', el bloque 'catch' debería comenzar a detectar una excepción. Dentro del bloque catch, tenemos que escribir el controlador para manejar la excepción.
- Finalmente - Este es el bloque predeterminado y opcional en la estructura de excepciones. Si necesitamos que se ejecute alguna declaración al final del programa, como limpiar objetos no utilizados, cerrar conexiones, etc., eso se puede hacer dentro de este bloque.
La siguiente es la estructura general de una excepción:
tratar El script anterior produce el siguiente resultado como se muestra en la captura de pantalla. Como comentamos anteriormente, intentamos dividir 'A' 'B', que es cero. Entonces, el bloque 'catch' se ejecuta y muestra el mensaje definido por el usuario en el registro. Vea que en la declaración 'catch', hemos utilizado Excepción class que es la superclase en Java para todas las excepciones integradas. Todas las clases de excepción predefinidas se heredan de Excepción clase. Para manejar excepciones de tiempo de ejecución impredecibles, podemos usar Excepción clase en el bloque 'captura'. Modifiquemos ahora el script anterior para obtener el resultado requerido. Vea la siguiente captura de pantalla: Intentemos ahora esto en nuestras pruebas habituales de servicios web. En el siguiente script, no usamos el bloque try-catch, por lo que obtendremos la excepción de tiempo de ejecución. El script anterior lanzará una excepción llamada ArrayIndexOutOfBoundsException porque el script está intentando acceder a un índice de matriz no válido, es decir, 5 que no está disponible. (Haga clic en la imagen para ampliarla) Como puede ver en el script anterior, hemos inicializado la matriz 'countryNames' con el tamaño de cinco. Acepta solo cinco valores de cadena, es decir, nombres de países. Dentro de las declaraciones iterativas, hemos verificado como idx<= 5 . Por lo tanto, el bucle se repetirá hasta 6 veces e intentará buscar 6thelemento en la matriz. Dado que el valor no estará allí, lanza una excepción de tiempo de ejecución. Para manejar este escenario, modifiquemos el script anterior como se muestra a continuación: Aquí está el resultado del script anterior. Así es como podemos manejar la excepción de tiempo de ejecución durante la ejecución de nuestro programa. Nota: nosotros podemos usar ArrayIndexOutOfBoundsException en el bloque 'captura' directamente en lugar de usar Excepción clase. Si ponemos el nombre exacto de la excepción en el bloque 'catch', sólo se detectará cuando se lance la excepción en particular. Si se lanza cualquier otra excepción predefinida, el bloque de captura fallará. Un buen script de automatización debe tener los controladores de excepciones adecuados. De lo contrario, será difícil controlar cada momento de la ejecución. Como mencioné anteriormente, el script groovy admite la palabra clave 'throws' para lanzar la excepción predefinida a la persona que llama. Consulte el siguiente script de muestra para comprender este concepto: (argumentos / parámetros) lanza Aquí está el código de muestra para el esqueleto anterior. En el script anterior, el ArrayIndexOutOfBoundsException se lanzará a la función llamada. Allí tenemos que manejarlo correctamente con un bloque try-catch. De lo contrario, SoapUI lanzará una excepción. La implementación del manejo de excepciones en nuestros scripts de prueba relacionados con los servicios web habituales nos ayudará a mantener el código y reducir la intervención / supervisión manual por parte de los probadores. Podemos utilizar varios bloques try-catch cuando sea necesario en el script. Siguiente tutorial de SoapUI # 12: En el siguiente tutorial, proporcionaremos más información y características de la versión SoapUI Pro. Así que sigue leyendo. ¡Comentarios, preguntas, sugerencias son bienvenidos, como siempre!
{
|_+_|
{
} Conclusión:
Lectura recomendada