Por Emilia Bejarano, QA Engineer en DataArt, Sponsor Silver en el Argentesting, evento vinculado con el testing a realizarse los días 23 y 24 de Octubre en la UTN Medrano (CABA) y que reunirá a toda la Comunidad Argentina de Software Testers.
En los últimos tiempos es común que nos topemos con la necesidad de testear un Web Service, y en ese momento, nos plantemos: ¿por dónde y cómo se debe comenzar?
Empecemos tratando de entender qué es un Web Service. A grandes rasgos, como una definición simple, podemos decir que un Web Service es una función que puede ser consumida por otros programas mediante la web. Un Web Service usa los protocolos HTTP o HTTPS sobre la capa de aplicación de la red informática donde una aplicación transfiere datos o envía solicitudes como XML o JSON, y recibe la respuesta que es procesada mediante la aplicación cliente como un servicio web independientemente de la plataforma de software subyacente, arquitectura y tecnología.
Existen varios tipos de servicios, pero los más populares son REST y SOAP.Los métodos utilizados por REST son: GET, POST, PUT y DELETE. Usualmente, el método más implementado por SOAP es POST incluso para «operaciones de GET», dado que es necesario un SOAP request, que no puede pasarse por “Query String”.
Con estas nociones básicas podemos empezar a plantear algunas pruebas que podríamos realizar para verificar su correcto funcionamiento. Hay que tener en cuenta que el testing de Web Services está orientado al modelo Web Service Request & Response. Los tipos de pruebas básicos que podemos plantear para realizar en estos servicios son: verificar si recibimos correctamente los datos, tipos de datos, orden de los datos, y completitud. Adicionalmente, también podemos realizar pruebas de carga, timeout y seguridad, entre otras.
A continuación, vamos a ver un ejemplo sencillo usando una API REST muy simple desarrollada con ASP.NET Web API que nos permite hacer alta, baja, modificación y consulta de “animales”.
En este ejemplo, animal tiene dos propiedades, Name y Color, ambos string, y un ID Int autogenerado.El servicio que usaremos ofrece la siguiente API:
• GET api/animals: devuelve todos.
• GET api/animals/1: devuelve el animal con id 1.
• POST api/animals: crea un nuevo animal y lo devuelve.
• PUT api/animals/1: modifica el animal de id 1.
• DELETE api/animals/1: borra el animal de id 1.
En las operaciones POST y PUT, debe enviarse un JSON como el siguiente en el body del request:
{
Name: “nombre del animal”,
Color: “color del animal”}
Queremos validar los siguientes test cases, en este caso vamos usar Postman:
Web Service Test Cases
TC 1: POST crear un nuevo animal
2. Verificar response o ejecutar «GET [id]» con [id] = id del response para chequear que el animal se creó correctamente.
TC 2: PUT/[id] modifica el animal de id [id]
1. Ejecutar “POST 1 Canario Amarillo”
2. Verificar response o ejecutar «GET [id]» con [id] = id del response
TC 3: DELETE/[id] borra un animal de id [id]
1. Ejecutar “DELETE [id]” con el id del animal que se desea borrar
2. Ejecutar “GET [id]” con el mismo id del paso 1 y verificar que el animal fue borrado.
TC 4: GET por [id] devuelve el animal de id [id]
1. Ejecutar “GET Todos los animales” para obtener los animales existentes.
2. Ejecutar “Get [id]” con el id de uno de los animales para verificar que se obtiene el animal correcto.
Web Service
¿Qué podemos utilizar para testear un Web Service?
Algunas herramientas populares para testear servicios son Postman y SOAP UI que brindan soporte para SOAP, REST, pruebas funcionales, de carga y seguridad, entre otras. Postman: Es una herramienta open source, que puede instalarse nativa o como extensión de Chrome. Permite configurar y correr peticiones HTTP en distintos ambientes, con distintos datos y realizar verificación en las respuestas de los mismos. SoapUI: Es una herramienta open source, pensada inicialmente para pruebas SOAP, que permite realizar pruebas sobre APIs.
Testear Web Servicies es un tema muy amplio. Esperamos que lo mencionado anteriormente sirva como punto de partida conceptual y presentación inicial de las herramientas para poder comenzar a investigar sobre este interesante tema. Compartimos algunos ejemplos y herramientas: Ejemplos de SOAP: https://goo.gl/SeJyhU Ejemplos de REST:
https://goo.gl/p72MyH Herramienta REST: https://goo.gl/v93iFV Herramienta SOAP: https://goo.gl/DLiZcr
Fuente: https://stackoverflow.com
Argentesting, 2da edición
Te cuento, de paso, que el Comité Revisor durante esta semana ha estado evaluando las propuestas recibidas y a partir de hoy, comenzará el proceso de selección, para luego preparar la Agenda y publicarla junto con el Formulario de Inscripción correspondiente, ya que los asientos dentro del Aula Magna y Talleres son limitados.
No te lo pierdas! Te esperamos