es:en:api_webservice_adaptor [TAST DokuWiki ]

User Tools

Site Tools


Sidebar

Primeros pasos en TAST

Que es UML

Configuración del sistema para el uso de TAST

Preguntas más frecuentes

Problemas reconocidos

Indice de la herramienta TAST

Adaptadores de TAST

Ejemplos de adaptadores

TAST Integraciones

Características de interés

Documentación de administración técnica

Recomendaciones para modelar

Formación en la herramienta TAST

es:en:api_webservice_adaptor

This is an old revision of the document!


Adaptador API/Servicios Web

Introducción

Este adaptador es utilizado para ejecutar pruebas de Servicios web: REST, SOAP y otros.

Configuración

En el setup del adaptador deberemos incluir todos los datos que consideremos descriptivos del servicio en general y que apliquen 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, cabeceras o el método de autenticación.

Descripción de parámetros de Setup para el Adaptador rest

EndPoint: URL base de acceso al servicio.

Keep Session: Indica si se debe mantener la sesión entre peticiones al servicio. Si se marca, el adaptador añadirá a las peticiones que realice, las cookies que reciba en las respuestas.

IsSecure: Indica si las peticiones al servicio se realizaran sobre el protocolo http o https.

Headers: Permite añadir cabeceras a todas las peticiones que se envien al servicio.

Authentication Type: Permite seleccionar el tipo de autenticación que requiere el servicio, además una vez seleccionado nos permite introducir los datos necesarios para ese tipo de autenticación.

Datos de autenticación y autorización

Se entiende que la primera interacción que el adaptador deberá realizar con el servicio web será la de autenticación y autorización. Actualmente existen varios métodos estándar diferentes para realizar este paso y otros propietarios que yo dejaría para desarrollar bajo demanda, es decir si encontramos la necesidad.

Resaltar que no son métodos de autenticación-autorización propios de los servicios Web Rest, más bien están asociados al protocolo Http, con lo que el desarrollo debería orientarse a ser reutilizado por el adaptador GUI Html y el adaptador Webservices SOAP, si en el futuro se pretende acceder a alguna aplicación Web que emplee alguno de estos métodos para autenticarse-autorizarse,

Tipos de autenticación

Para administrar el authentication_type existe un campo de tipo combo, que contiene el tipo de la autenticación, que debe ser seleccionado por el usuario.

Pasamos a enumerarlas, hacer breve descripción de los mismos y pensar que parámetros podríamos necesitar.

  • No Authorization (None Auth): Si el usuario selecciona este método no es necesario autenticarse para utilizar el servicio.
  • Basic Authorization (Basic Auth): El método más simple solo requiere de los parámetros usuario y password.

https://en.wikipedia.org/wiki/Basic_access_authentication

  • Digest Authorization (Digest Auth): Este método es un poco más fuerte porque se encripta la clave y el usuario, en la herramienta postman cuando seleccionas este tipo de autenticación solicita los siguientes parámetros.

Nuevas funciones predefinidas para rest en el adaptador Web Service

NUEVAS FUNCIONES PREDEFINIDAS PARA REST EN EL ADAPTADOR WEB SERVICE

TastHttpResponse=getRest(resource, headers, parameters) Descripción: Permite configurar una petición HTTP de tipo Get. Resource: Indica el recurso dentro del EndPoint sobre el que se realizará la petición.

   Headers: Indica los headers que se deben agregar a la petición.

Parameters: Indica los parámetros que se deben agregar a la URL de la petición.

TastHttpResponse=postRest(resource, headers, content-type, body) Descripción: Permite configurar una petición HTTP de tipo Post. Resource: Indica el recurso dentro del EndPoint sobre el que se realizara la petición.

Headers: Indica las cabeceras que se deben agregar a la petición.

Content-type: Cabecera http estándar que indica el tipo de contenido que se agrega al cuerpo de la petición.

Body: Contenido de la petición Http.

TastHttpResponse=putRest(resource, headers, content-type, body) Descripción: Permite configurar una petición HTTP de tipo Put. Resource: Indica el recurso dentro del EndPoint sobre el que se realizara la petición.

Headers: Indica las cabeceras que se deben agregar a la petición.

Content-type: Cabecera http estándar que indica el tipo de contenido que se agrega al cuerpo de la petición.

Body: Contenido de la petición Http.

TastHttpResponse=deleteRest(resource, headers) Descripción: Permite configurar una petición HTTP de tipo Delete. Resource: Indica el recurso dentro del EndPoint sobre el que se realizara la petición.

Headers: Indica las cabeceras que se deben agregar a la petición.

OUTPUT=getHeaderValue(StepResponse, Header) Descripción: Permite obtener el valor de una cabecera recibida en una respuesta HTTP.

StepResponse: Indica el número del mensaje o paso, en que se genero 	la Response de la que se quiere extraer el valor de la cabecera.
Header: El código de la cabecera de la que se quiere extraer el valor.

- OUTPUT=getResponseStatus(StepResponse) Descripción: Permite obtener el código de retorno HTTP de una respuesta HTTP. StepResponse: Indica el número de mensaje/paso en que se genero la Respuesta de la que se quiere extraer el código de estatus del retorno. Inglés: Allows to retrieve response´s Http status code. StepResponse: Indicates the message´s number where the Http Response was generated.

OUTPUT=getCookieValue(StepResponse, Cookie) Descripción: Permite obtener el valor recibido en una respuesta para una cookie determinada. StepResponse: Indica el número de mensaje/paso en que se genero la Respuesta de la que se quiere extraer el valor de la Cookie.

Cookie: Nombre de la Cookie cuyo valor queremos extraer.

