Para produzir dados, uma sessão de gravação deve iniciar pelo menos um cliente. Vários clientes são fornecidos com o produto. Para automatizar o início de um aplicativo específico, você pode definir um novo cliente.
A única tarefa do cliente é iniciar um aplicativo e notificar a estrutura de gravação sobre eventos de ciclo de vida do cliente. Para configurar um cliente para que ele possa ser gravado por um gravador, consulte Definindo Como um Gravador Pode Gravar um Cliente.
Às vezes, não há cliente para ativar, pois o cliente já existe ou porque ele é um sistema que tem seu próprio ciclo de vida.
Nesse caso, é possível usar o cliente manual fornecido com o produto.
O ID do cliente manual é com.ibm.rational.test.lt.recorder.core.manualClient.
Para definir um novo tipo de cliente, conclua estas tarefas:
- Declare um novo tipo de cliente no arquivo plugin.xml usando o ponto de extensão com.ibm.rational.test.lt.recorder.core.client.
- Determine se o cliente pode ser executado localmente dentro do ambiente de trabalho, remotamente em uma JVM separada ou na mesma JVM do gravador no qual ele está ligado.
- Defina um delegado, que é a classe de implementação do cliente.
O delegado para e inicia o cliente e notifica a estrutura quando o cliente é iniciado ou fechado.
- Se o cliente for remoto, defina uma implementação de ativador remoto que forneça detalhes sobre a JVM que executa o delegado.
- Opcionalmente, defina um validador de pré-requisito que execute a verificação básica na qual o cliente pode ser executado no computador atual.
Para implementar a interface IClientDelegate:
- Você deve fornecer uma implementação desta interface. Essa interface inicia e para o cliente e envia notificações de eventos, como "cliente iniciado" e "cliente parado."
- Os métodos start() e stop() são assíncronos. Ou seja, a operação não precisa ser concluída quando esses métodos forem retornados.
Por essa razão, um delegado de cliente deve notificar a estrutura quando uma operação for concluída.
- A operação stop() é chamada apenas quando o usuário clica em Parar na interface com o usuário. Em muitos casos, o usuário indica no próprio aplicativo que quer fechá-lo. O delegado deve monitorar o aplicativo e notificar a estrutura quando o aplicativo for fechado.
- Um cliente pode ter uma configuração. A configuração é criada usando um arquivo XML, que é um arquivo com a extensão .recconfig ou usando um assistente. Para obter um exemplo de um arquivo XML, abra um arquivo da sessão de gravação existente e clique em . A configuração é armazenada em um objeto ClientConfiguration, que é o mapa das sequências para vários tipos de objetos. Um delegado de cliente lê essa configuração em seu método initialize().
- Um contexto é fornecido ao delegado de cliente em seu método initialize().
Esse contexto permite que o gravador envie notificações de eventos e grave mensagens de log.
- Geralmente, você estende a classe BaseClientDelegate em vez de implementar a classe IClientDelegate diretamente. A classe base abstrata fornece um comportamento básico para a maioria dos métodos. Você pode substituir especificamente aqueles que deve substituir.
- Um delegado de cliente pode enviar mensagens para o usuário chamando o método sendUserMessage() ou chamando o método getContext().sendMessage(new
UserMessage(...)), se o delegado não estender a classe BaseClientDelegate.
- Um delegado de cliente pode ser ativado para se comunicar com entidades externas configurando ou recuperando propriedades dinâmicas ou recebendo mensagens.
O delegado de cliente será útil apenas se você desenvolver uma UI específica para o cliente ou se definir um decorador de cliente para o cliente.
Se seu cliente ativar um processo específico, você poderá estender a classe com.ibm.rational.test.lt.recorder.core.clients.ProcessBuilderClientDelegate. Nesse caso, é necessário estender somente o método initialize() e, em seguida, chamar os métodos setter para configurar a linha de comandos, os argumentos, as variáveis de ambiente e o diretório ativo.