Pour générer des données, une session
d'enregistrement doit démarrer au moins un client. Plusieurs clients sont fournis avec le
produit. Pour automatiser le démarrage d'une application spécifique, vous pouvez définir
un nouveau client.
Les seules tâches incombant au client sont de démarrer une application et de notifier
ses propres événements de cycle de vie à l'infrastructure
d'enregistrement. Pour configurer un client de sorte qu'il puisse être enregistré par un enregistreur, voir Définition du mode d'enregistrement d'un client par un enregistreur.
Il arrive qu'il n'y ait pas de client à lancer car ce dernier existe déjà ou qu'il
correspond à un système qui possède son propre cycle de vie.
Dans ce cas, vous pouvez utiliser le client manuel fourni avec le
produit.
L'ID du client manuel est com.ibm.rational.test.lt.recorder.core.manualClient.
Pour définir un nouveau type de client, procédez comme suit :
- Déclarez un nouveau type de client dans le fichier plugin.xml en utilisant
le point d'extension com.ibm.rational.test.lt.recorder.core.client.
- Déterminez si le client peut être exécuté en local dans le plan de travail, à
distance sur une machine virtuelle Java distincte ou sur la même machine virtuelle
Java que l'enregistreur auquel il est associé.
- Définissez un délégué, qui correspond à la classe d'implémentation du client.
Le délégué démarre et arrête le client et notifie à l'infrastructure
les événements de démarrage et de fermeture du client.
- Si le client est distant, définissez une implémentation de lanceur à
distance fournissant les détails de la JVM qui exécute le délégué.
- Définissez éventuellement un valideur prérequis qui effectue la vérification de
base comme quoi le client peut être exécuté sur l'ordinateur actuel.
Pour implémenter l'interface IClientDelegate :
- Vous devez fournir une implémentation de cette interface. Cette interface
démarre et arrête le client et envoie des notifications
d'événements tels que "client démarré" et "client arrêté".
- Les méthodes start() et stop() sont asynchrones. En d'autres termes,
il n'est pas nécessaire que l'opération soit terminée avant le retour de ces méthodes.
Pour cette raison, un délégué de client doit notifier l'infrastructure de
la fin d'une opération.
- L'opération stop() n'est appelée que lorsque l'utilisateur clique sur
Arrêter dans l'interface utilisateur. Dans la plupart des cas,
l'utilisateur demande dans l'application elle-même à fermer l'application. Le délégué doit surveiller l'application
et notifier l'infrastructure lorsque l'application est fermée.
- Un client peut posséder une configuration. Cette configuration est générée à
l'aide d'un fichier XML portant l'extension .recconfig ou d'un assistant. Pour un exemple de
fichier XML, ouvrez un fichier de session d'enregistrement existant, puis cliquez sur
. La configuration est stockée dans un objet ClientConfiguration, qui correspond à une
mappe de chaînes à divers types d'objet. Un délégué de client lit cette configuration
dans sa méthode initialize().
- Un délégué de client reçoit un contexte dans sa méthode initialize().
Ce contexte permet à l'enregistreur d'envoyer des notifications d'événement et
d'enregistrer des messages de journal.
- Généralement, vous étendez la classe BaseClientDelegate plutôt que d'implémenter
directement l'interface IClientDelegate. La classe abstraite de base fournit un comportement
de base pour la plupart des méthodes. Vous pouvez réécrire celles dont le comportement doit être redéfini.
- Un délégué de client peut envoyer des messages à l'utilisateur en appelant
la méthode sendUserMessage() ou la méthode getContext().sendMessage(new UserMessage(...)) si le délégué n'étend pas la classe BaseClientDelegate.
- Un délégué de client peut être autorisé à communiquer avec des entités externes
en définissant ou en extrayant des propriétés dynamiques ou en recevant des messages.
Le délégué de client
n'est utile que si vous développez une interface utilisateur spécifique pour
le client ou si vous définissez un décorateur client pour le client.
Si votre client lance un processus spécifique, vous pouvez étendre la
classe com.ibm.rational.test.lt.recorder.core.clients.ProcessBuilderClientDelegate. Dans ce cas, vous n'avez qu'à étendre la méthode initialize(), puis à appeler
des méthodes d'accès set pour configurer la ligne de commande, les arguments,
les variables d'environnement et le répertoire de travail.