Un générateur de test utilise des paquets
d'enregistreur et produit des éléments de modèle de test qu'il ajoute au modèle de test.
Avant de définir un générateur de test, vous devez identifier le type de données qu'il
peut utiliser et les types d'élément de modèle qu'il génère. Les données en entrée d'un générateur de test peuvent être les données brutes
qui ont été produites par les enregistreurs ou des données qui ont été modifiées lors de la phase de conversion. Les
éléments en sortie d'un générateur de test sont typés par fonction, ce qui
correspond généralement à un protocole spécifique.
Pour définir un nouveau générateur de test, procédez comme suit :
- Déclarez un nouveau type de générateur de test dans le fichier plugin.xml en utilisant
le point d'extension com.ibm.rational.test.lt.testgen.core3.testGenerator.
- Affectez au générateur de test un ID unique et un nom.
- Déclarez les types de paquet que le générateur de test peut utiliser.
- Déclarez les propriétés requises du flux de paquets qui est envoyé au générateur de test. L'infrastructure
inclut les convertisseurs nécessaires dans la phase de conversion pour que ces
propriétés soient vérifiées lorsque les paquets atteignent le générateur de test. Pour
plus d'informations sur la définition des propriétés à l'aide de convertisseurs, voir
Définition d'un nouveau convertisseur de paquets.
- Définissez une classe d'implémentation qui implémente l'interface
com.ibm.rational.test.lt.testgen.core.testgen.ITestGenerator.
Le produit intègre un convertisseur qui génère un flux de paquets ordonnés en fonction
de leur horodatage de début.
Généralement, les enregistreurs produisent des
paquets triés en fonction de leur horodatage de fin. La plupart des générateurs de
test requérant que les paquets en entrée soit triés en fonction de leur horodatage de
début, le flux de paquets doit inclure la propriété sorted parmi les
propriétés requises.
Tenez compte des points suivants à propos des implémentations de ITestGenerator :
- Généralement, vous étendez la classe com.ibm.rational.test.lt.testgen.core.testgen.BaseTestGenerator, qui offre une
implémentation de base et requiert uniquement de réécrire les méthodes nécessaires.
- La méthode initialize() contient les options de la configuration du générateur de
test qui seront lues à l'aide de la méthode getContext().getConfiguration().
- La méthode process() est la plus importante. L'infrastructure l'appelle pour chaque
paquet en entrée. Cette méthode crée des éléments de modèle et les
ajoute au test en sortie. Les éléments de modèle doivent être ajoutés au test à l'aide de méthodes de
l'objet ITestStack renvoyé par l'appel getContext().getStack().
- La méthode complete() est appelée par l'infrastructure une fois que tous les
paquets ont été envoyés au générateur de test. La méthode complete() peut être
utilisée pour effectuer les éventuelles opérations de post-traitement.
- Utilisez la méthode getContext().logMessage() pour transmettre les messages et
notamment les messages d'erreur du générateur de test à l'utilisateur. Si le message
est relatif à une erreur irrémédiable, l'infrastructure arrête le processus de génération de
test.
Remarque : Un générateur de test doit ajouter les éléments au test sans délai.
Les générateurs de test doivent ajouter les éléments au test dès qu'ils ont été créés. Un
générateur de test peut toujours ajouter des données à un élément une fois que ce
dernier a été ajouté à un test. En cas de délais lors de l'ajout d'éléments à un test,
les éléments générés risquent de ne pas être classés correctement. Par
exemple, si un autre générateur de test génère également des éléments dans un
environnement utilisant plusieurs protocoles ou que l'enregistrement contient des
annotations, les éléments générés risquent de ne pas être placés dans l'ordre approprié. Si
vous devez tout de même effectuer un traitement qui retardera l'insertion d'un élément
dans le test (par exemple, accumuler des données pour générer un objet de plus haut
niveau), créez un convertisseur qui effectue le traitement et insérez ce
convertisseur avant le démarrage du générateur de test.