Ejemplo Adaptador API/Servicios Web
Descripción
¿Qué es un servicio web? Un servicio web es una API que se utiliza para la comunicación entre diferentes equipos a través de una red, originalmente con el formato de XML. Un cliente utiliza un servicio web cuando lleva a cabo una solicitud, habitualmente como un mensaje XML y el servicio web le responde en XML. Esta comunicación se lleva a cabo a través de una red, siendo el HTTP el medio de conectividad más común que utilizan los dos sistemas. Por lo tanto, necesita una web para funcionar en todos los casos.
¿Qué es una API? API (interfaz de programación de aplicaciones) es un software que permite que dos aplicaciones se comuniquen entre sí. Nunca están en la superficie de una web o aplicación, por lo tanto, no son visibles, son circuitos internos que sólo los desarrolladores ven y conectan para hacer funcionar una herramienta. Las API's son un conjunto de especificaciones y reglas que permiten que un programa se comunique con otro.
Una API, no siempre es un servicio web y por lo tanto no está limitada a un formato XML para transferencia de datos, es libre. Las API pueden funcionar en línea o sin conexión.
En este caso el cliente no tiene la necesidad de saber a qué procedimientos llama dentro del servidor. Ambos facilitan la transferencia de información. A diferencia de los servicios web, las API's son mucho más dinámicas.
Enunciado del ejercicio
Este es un ejemplo de un caso de prueba automatizado en el que utilizamos el Adaptador API/Webservices. Para probarlo, vamos a:
Acceder manualmente a la web https://petstore.swagger.io/ y ver todas las funciones que tiene y cómo se hacen las peticiones.
Cuando hablamos de Swagger nos referimos a una serie de reglas, especificaciones y herramientas que nos ayudan a diseñar, construir y documentar nuestras API's. De esta manera, podemos realizar documentación que sea realmente útil para las personas que la necesitan. Swagger nos ayuda a crear documentación que todo el mundo en tienda.
A través de la interfaz de usuario de Swagger, Swagger UI, podremos organizar nuestros métodos (get, put, post, delete) y categorizar las operaciones. Cada uno de los métodos es expandible, y en ellos podemos encontrar un listado completo de los parámetros con sus respectivos ejemplos. Incluso podemos probar valores de llamada.
- Se cree un nuevo usuario de acceso a la api.
- Obtener los datos del usuario creado.
- Crear una mascota nueva en la api.
- Obtener los datos de la nueva mascota.
- Obtener todas las mascotas disponibles (estado “available”) y guardar los datos en una excel (solamente el id y el nombre).
Resolución del caso de prueba
- Creación y obtención de datos nuevo usuario.
- Creación y obtención de datos nueva mascota.
- Obtención de mascotas disponibles y registro de sus nombres e ids.
A continuación, os dejamos el enlace a los dos diagramas que podéis ejecutar:

