Pour
pouvoir implémenter la corrélation des données lors de l'exécution, configurez la classe
qui étend la classe com.ibm.rational.test.lt.kernel.action.KAction
afin de déclencher un appel dans le moteur de corrélation des données.
Avant de commencer
Avant
d'implémenter la corrélation des données, familiarisez-vous avec les classes
suivantes :
- com.ibm.rational.test.lt.datacorrelation.execution.harvest.IDataHarvester
- com.ibm.rational.test.lt.datacorrelation.execution.sub.IDataSub
- IDataCorrelationVar
- com.ibm.rational.test.lt.datacorrelation.execution.proto.IProtoActionAdapter
Consultez la documentation Javadoc pour plus d'informations sur les classes et les méthodes.
Pourquoi et quand exécuter cette tâche
L'interface
IKAction définit la fonctionnalité de base que toutes les actions de noyau doivent implémenter. L'interface
IKAction correspond à l'interface de base de toutes les actions de noyau. Les actions peuvent représenter des boucles, des conditions ou d'autres constructions de code.
Pour que la corrélation des données puisse être implémentée lors de l'exécution, codegen enregistre vos collecteurs et vos remplaçants dans des conteneurs.
Pour que la corrélation des données puisse être implémentée lors de l'exécution, codegen
doit enregistrer vos collecteurs et vos remplaçants dans des conteneurs. Pour cela les méthodes LTTestTranslator.translateHarvesterContainer() et
LTTestTranslator.translateSubstituterContainer() sont appelées lors de la
génération du code lorsque vous convertissez votre action. Ces deux méthodes se
trouvent dans le plug-in com.ibm.rational.test.lt.codegen.core. Ces conteneurs doivent être ajoutés à votre action et stockés avec votre action. Ces
conteneurs doivent être ajoutés à votre action et stockés avec votre action. Lors de
l'exécution de vos actions, ces dernières doivent appeler ces conteneurs de sources de
données et de remplaçants. Le conteneur de remplaçants est appelé au début de l'action, avant l'envoi de données, et le conteneur de sources de données est appelé à la fin de l'action, après la réception des données.
Procédure
Pour implémenter la partie exécution de la corrélation des
données :
- Vous devez étendre un point d'extension dans codegen.core pour que
votre exécution IProtoActionAdapter soit enregistrée pour la lecture :
- Etendez le point d'extension DataCorrelationProtoAdapter dans le package com.ibm.rational.test.lt.codegen.core. Pour procéder à l'extension, utilisez le plug-in qui correspond à l'extension du plug-in
com.ibm.rational.test.lt.datacorrelation.execution qui implémente l'interface
IProtoActionAdapter.
- Indiquez au plug-in com.ibm.rational.test.lt.datacorrelation.execution les types d'action IKAction à gérer et le nom de votre plug-in.
- Une fois cette opération terminée, une sortie similaire à la suivante est ajoutée
dans la partie supérieure de votre code .java généré :
pa.addPA("com.ibm.rational.test.lt.sdksamples.datacorrelation.execution.socket.SocketActionAdapter",
"com.ibm.rational.test.lt.sdksamples.protocol.socket.io.SocketSend");
La première chaîne doit correspondre au nom de votre classe qui implémente l'adaptateur
IProtoActionAdapter et la deuxième chaîne doit correspondre au nom de
l'interface KAction pour laquelle votre classe
IProtoActionAdapter doit être appelée. Attention, ces chaînes
doivent être correctement orthographiées.
- Pour implémenter l'extension de plug-in datacorrelation.execution,
votre plug-in doit implémenter l'interface com.ibm.rational.test.lt.datacorrelation.execution.IProtoActionAdapter . Le plug-in com.ibm.rational.test.lt.datacorrelation.execution principal utilise
l'interface pour appeler votre plug-in et obtenir les informations d'implémentation.
Remarque : Il s'agit également du plug-in qui étend la classe
DataCorrelationProtoAdapter dans le point d'extension codegen.
- Pour démarrer le processus de remplacement, dans la méthode
IDataSub.substituteData(), utilisez l'action et la mappe de hachage comme
paramètres.
- L'action active appelle la méthode com.ibm.rational.test.lt.datacorrelation.execution.sub.IDataSub.substituteData(). Le conteneur de remplacement applique toutes les règles de remplacement et place les
nouvelles valeurs de chaîne (lues à partir des variables de corrélation des données) dans
la mappe de hachage. La première valeur de la mappe de hachage correspond au type de propriété et la seconde,
à la chaîne intégrale de ce type de propriété.
Par conséquent, une fois la substitution
terminée, la chaîne est automatiquement corrigée.
- Le conteneur de remplaçants passe ensuite la main à l'interface IKAction.
- L'interface IKAction lit les valeurs de chaîne à partir de la mappe de
hachage et les envoie aux emplacements appropriés.
- Pour commencer la collecte des données, l'action active appelle la méthode
IDataHarvester.harvestData(). L'action se transmet elle-même au conteneur.
- Le collecteur des données appelle le plug-in qui étend le plug-in d'exécution de la
corrélation des données pour extraire les valeurs de chaîne auxquelles les règles de
collection doivent être appliquées.
- Le conteneur de collecteurs de données place les valeurs collectées dans des
variables de corrélation des données. Ces variables de corrélation des données sont utilisées dans des exécutions de remplacement ultérieures.