OUTPUT=getXMLElementValueByXPath(StepResponse, XPathExp) Descripción: Si el contenido de la respuesta a una petición es XML, esta función permite recuperar el valor de un elemento, empleando para identificar el elemento una expresión XPath. StepResponse: Indica el número de mensaje/paso en que se genero la Respuesta de la que queremos recuperar un valor mediante Xpath. XPathExp: Expresión Xpath empleada para buscar el elemento XML.

XPathExp: XPath expression used to identify the element.

OUTPUT= getXMLElementValueByTagName(StepResponse, ElementTag) Descripción: Si el contenido de la respuesta a una petición es XML, esta función permite recuperar el valor de un elemento, empleando para identificar el elemento a recuperar su etiqueta de identificación. Si existen varios elementos con este TagName, se devolverá el valor del primer elemento. StepResponse: Indica el número de mensaje/paso en que se genero la respuesta, de la que se quiere extraer el valor. ElementTag: Etiqueta que permite identificar el elemento XML.

OUTPUT= getJSONElementValueByJsonPath(StepResponse, JSonPathExp) Descripción: Si el contenido de la respuesta a una petición es JSON, esta función permite recuperar el valor de un atributo o elemento, empleando para identificar el elemento una expresión JSonPath. StepResponse: Indica el número de mensaje/paso en que se genero la respuesta, de la que se quiere extraer el valor. JSonPathExp: Expresión JSonPath que identifica el elemento.

SetNoneAuthentication() Descripción: Permite configurar el método de autenticación de las peticiones que se envían al EndPoint como peticiones sin esquema de autenticación. Sobre escribe la configuración de seguridad realizada en el setup del adaptador.

SetBasicAuthentication(user, password) Descripción: Permite configurar el esquema de autenticación de las peticiones que se envían al EndPoint como BasicAuthentication. Sobreescribe la configuración de seguridad realizada en el setup del adaptador.

User: Código de usuario empleado como credencial.
Password: Password a presentar como credencial.

SetBearerTokenAuthentication(token) Descripción: Permite configurar el método de autenticación de las peticiones que se envían al EndPoint como Bearer Token Authentication. Sobre escribe la configuración de seguridad realizada en el setup del adaptador. Token: Valor del Token que se empleara para presentarlo como credencial.

SetDigestAuthentication(user, password, realm, nonce, algorithm, Qoq, NonceCount, ClientNonce, Opaque) Descripción: Permite configurar el método de autenticación de las peticiones que se envían al EndPoint como Digest Authentication. Sobre escribe la configuración de seguridad realizada en el setup del adaptador.

User: Código de usuario empleado como credencial.
Password: Password a presentar como credencial.

Realm: Dominio de seguridad sobre el que se debe realizar la validación de seguridad. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. Nonce: Nonce retornado por el servidor. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. Algorithm: Algoritmo empleado para encriptación. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. Qoq: Calidad del código de protección. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. NonceCount: NonceCount asociado a la petición. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. ClientNonce: Nonce generado por el cliente. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío. Opaque: Opaque retornado por el servidor. Es opcional, si no se conoce, el adaptador intentara realizar la validación con los datos obtenidos de la respuesta al desafío.

Asistente de mapeo REST

El asistente de mapeo REST permite, a partir de un diagrama ya guardado, modificar aquellos mensajes directos cuyo destino es un objeto mapeado con el adaptador WebService.

Aquellos mensajes que tengan mapeada una función predefinida de la siguiente lista: GetRest, PostRest, DeleteRest y PutRest podrán ser ejecutados tal y como serían ejecutados cuando se lanza un test. La ejecución genera datos que serán presentados al usuario.

Es posible también editar y ejecutar las aserciones que previamente hayan sido asociadas a los mensajes.

Vistas:

Vista Objeto:

Desde esta vista es posible seleccionar el objeto con el que queremos trabajar. Solo se podrán elegir objetos mapeados con el adaptador WebService.

Una vez seleccionado un objeto, se mostrarán los valores mapeados para dicho objeto. Dichos valores pueden ser editados.

Vista Mensaje:

Desde la vista de mensaje se puede seleccionar uno de los mensajes directos que llegan al objeto que previamente hemos seleccionado.

Se muestran los valores mapeados para dicho mensaje, siempre y cuando el mensaje haya sido mapeado con una de las siguientes funciones predefinidas: GetRest, PostRest, DeleteRest y PutRest. En caso contrario, todos los campos de entrada aparecerán vacíos.

El subapartado Aserción, mostrará los datos de la aserción asociada al mensaje seleccionado, en caso de existir. En caso contrario, los campos de entrada para la aserción aparecerán deshabilitados.

Acciones:

Ejecuta el mensaje seleccionado. Presenta al usuario los resultados de dicha ejecución.

Ejemplo:

Se ha ejecutado el mensaje con nombre getRest. Se pueden ver los parámetros de entrada asociados a dicho mensaje.

El resultado de la ejecución se muestra en el subapartado Resultado.

Las pestañas Cabeceras y Cuerpo presentan los datos recibidos tras ejecutar la petición.

Debajo se presenta el estado de la petición, el tiempo de respuesta y el tamaño que ocupa.

Ejecuta la aserción asociada al mensaje seleccionado.

El resultado de la aserción se presenta en la pestaña “Parámetros salida”.

Por el momento, no hay definidas aserciones específicas para los mensajes REST. Es necesario por tanto, que dichas funciones de aserción tengan al menos dos parámetros: el primero será el valor del stepResult, y el segundo contendrá el valor del resultado de la ejecución de la petición.

Para el resto de parámetros de la función, es posible dar un valor desde la pestaña “Variables entrada” del subapartado Aserción.

es/en/api_webservice_adaptor.1537356255.txt.gz · Last modified: 2018/09/19 11:24 by tast