2012-02-03 12 views
8

Estoy intentando crear un marco de prueba automatizado para algunos de nuestros servicios web internos (java) en el trabajo. Cada servicio tiene un conjunto de API (3-5), aunque esto podría ser relativamente fácil de lograr, el problema viene con algunas API que no se comportan como funciones puras, por ejemplo: algo así como persistX, esto podría almacenar algo en una base de datos y devuelve una excepción en caso de error. No hay una forma fácil de validar dado que aquí no hay resultados.Marco de prueba automatizado

Así que me preguntaba si esto podría ser un poco generalizado, digamos al probar la API, el usuario podría proporcionar un plugin o script simple en el marco de algún tipo que podría validar la prueba. Esta es solo una idea sería genial si alguien puede decirme algunas mejores o cualquier recurso sobre el mismo.

Gracias

Respuesta

6

recomiendo el robot framework. Es un marco impulsado por palabras clave escrito en python. Por eso, puedes ejecutarlo en la JVM con jython, lo que significa que puedes extenderlo con código java (o python, por supuesto). Lo utilicé con éxito para llamar a las API, luego verifiqué el resultado mirando a una base de datos o consultando el sistema de archivos.

También funciona en la plataforma .NET, tiene un módulo de selenio para probar el front-end, un plugin de jenkins y varias otras herramientas. Es muy extensible y flexible.

4

Lo que está viendo es la aplicación de pruebas de caja negra y de caja blanca y las herramientas que las soportan.

Para los servicios web que devuelven una respuesta adecuada, puede realizar pruebas de caja negra verificando los datos en la respuesta devuelta. SoapUI es la mejor herramienta para esto.

Para las API que no se comportan como funciones puras, que hace pruebas de caja blanca mediante la verificación de sus efectos secundarios como la persistencia, la generación de eventos, registro, etc. Para ello, como herramientas programables y SoapUI puede o no ser la opción correcta.

Hacemos ambos en nuestro trabajo y después de evaluar múltiples herramientas/marcos (SoapUI, RSSPec, Robotframework), elegí Spock. ¿Por qué Spock?

  1. Se le permite escribir pruebas de intención de revelar en BDD estilo
  2. Somos tienda de Java y queremos utilizar el mismo lenguaje familiar para la automatización también, pero con el azúcar sintáctico simplificado. Y Spock es todo basado en groovy. 2 de soporte
  3. WebDriver Excelente/selenio (incluyendo PageFactory) con Geb
  4. Está construido en la cima de JUNIT por lo que todos los plugins de JUNIT se pueden aprovechar (cobertura de código, Hudson/integración Jenkins, etc.)
  5. lote de API de servicio web y XML (DSL sin necesidad de trabajar con XPath para escenarios simples)
  6. configuración simplificado (a diferencia de robotframework no requiere Python, configuración jython)

etc ....

Cuestiones relacionadas