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 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 du 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 lorsque vous obtenez 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 l'exécution du test. Le corps principal de votre test doit être présent.

Moteur de test 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 à la fin 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 WMQTest getGUIMonitor().

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.

Objets de contexte
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.
noeud d'arborescence
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 renvoie true si vous incluez dans le test des gestionnaires de files d'attente qui ont été masqués dans IBM MQ Explorer ou false s'ils doivent être exclus.
  • PreferenceStoreManager.getIncludeSysObjsPreference() qui renvoie true si les objets système (objets dont le nom commence par SYSTEM.) doivent être inclus dans le test ou false, 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, String description, String qmgrname, String 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 ou IMarker.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://'.