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 - attributs de l'objet test
- Création du test - constructeur des objets test
- Structure du test - début et fin du test
- Exécution du test - corps principal des tests
- Préférences utilisateur - accès aux préférences
- Achèvement du test - marquage d'un test comme terminé
- Création d'un résultat de test - création des résultats de test
- Traitement de l'annulation d'un test - comportement en cas d'annulation d'un test par l'utilisateur
- Documentation sur le test - complément d'information 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. |
name | Nom significatif du test. |
class | Nom de la classe Java contenant le code source du test. |
testset | Chaîne définissant le groupe d'affichage du test (par exemple wmq, qui affiche le test dans la catégorie Tests des gestionnaires de files d'attente). |
testsubset | Chaîne définissant le sous-groupe d'affichage du 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écution des tests ou un résultat de test dans la vue Résultats des tests. |
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 test à l'aide du constructeur WMQTest()
fourni. 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 (programme d'écoute) qui reçoit la réponse. Ceci permet au test d'attendre les données sans délai d'attente pour les unités d'exécution (voir 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. 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, car les résultats peuvent être renvoyés à la fin du test (voir Achèvement 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 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 est une ressource Eclipse de base. Pour plus d'informations sur son utilisation, voir la documentation des API Eclipse sur le Web.
- 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 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 masqués dans IBM MQ Explorer dans le test, oufalse
s'ils doivent être exclus.PreferenceStoreManager.getIncludeSysObjsPreference()
qui renvoietrue
lorsque 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 résultat de test, voir Création d'un résultat de test).
Le renvoi des résultats à la fin du test par cette méthode peut être utilisé en complément ou en remplacement du renvoi des résultats pendant l'exécution du test (voir 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 du 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(int severity, 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
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 l'utilisation de l'objet résultat de test, voir Achèvement 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. Voir Création d'un test pour des informations sur la définition de tests au format XML.
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://'.