Interface WMQTest
Les tests écrits pour IBM® MQ Explorer doivent appartenir à une classe Java qui étend la classe WMQTest fournie. La présente rubrique décrit l'interface et le fonctionnement des méthodes fournies.
- Attributs de test -attributs de votre objet de test
- Création du test -constructeur pour les objets de test
- Structure du test -Début et fin du test
- Exécution du test -corps principal des tests
- User preferences -accès aux préférences
- Terminer le test -Marquage d'un test comme terminé
- Création d'un résultat de test -Création de résultats de test
- Prise en charge de l'annulation -que se passe-t-il si l'utilisateur souhaite annuler un test
- Documentation de test -fournit des informations supplémentaires sur le test
Attributs du test
Définissez un test dans le fichier manifeste du plug-in (plugin.xml) à l'aide d'une collection d'attributs. Les attributs associés à un test sont indiqués dans le tableau suivant.
Attribut | Description |
---|---|
identificateur | Chaîne constituant l'identificateur unique du test. |
nom | Nom significatif du test. |
classe | Nom de la classe Java qui contient le code source de test. |
testset | Chaîne qui définit le groupe dans lequel afficher le test ; par exemple,wmq, qui affiche le test dans la catégorie Tests des gestionnaires de files d'attente . |
testsubset | Chaîne qui définit le sous-groupe dans lequel afficher le test ; par exemple,queues, qui affiche le test dans la catégorie Files d'attente . |
description | Brève description des vérifications effectuées par le test. |
furtherinfo | Emplacement du document HTML ou XHTML qui contient un complément d'information sur le test. Ce document s'affiche dans IBM MQ Explorer lorsque vous cliquez deux fois sur le test dans la boîte de dialogue Exécuter des tests ou sur un résultat de test dans la vue Résultats du test. |
Vous indiquez les valeurs de ces attributs dans le fichier plugin.xml pour définir le test. Ces attributs sont également accessibles par programme, à l'aide des méthodes WMQTest répertoriées dans le tableau ci-après.
Méthode | Description |
---|---|
getTestID() |
Renvoie l'identificateur du test. |
getTestName() |
Renvoie le nom du test. |
getDescription() |
Renvoie la description du test. |
getTestSet() |
Renvoie le descripteur de l'objet ensemble de tests créé comme parent du test. |
getFurtherInfoPath() |
Renvoie l'emplacement du document XHTML ou HTML qui contient un complément d'information sur le test. |
Création du test
Le moteur IBM MQ Explorer Tests instancie l'objet de test à l'aide du constructeur fourni WMQTest()
. Il n'est pas nécessaire de sous-classer ce constructeur.
Structure du test
La méthode WMQTest
runTest
définit le corps du test et est appelée pour démarrer un test en cours d'exécution.
La fin de la méthode runTest
n'implique pas la fin du test ; vous devez spécifier explicitement la fin du test à l'aide de la méthode testComplete
. Vous pouvez mettre en oeuvre les tests pour qu'ils extraient les données objet en mode asynchrone.
La méthode runTest
soumet une demande pour obtenir des données sur les objets et le test s'exécute à partir de la méthode d'écoute qui reçoit la réponse. Cela permet au test d'attendre les données sans que vous ayez à implémenter l'unité d'exécution en attente ; ceci est illustré dans l' exemple 3.
Si une attente manuelle (mise en veille) est nécessaire dans le cadre d'un test, vous pouvez utiliser le moniteur d'objet pour l'objet de test pour utiliser les méthodes Java wait
et notify
. Le traitement en unités d'exécution du moteur de test est mis en oeuvre sans les moniteurs des objets test individuels.
Exécution du test
Le moteur IBM MQ Explorer Tests appelle runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)
pour démarrer le test en cours d'exécution. Le corps principal de votre test doit être présent.
- WMQTestEngine
- Le paramètre WMQTestEngine fournit un descripteur au moteur de test qui exécute le test.
Cette option permet aux tests de renvoyer les résultats lorsqu'un test est en cours à l'aide de la méthode
returnResult(WMQTestResult[], WMQTest)
du moteur de test.Le premier paramètre de cette méthode (
WMQTestResult[]
) contient les résultats à renvoyer et le second paramètre (WMQTest
) doit être'this
', de sorte que le moteur de test sache d'où proviennent les résultats. L'utilisation du paramètre WMQTestEngine pour renvoyer des résultats intermédiaires est facultative. Sinon, les résultats de test peuvent être renvoyés lors de l'exécution du test (voir Exécution du test). - IProgressMonitor
- Le paramètre IProgressMonitor fournit un descripteur au moniteur de rétroactions de l'interface graphique utilisé pour l'exécution de test en cours. Ceci permet au test de fournir un retour d'informations de type texte sur la tâche et les sous-tâches actives ainsi qu'une barre de progression de l'exécution en cours.
Le descripteur du moniteur de progression est mis en cache par l'implémentation par défaut de
runTest
. Par conséquent, si cela a été utilisé, un descripteur du moniteur de progression est également accessible à l'aide de la méthode WMQTestgetGUIMonitor()
.Le moniteur de progression (Progress Monitor) est une ressource Eclipse de base. Consultez la documentation de l'APIEclipse sur le Web pour obtenir des conseils supplémentaires sur son utilisation.
- contextObjects
- Le paramètre contextObjects fournit un tableau MQExtObject. Ce paramètre indique le contexte du test à exécuter : les cases à cocher appropriées sont donc présélectionnées lorsque l'utilisateur ouvre la boîte de dialogue Exécution des tests.
- treeNode
- Le paramètre treeNode enregistre le dossier ou l'objet dans la vue Navigator a été cliqué pour exécuter les tests par défaut ou pour ouvrir la boîte de dialogue Exécuter les tests.
Préférences d'utilisateur
Les tests doivent respecter les préférences utilisateur indiquées dans la boîte de dialogue des préférences Eclipse. Utilisez les méthodes suivantes pour accéder aux préférences :
PreferenceStoreManager.getIncludeHiddenQmgrsPreference()
qui renvoietrue
si vous incluez des gestionnaires de files d'attente qui ont été masqués dans IBM MQ Explorer dans le test, oufalse
s'ils doivent être exclus.PreferenceStoreManager.getIncludeSysObjsPreference()
qui renvoietrue
si les objets système (objets dont le nom commence par SYSTEM.) Doivent être inclus dans le test oufalse
s'ils doivent être exclus.
Achèvement du test
Effectuez un test en appelant testComplete(WMQTestResult[])
, en lui transmettant un tableau d'objets de résultat de test. Pour plus d'informations sur les objets de résultat de test, voir Création d'un résultat de test .
Vous pouvez renvoyer des résultats à la fin de l'exécution à l'aide de cette méthode en plus ou comme alternative au renvoi de résultats de test lors d'une exécution de test (comme expliqué dans Exécution du test). Cependant, les résultats renvoyés deux fois s'affichent deux fois.
Même si votre test utilise la méthode WMQTestEngine
returnResult
pour renvoyer tous ses résultats, il doit toujours appeler testComplete
à la fin. Cette méthode est nécessaire pour terminer le traitement du test. Vous pouvez fournir un tableau vide d'objets WMQTestResult
dans la méthode testComplete
s'il n'y a pas de nouveaux résultats à renvoyer.
Pour plus d'informations, voir Structure de test.
Création d'un résultat de test
Les résultats de test sont implémenté en tant qu'objets WMQTestResult
. Créez des résultats à l'aide de :
WMQTestResult(gravité int, description de chaîne, chaîne qmgrname, chaîne objectType)
où :
severity
est un entier identifiant la gravité du problème. Utilisez l'un des niveaux de gravité suivants:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
ouIMarker.SEVERITY_INFO
description
est la chaîne expliquant le problème détecté par le test, à afficher dans la vue Erreurs.qmgrname
est le nom du gestionnaire de files d'attente où le problème a été détecté.objectType
est une chaîne donnant la classe d'objet où le problème peut être trouvé, par exemple, "Files d'attente" ou "Canaux".
Pour plus d'informations sur les actions à effectuer avec l'objet de résultat de test une fois qu'il a été créé, voir Exécution du test.
Traitement de l'annulation d'un test
Vous pouvez annuler le test en cours d'exécution. Utilisez la méthode isCancelled()
pour vérifier si un test doit s'arrêter.
Un bon test doit contrôler régulièrement les demandes d'annulation pour éviter tout retard inutile à l'utilisateur.
Si vous tentez d'annuler un test mais que celui-ci ne répond pas pendant une période prolongée, le moteur de test force l'arrêt du test par l'arrêt de l'unité qui l'exécute. Néanmoins, il est préférable que le test réponde dans le délai prévu, pour permettre le nettoyage des ressources utilisées et le renvoi des résultats générés.
Documentation sur le test
Les tests peuvent être dotés d'une documentation supplémentaire qui explique les résultats renvoyés et fournit de l'aide sur les actions correctives.
La documentation doit être mise à disposition au format HTML et son emplacement identifié dans le fichier plugin.xml pour le plug-in qui fournit le test. Pour plus de détails sur la définition de tests en XML, voir Création d'un nouveau test.
L'emplacement du fichier HTML de documentation peut être :
- interne - stocké dans le projet enfichable qui fournit le test ; l'emplacement doit être défini dans le fichier XML par rapport au fichier plugin.xml. Par exemple, doc/TestDoc.html
- externe - stocké sur un serveur Web, permettant de tenir à jour la documentation indépendamment de la maintenance du test ; cet emplacement doit être défini sous la forme d'une adresse URL complète, commençant par 'http://'.