Les données capturées par un enregistreur
doivent être stockées dans un fichier et consommées par un générateur de test pour
générer un test. Les données capturées doivent être définies de sorte qu'elles
puissent être stockées par l'enregistreur et consommées par le générateur de test.
Pour définir un nouveau type de données enregistrées, procédez comme suit :
- Déclarez un nouveau type de paquet d'enregistreur dans le fichier plugin.xml en utilisant
le point d'extension com.ibm.rational.test.lt.recorder.core.recorderPacket.
- Définissez une ou plusieurs classes d'implémentation, dans le même plug-in, qui
implémentent l'interface com.ibm.rational.test.lt.recorder.core.packet.IRecorderPacket.
Les remarques suivantes s'appliquent aux implémentations de IRecorderPacket :
- Vous pouvez définir autant de zones que nécessaire pour stocker vos données.
- Ces classes étant instanciées par un enregistreur, elles doivent exposer une
manière de se construire elles-mêmes.
- Ces classes étant utilisées par un générateur de test, elles doivent exposer des
mécanismes permettant de récupérer des informations pour ce générateur de test. En d'autres termes,
elles doivent exposer des méthodes d'accès get.
- Vous devez rendre les classes sérialisables. Ne l'oubliez pas lorsque vous concevez les classes. Les
classes ne doivent contenir aucune référence aux données que vous ne souhaitez pas
inclure dans les informations stockées.
Les zones qui incluent des références aux
données que vous ne souhaitez pas stocker doivent être déclarées à l'aide du mot clé transient. Si
vous prévoyez des évolutions de ces classes, assurez-vous que ces évolutions sont
compatibles avec les versions antérieures.
Les paquets d'enregistreur ont les caractéristiques communes suivantes :
- Ils ont un type. Il doit s'agir d'un ID de type déclaré dans une extension connectée au
point d'extension com.ibm.rational.test.lt.recorder.core.recorderPacket. La
classe d'implémentation doit se trouver dans le même plug-in que celui où est déclaré l'ID de type.
- Ils possèdent une heure de début et une heure de fin. Cela est important pour trier
les paquets capturés, car les enregistreurs n'envoient généralement pas les paquets à
l'heure précise où ils sont capturés. De nombreux paquets possèdent la même heure pour
les événements de début et de fin, car ils sont capturés atomiquement.
Il n'est pas obligatoire qu'un paquet possède des heures de début et de fin différentes. En revanche,
il doit nécessairement avoir une heure de fin postérieure
ou identique à l'heure de début. Tous les horodatages doivent être exprimés dans l'unité de temps fournie par
l'infrastructure.
L'unité doit être de la plus haute précision
autorisée par le système.
Pour les meilleurs résultats, suivez ces pratiques
pour l'implémentation des paquets d'enregistreur :
- S'il existe plusieurs types de données, définissez une interface implémentée par
toutes les classes d'implémentation.
- Définissez une interface pour chaque classe d'implémentation concrète, qui n'expose
que les fonctions en lecture seule de la classe. Le générateur de test n'a besoin
d'accéder qu'aux interfaces, tandis que l'enregistreur doit accéder aux classes.
- Ne définissez pas de zones redondantes ou calculables. Les classes
étant sérialisées, une seule zone supplémentaire peut accroître considérablement la
taille du fichier d'enregistrement si un nombre important de paquets sont stockés. Déclarez
une zone redondante ou calculable à l'aide du mot clé transient.