Me gustaría escribir un conjunto de pruebas automatizado para una API REST. A medida que completamos nuevos servicios, nos gustaría verificar para asegurarnos de que todos los servicios creados anteriormente estén funcionando como se esperaba. ¿Alguna sugerencia sobre las mejores herramientas a utilizar para lograr esto? Sé que existen herramientas como Apigee que le permiten probar 1 servicio a la vez, pero nos gustaría encontrar una forma de probar todos los servicios con el clic de un botón.
api
rest
testing
automation
Prasad
fuente
fuente
Respuestas:
En mi trabajo, hemos reunido recientemente un par de suites de prueba escritas en Java para probar algunas API RESTful que construimos. Nuestros servicios pueden invocar otras API RESTful de las que dependen. Lo dividimos en dos suites.
Definitivamente recomendaría hacer esto. Nos ha funcionado muy bien. Las principales ventajas son:
Esta suite requiere que realicemos la configuración de datos en servicios de pares, lo que significa que las pruebas generalmente toman más tiempo para escribir. En la medida de lo posible, utilizamos clientes REST para realizar la configuración de datos en servicios de pares.
Las pruebas en esta suite suelen tardar más en redactarse, por lo que colocamos la mayor parte de nuestra cobertura en la Suite 1. Dicho esto, todavía hay un valor claro en esta suite, ya que nuestras simulaciones en la Suite 1 pueden no comportarse como los servicios reales.
fuente
Frisby es un marco de prueba de API REST construido en node.js y Jasmine que hace que probar los puntos finales de API sea fácil, rápido y divertido. http://frisbyjs.com
Ejemplo:
fuente
Colaboré con uno de mis compañeros de trabajo para iniciar el marco PyRestTest por este motivo: https://github.com/svanoort/pyresttest
Aunque puede trabajar con las pruebas en Python, el formato de prueba normal es YAML.
Conjunto de pruebas de muestra para una aplicación REST básica: verifica que las API respondan correctamente, verificando los códigos de estado HTTP, aunque también puede hacer que examinen los cuerpos de respuesta:
fuente
Solía SOAP de interfaz de usuario para la prueba funcional y automatizado. La interfaz de usuario de SOAP le permite ejecutar las pruebas con solo hacer clic en un botón. También hay una página de prueba de controladores de resorte creada por Ted Young. Utilicé este artículo para crear pruebas unitarias de descanso en nuestra aplicación.
fuente
Uno de los problemas de realizar pruebas automatizadas para las API es que muchas de las herramientas requieren que tenga el servidor de API en funcionamiento antes de ejecutar su conjunto de pruebas. Puede ser una ventaja real tener un marco de pruebas unitarias que sea capaz de ejecutar y consultar las API en un entorno de prueba totalmente automatizado.
Una opción que es buena para las API implementadas con Node.JS / Express es usar mocha para pruebas automatizadas. Además de las pruebas unitarias, es fácil escribir pruebas funcionales contra las API, separadas en diferentes conjuntos de pruebas. Puede iniciar el servidor API automáticamente en el entorno de prueba local y configurar una base de datos de prueba local. Con make, npm y un servidor de compilación, puede crear un destino "make test" y una compilación incremental que ejecutará todo el conjunto de pruebas cada vez que se envíe un fragmento de código a su repositorio. Para el desarrollador verdaderamente exigente, incluso generará un buen informe de cobertura de código HTML que le mostrará qué partes de su código base están cubiertas por pruebas o no. Si esto suena interesante, aquí hay una publicación de blog que proporciona todos los detalles técnicos.
Si no está utilizando el nodo, entonces cualquiera que sea el marco de prueba unitario de facto para el idioma (jUnit, pepino / capibara, etc.), observe su soporte para activar servidores en el entorno de prueba local y ejecutar las consultas HTTP. Si se trata de un proyecto grande, el esfuerzo por obtener pruebas API automatizadas y un trabajo de integración continuo dará sus frutos con bastante rapidez.
Espero que ayude.
fuente
Runscope es un servicio basado en la nube que puede monitorear las API web mediante un conjunto de pruebas. Las pruebas se pueden programar y / o ejecutar mediante web hooks parametrizados. Las pruebas también se pueden ejecutar desde centros de datos de todo el mundo para garantizar que los tiempos de respuesta sean aceptables para la base de clientes global.
El nivel gratuito de Runscope admite hasta 10.000 solicitudes por mes.
Descargo de responsabilidad: soy un defensor de los desarrolladores de Runscope.
fuente
Implementé muchos casos de automatización basados en REST Assured, un DSL jave para probar un servicio reparador. https://code.google.com/p/rest-assured/
La sintaxis es fácil, soporta json y xml. https://code.google.com/p/rest-assured/wiki/Usage
Antes de eso, probé SOAPUI y tuve algunos problemas con la versión gratuita. Además, los casos están en archivos xml que son difíciles de extender y reutilizar, simplemente no me gusta
fuente
También puede utilizar la biblioteca Rest Assured. Para obtener una demostración con un script de muestra, consulte http://artoftesting.com/automationTesting/restAPIAutomationGetRequest.html
fuente
La automatización de pruebas de API, hasta una vez por minuto, es un servicio disponible a través de theRightAPI . Usted crea sus escenarios de prueba y los ejecuta. Una vez que esas pruebas hacen lo que espera que hagan, puede programarlas. Las pruebas se pueden 'encadenar' juntas para escenarios que requieren autenticación. Por ejemplo, puede tener una prueba que realice una solicitud OAuth a Twitter y cree un token compartido que luego pueda ser utilizado por cualquier otra prueba. Las pruebas también pueden tener criterios de validación adjuntos para garantizar códigos de estado http, o incluso una inspección detallada de las respuestas utilizando javascript o validación de esquema. Una vez que se programan las pruebas, puede hacer que las alertas le notifiquen tan pronto como una prueba en particular falle la validación o se comporte fuera de los rangos establecidos para el tiempo de respuesta o el tamaño de la respuesta.
fuente
He usado las clases HTTP TestNG y Apache para construir mi propio marco de prueba de API REST, desarrollé este concepto después de trabajar en Selenium durante dos años.
Todo es igual, excepto que debe usar clases HTTP de Apache en lugar de clases de Selenium.
pruébalo, es realmente lindo y bueno, tienes todo el poder para personalizar tu marco de prueba a todas tus posibilidades.
fuente