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 de 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 |
---|---|
ID | 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, elle est appelée pour lancer une exécution de test.
La fin de la méthode runTest
ne signifie pas la fin du test, que vous devez indiquer explicitement par 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 d'extraction de données relatives aux objets et le test s'exécute à partir de la méthode Listener (écouteur) 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 (mode veille) est requise lors du test, le moniteur des objets
test permet d'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 d'accès au moteur de test qui exécute le test.
Ainsi, des résultats peuvent être renvoyés alors qu'un test est en cours d'exécution, à 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 ; le second paramètre (WMQTest
) doit être 'this
' pour que le moteur de test puisse identifier la provenance des 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 d'accès au moniteur de retour d'informations d'interface graphique, utilisé pour le passage d'essai 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 d'accès au moniteur de progression (Progress Monitor) est mis en mémoire cache par l'implémentation par défaut de la méthode
runTest
. Si cette méthode a été utilisée, un descripteur d'accès au moniteur de progression peut également être obtenu par 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 sur lequel l'utilisateur a cliqué dans la vue Navigateur pour exécuter les tests par défaut ou pour ouvrir la boîte de dialogue Exécution des 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
, dans le cas contraire.
Achèvement du test
Un test est terminé par l'appel de testComplete(WMQTestResult[])
, avec la transmission d'un tableau d'objets 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 les résultats, il doit appeler la méthode testComplete
lors de son achèvement. Cette méthode est nécessaire pour terminer le traitement du test. Un tableau vide d'objets WMQTestResult
peut être fourni dans la méthode testComplete
si aucun nouveau résultat ne doit être renvoyé.
Pour plus d'informations, voir Structure de test.
Création d'un résultat de test
Les résultats des tests sont mis en oeuvre 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 entier identifiant la gravité de l'incident. Utilisez l'un des niveaux de gravité suivants :IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
ouIMarker.SEVERITY_INFO
description
correspond à la chaîne décrivant l'incident identifié par le test, à afficher dans la vue des incidents.qmgrname
est le nom du gestionnaire de files d'attente où l'incident a été détecté.objectType
est la chaîne indiquant la classe de l'objet dans lequel l'incident peut être identifié, par exemple, "Queues" ou "Channels".
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. La méthode isCancelled()
permet de 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://'.