Hemos diseñado estos dos casos de prueba utilizando tres Adaptadores: el Adaptador de Objetos de Usuario, el Adaptador Webservice y el Adaptador de Excel.
Adaptador Usuario
Siempre presente en todos los diagramas. Todos los mensajes definidos en el diagrama parten de este adaptador. No tiene parámetros de inicialización.
Adaptador Webservice
Este adaptador es utilizado para ejecutar pruebas de Servicios Web: REST, SOAP. Puede hacer todo tipo de llamadas y realizar comprobaciones sobre estas.
En la configuración del adaptador debemos incluir todos los datos que consideremos descriptivos del servicio en general y que se aplican a todas sus peticiones. De forma que el usuario no tenga que pasarlos en cada mensaje del diagrama. Como por ejemplo la url base del servicio, las cabeceras o el método de autenticación.
- EndPoint: especifica la URL sobre la que realizaremos las llamadas:
- Keep/Session: en caso de ser marcada la sesión seguirá activa durante las diferentes llamadas.
- Service-Charset: es el conjunto de caracteres que se utilizaran en el servicio HTTP, el más común es:
- UTF-8
- IsSecure: indican el tipo de protocolo (http o https).
- Headers: podemos indicar las cabeceras comunes para todas nuestras llamadas.
- Authentication Type:
- NoAuth.
- NoAuth.
Adaptador Excel
Puede ser utilizado como una herramienta para la gestión de datos, ya sea como datos de entrada o de salida.
En este caso de prueba, una vez que hemos obtenido todas las mascotas disponibles (estado “available”), guardamos los datos en una excel (solamente el id y el nombre):
- FilePath: especifica la ruta del archivo. Indicamos el path y el nombre del fichero que queremos que se cree.
- En el diagrama 13298 será: #pathLog\Mascotas.xlsx
- En el diagrama 13303 será: #pathLog\Mascotas1.xlsx
- En el diagrama 13298 será: #pathLog\Mascotas.xlsx
- Sheet: es la hoja activa sobre la que trabajamos: 1
- Create/Overwrite: cuando la casilla de verificación está marcada, TAST creará un nuevo archivo o lo sobrescribirá si el archivo ya existe.
Funciones y elementos relevantes
Separaremos las funciones por el adaptador al que pertenecen.
Funciones del Adaptador de Usuario
- failTest(ErrorMsg): devuelve el error con o sin el mensaje de error que el usuario introduce como parámetro en ErrorMsg. Utilizado para hacer fallar la prueba en caso de algún error.
- setVariable: crea una variable, cuyo nombre es introducido como parámetro:
- La variable #numNombres cuyo valor es #TastOutputRowNombresMascotas.getLength().
- La variable #nombreMascota cuyo valor es #TastOutputRowNombresMascotas.getCellValue(#i).
- La variable #numIds cuyo valor es #TastOutputRowIdsMascotas.getLength().
- La variable #IdMascota cuyo valor es #TastOutputRowIdsMascotas.getCellValue(#i).
Funciones del Adaptador Webservice
- postRest(resource, headers, content-type, body): permite configurar una petición Http de tipo Post.
Función POST, para crear un nuevo usuario.
Función POST, para crear una nueva mascota.
En el diagrama 13298 En el diagrama 13303
- getRest(resource, headers, parameters): permite configurar una petición Http del tipo Get.
- getResponseStatus(StepResponse): permite recuperar el código de estado Http de la respuesta.
- getElementsValueByJsonPath(JsonPath, ResponseName): devuelve todos los elementos que tienen el mismo JsonPath.
Funciones del Adaptador Excel
- setTableValue(): genera el valor de la celda en el archivo Auxiliar Excel, basado en el valor indicado por los parámetros RowNum, ColNum y ValueCell.
Subtestcases
En este diagrama (Diagrama 13298) se han creado tres Subtestcases. La primera para crear y obtener datos del usuario creado. La segunda para crear y obtener datos de la nueva mascota y la tercera para obtener los nombres de las mascotas y sus correspondientes id. Obtendremos un resultado de cada subtestcase aparte del resultado final.
Fragmento Combinado: Bucle FOR
Para obtener todas las mascotas disponibles y su id, tanto en el diagrama 13298, cómo en el diagrama 13303, hemos creado dos bucles FOR. Todos los pasos incluidos en este bucle se ejecutarán varias veces, de acuerdo con los parámetros indicados en la pestaña de propiedades del fragmento.
Para obtener todas las mascotas
- Guard: #i ⇐ #numNombres
- Variable para iteración: i
- Caso de inicio 1, tipo de incremento +, incremento 1
Para obtener todas los id:
Ejecución del Test Set
Al abrir el Cliente de TAST, buscamos los casos de prueba y lanzamos la ejecución. Comprobamos si se ha realizado correctamente, si aparece marcada en verde la casilla de Status en los dos casos.
Captura de resultados
Al terminar de ejecutar este caso de prueba, tenemos como resultado la carpeta de evidencias, donde se almacena el log de la ejecución, como los ficheros que se hayan podido generar.
Abrimos el icono que está al lado de la casilla Status y nos va a mostrar la ruta donde se almacena la carpeta de evidencias:
Diagrama 13298: a parte de generarse como veis en las imágenes los ficheros correspondientes, en este, se han creado tres carpetas, una por cada subtescase:
Diagrama 13303
Log de la ejecución
Diagrama 13298
Diagrama 13303
A la hora de devolvernos los resultados, TAST nos devuelve un documento Word, en el que se detallan los pasos que hemos realizado, los resultados obtenidos de cada paso, los enlaces al diagrama y al conjunto de pruebas, si hemos dado a descargar documento en la casilla de Resultados.
Archivos que se generan al ejecutar el caso
Diagrama 13298: #pathLog\Mascotas.xlsx
En este primer caso de prueba, se ha generado una Excel donde se registran todas las mascotas y sus correspondientes id.
Nos vamos hasta el final de la Excel para comprobar cómo se ha registrado el nombre de la mascota que hemos dado de alta nosotros y su correspondiente id.
Diagrama 13303: #pathLog\Mascotas1.xlsx
En este segundo caso de prueba igualmente se ha registrado el nombre de todas las mascotas con sus correspondientes id.
Al final de la Excel, aparecerá nuestra mascota y su id.
Os pasamos un link, para que accedáis al vídeo con la explicación del caso de prueba: Vídeo del caso de prueba
















No Comments