Para generar datos, una sesión de grabación debe iniciar al menos un cliente. En el producto se incluyen varios clientes. Para automatizar el inicio de una aplicación específica, puede definir un nuevo cliente.
El cliente sólo se encarga de iniciar una aplicación y notificar a la infraestructura de grabación sobre los sucesos de ciclo de vida del cliente. Para configurar un cliente para que un grabador pueda grabarlo, consulte Definición de cómo un grabador puede grabar un cliente.
A veces no hay un cliente para lanzar porque el cliente ya existe o porque el cliente es un sistema que tiene su propio ciclo de vida.
En este caso, puede utilizar el cliente Manual que se incluye en el producto.
El ID del cliente Manual es com.ibm.rational.test.lt.recorder.core.manualClient.
Para definir un nuevo tipo de cliente, lleve a cabo estos pasos:
- Declare un nuevo tipo de cliente en el archivo plugin.xml utilizando el punto de ampliación com.ibm.rational.test.lt.recorder.core.client.
- Determine si el cliente puede ejecutarse de manera local en un entorno de trabajo, remotamente en una JVM separada o en la misma JVM que el grabador al que está conectada.
- Defina un delegado, que es la clase de implementación del cliente.
El delegado es responsable de iniciar y detener el cliente y de notificar a la infraestructura cuando el cliente se inicie o se cierre.
- Si el cliente es remoto, defina una implementación de iniciador remoto que proporciona detalles sobre la JVM que ejecuta el delegado.
- De manera opcional, defina un validador de requisitos previos que realiza una verificación básica de que el cliente puede ejecutarse en el sistema actual.
Para implementar la interfaz IClientDelegate:
- Debe proporcionar una implementación de esta interfaz. Esta interfaz inicia y detiene el cliente y envía notificaciones de sucesos tales como "client started" y "client stopped."
- Los métodos start() y stop() son asíncronos. En otras palabras, la operación no necesita completarse cuando estos métodos vuelven.
Por ello, un delegado de cliente debe notificar a la infraestructura cuando la operación se complete.
- La operación stop() sólo se invoca cuando el usuario pulsa Detener en la interfaz de usuario. En muchos casos, el usuario interviene en la aplicación para cerrarla. El delegado debe supervisar la aplicación y notificar el cierre de la aplicación a la infraestructura.
- Un cliente puede tener una configuración. La configuración se construye utilizando un archivo XML; que es un archivo con la extensión
.recconfig, o utilizando un asistente. Para obtener un ejemplo de un archivo XML, abra un archivo de sesión de grabación existente y, a continuación, pulse . La configuración se almacena en un objeto ClientConfiguration, que es un mapa de series a varios tipos de objetos. Un delegado de cliente lee esta configuración en su método initialize().
- A un delegado de cliente se le proporciona un contexto en su método initialize().
Este contexto permite al grabador enviar notificaciones de sucesos y grabar mensajes de registro.
- Normalmente, amplía la clase BaseClientDelegate en lugar de implementar directamente la clase IClientDelegate. La clase abstracta base proporciona un comportamiento básico a la mayoría de los métodos. Puede alterar temporalmente de forma específica aquellos métodos que deba sustituir.
- Un delegado de cliente puede enviar mensajes al usuario llamando al método sendUserMessage() o al getContext().sendMessage(new
UserMessage(...)) si el delegado no amplía la clase BaseClientDelegate.
- Puede habilitarse un delegado de cliente para comunicarse con entidades de fuera, mediante el establecimiento o la recuperación de propiedades dinámicas o mensajes.
El delegado de cliente resulta útil sólo si desarrolla una interfaz de usuario específica para el cliente o si define un decorador de cliente para el cliente.
Si su cliente lanza un proceso específico, podrá ampliar la clase com.ibm.rational.test.lt.recorder.core.clients.ProcessBuilderClientDelegate. En este caso, sólo necesita ampliar el método initialize() y, a continuación, invocar métodos setter para configurar la línea de mandatos, los argumentos, las variables de entorno y el directorio de trabajo.