Revisé la Versión 1.6 de SoapUI, una herramienta basada en Java de Eviware. Esta versión funciona dentro de una Interfaz propia de usuario independiente; la nueva versión 1.7 incluye plug-ins para IDEs NetBeans, IntelliJ, y Eclipse. La interfaz de usuario cumple con la arquitectura de la IDE típica: un panel de navegación a la izquierda, un panel de contenido a la derecha, y paneles de propiedades adicionales metidos cerca de la parte inferior. Si ha usado últimamente una IDE como Visual Studio, aprenderá al instante SoapUI, ya que esta herramienta acomoda el trabajo en proyectos. Cada proyecto es identificado principalmente por las interfaces que éste construye para las pruebas. Aquí, una interfaz es “el otro extremo” de un URI (Identificador Universal de Recursos) apuntando a un sitio que expone métodos de servicios Web. Puede generar rápidamente un esqueleto de proyecto apuntando a un proyecto vacío en un código WSDL del Servicio Web; SoapUI aceptará WSDL desde un archivo o desde un extremo del servicio Web que transmite el WSDL para sus servicios. Los proyectos son ordenados jerárquicamente y contienen una o más TestSuites (Conjuntos de Pruebas), las cuales contienen uno o más TestCases (Casos de Prueba), los cuales a su vez contienen uno o más Test Step (Pasos de Prueba). El trabajo real – envío de peticiones, recepción de respuestas, analizar resultados, y alterar el flujo de la ejecución de la prueba– ocurre al nivel del paso de prueba. Los TestCases reúnen y organizan los pasos necesarios para desempeñar una operación específica sobre el objetivo. Las TestSuites reúnen TestCases que ejercitan un área particular de un servicio Web (como las operaciones necesarias para ordenar un libro). Puede crear nuevas TestSuites, TestCases, y pasos de prueba haciendo clic con el botón derecho en el nodo principal en el árbol del proyecto y seleccionando New en el menú emergente al contexto. Entonces SoapUI determina una falla o éxito de una prueba determinada por las afirmaciones que usted adjunte a las respuestas de la prueba. Hay una media docena de afirmaciones entre las cuales elegir, que van desde una prueba de “contenido simple” – que es exitosa si una cadena proporcionada coincide—hasta «coincidencia XPath», la cual es ventajosa si una expresión XPath arbitrariamente compleja coincide con la respuesta. Un paso de prueba es análogo a una línea de código en un programa. Actualmente, SoapUI define seis tipos de pasos de prueba, siendo el más común una petición, el cual envía un requerimiento HTTP a un destino y acepta una respuesta. Controla el flujo a través del cual los pasos de prueba pueden ser modificados insertando un paso de prueba Ir-A Condicional, esencialmente una colección de una o más expresiones Xpath que examinan la respuesta más reciente. La primera expresión en la colección que tiene éxito causa una ramificación a un paso de prueba de objetivo asociado. El paso de prueba “Groovy” es el más poderoso de SoapUI, y se refiere al lenguaje de scripts de peso ligero Javalike. Un paso de prueba Groovy hace lo que sea que quiera colocar en el código Groovy. El código Groovy en un paso de prueba como éste tiene acceso a la estructura SoapUI. Por ejemplo, un paso de prueba Groovy puede leer información de una base de datos (vía JDBC), comparar esa información con una respuesta previa del paso de prueba, y alterar el flujo de ejecución del TestCase, en consecuencia – quizá ejecutando incluso un TestCase diferente. A parte de las pruebas de funcionalidad, SoapUI también desencadenará pruebas de carga sobre un servicio Web. Cada prueba de carga consiste en la ejecución de uno o más TestCases, y pueden ser adaptados para simular varios escenarios. Cuando la prueba de carga se ha completado, un Editor de Prueba de Carga proporciona estadísticas para cada TestCase: número de ejecuciones, mínimo, máximo, y tiempo promedio de ejecución y otras. Incluso podrá examinar los resultados gráficamente sobre la página de Diagrama de Estadísticas. Es fácil poner a funcionar SoapUI. Le tomará poco tiempo construir un proyecto básico y construir pruebas rudimentarias. Mi única molestia con la herramienta es que carece de ayuda contextual, lo cual hace parecer que sus opciones están en áreas particulares de la dificultad de la operación. No obstante, la documentación proporcionada es bastante buena, de modo que cualquier confusión inicial se evapora con el uso continuo.