Rozhraní WMQTest

Testy napsané pro IBM® MQ Explorer musí patřit do třídy Java , která rozšiřuje poskytnutou třídu WMQTest. Toto téma objasňuje rozhraní a činnost poskytnutých metod.

Atributy testu

Nadefinujte test v souboru typu manifest modulu plug-in (plugin.xml) pomocí kolekce atributů. Atributy testu jsou uvedeny v následující tabulce.

Atribut Popis
ID Řetězec, který udává jedinečný identifikátor testu.
Název Smysluplný název testu.
class Název třídy Java, která obsahuje zdrojový kód testu.
testset Řetězec, který definuje skupinu, ve které se má zobrazit test; například,wmq, který zobrazuje test v kategorii Testy správce front .
testsubset Řetězec, který definuje podskupinu, v níž se má zobrazit test; například,queues, který zobrazuje test v kategorii Fronty .
description Krátký popis obsahu činnosti testu.
furtherinfo Umístění dokumentu ve formátu HTML nebo XHTML, který obsahuje další informace o testu. Tento dokument se zobrazí v produktu IBM MQ Explorer , když dvakrát klepnete na test v dialogovém okně Spustit testy nebo na výsledek testu v pohledu Výsledky testů.

Zadáním hodnot těchto atributů do souboru plugin.xml definujete daný test. K těmto atributům lze také přistupovat programově pomocí metod WMQTest uvedených v následující tabulce.

Metoda Popis
getTestID() Vrátí ID testu.
getTestName() Vrátí název testu.
getDescription() Vrátí popis testu.
getTestSet() Vrátí manipulátor objektu sady testů vytvořený jako nadřízený prvek testu.
getFurtherInfoPath() Vrátí umístění dokumentu ve formátu XHTML nebo HTML, který obsahuje další informace o testu.

Vytvoření testu

Testovací stroj produktu IBM MQ Explorer vytvoří instance testovacího objektu pomocí poskytovaného WMQTest() konstruktoru. Není třeba vytvářet podtřídu tohoto konstruktoru.

Struktura testu

Metoda WMQTest runTest definuje tělo testu a zavolá se ke spuštění testovacího běhu.

Konec metody runTest neznamená konec testu. Musíte explicitně uvést konec testu s použitím metody testComplete. Testy můžete implementovat tak, že budou získávat data objektů asynchronně.

Metoda runTest odešle požadavek na získání dat o objektech a test se spustí z metody modulu listener, která obdrží odpověď. To umožňuje testu čekat na data, aniž byste museli implementovat čekající podproces; to je předvedeno v Ukázka 3.

Potřebujete-li jako součást testu ruční čekání (režim spánku), můžete použít monitor objektů pro testovací objekt a použít metody Java wait a notify. Podprocesy testovacího stroje jsou implementovány bez použití monitorů objektů u jednotlivých testovacích objektů.

Spuštění testu

Testovací stroj produktu IBM MQ Explorer zavolá runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode) ke spuštění testovacího běhu. Zde musí být hlavní část testu.

WMQTestEngine
Parametr WMQTestEngine poskytuje popisovač pro testovací stroj, který spouští test.

Je poskytován k tomu, aby testy mohly vracet výsledky, zatímco test probíhá, s použitím metody returnResult(WMQTestResult[], WMQTest) testovacího stroje.

První parametr této metody (WMQTestResult[]) obsahuje výsledky, které mají být vráceny, a druhý parametr (WMQTest) musí být 'this', aby testovací stroj věděl, odkud výsledky pocházejí. Použití parametru WMQTestEngine k vrácení prozatímních výsledků je volitelné - výsledky testu lze případně vrátit při dokončení testu (viz téma Dokončení testu).

IProgressMonitor
Parametr IProgressMonitor poskytuje popisovač pro monitor zpětné vazby grafického uživatelského rozhraní, který se používá pro aktuální spuštění testu. To umožňuje testu poskytnutí textové zpětné vazby na aktuálně spuštěnou úlohu a dílčí úlohy a indikátoru průběhu aktuálně dokončovaného testu.

Popisovač pro monitor průběhu je uložen do mezipaměti výchozí implementací produktu runTest, takže pokud je tento postup použit, lze k popisovači monitoru průběhu také přistoupit pomocí metody WMQTest getGUIMonitor().

Monitor průběhu je základním prostředkem platformy Eclipse. Další rady k použití této příručky naleznete na webu Eclipse API documentation na webu.

contextObjects
Argument contextObjects poskytuje pole MQExtObject. Tento parametr dodává kontext testu, který má být spuštěn, aby byla předem zaškrtnuta příslušná políčka při otevření dialogového okna Spustit testy uživatelem.
treeNode
Parametr treeNode zaznamenává, na kterou složku nebo objekt bylo klepnuto v pohledu Navigator ke spuštění výchozích testů nebo k otevření dialogového okna Spustit testy.

Předvolby uživatele

Testy musí odpovídat uživatelským předvolbám poskytnutým pomocí dialogového okna Předvolby platformy Eclipse. Pro přístup k předvolbám použijte jednu z následujících metod:

  • Metoda PreferenceStoreManager.getIncludeHiddenQmgrsPreference(), která vrací true, pokud zahrnete správce front, které byly skryty v IBM MQ Explorer v testu, nebo false, pokud musí být vyloučeni.
  • Metoda PreferenceStoreManager.getIncludeSysObjsPreference(), která vrací true, pokud musí být do testu zahrnuty systémové objekty (objekty s názvy začínajícími na SYSTEM), nebo false, pokud musí být vyloučeny.

Dokončení testu

Dokončete test zavoláním testComplete(WMQTestResult[]) a předáním pole objektů výsledku testu. Pokyny k objektům výsledku testu viz téma Vytvoření výsledku testu .

Výsledky můžete vrátit k dokončení pomocí této metody spolu s nebo jako alternativu k vrácení výsledků testu během testovacího běhu (jak je vysvětleno v části Spuštění testu). Všechny výsledky vrácené dvakrát jsou také dvakrát zobrazeny.

Test musí při dokončení zavolat testComplete i tehdy, když používá metodu WMQTestEngine returnResult k vrácení všech svých výsledků. Je to nutný krok k dokončení zpracování testů. Pokud neexistují žádné nové výsledky k vrácení, můžete v metodě testComplete poskytnout prázdné pole objektů WMQTestResult.

Další informace najdete v tématu Struktura testu.

Vytvoření výsledku testu

Výsledky testů jsou implementovány jako objekty WMQTestResult. Výsledky lze vytvořit pomocí příkazu:

WMQTestResult(int severity, String description, String qmgrname, String objectType)

kde:

  • severity je celé číslo identifikující závažnost problému. Použijte jednu z těchto úrovní závažnosti: IMarker.SEVERITY_ERROR, IMarker.SEVERITY_WARNING, nebo IMarker.SEVERITY_INFO
  • description je řetězec vysvětlující problém nalezený testem, který se má zobrazit v pohledu Problémy.
  • qmgrname je název správce front, ve kterém byl nalezen problém.
  • objectType je řetězec poskytující třídu objektu, kde lze nalézt problém, například „Fronty“ nebo „Kanály“.

Další informace o tom, co se má provést s objektem výsledku testu po jeho vytvoření, najdete v tématu Dokončení testu.

Zrušení

Spuštěný test lze během jeho činnosti zrušit. Pomocí metody isCancelled() zkontrolujte, zda je nutné zastavit test.

Dobrý test pravidelně zjišťuje, zda nebyl zrušen, a zabraňuje tak zbytečnému zdržování uživatele.

Pokud se pokusíte zrušit test, ale test nebude delší dobu odpovídat, vynutí testovací jádro zastavení testu ukončením podprocesu, který test spustil. Není však vhodné spoléhat na tuto možnost. Je lepší, když test odpoví včas a umožní vyčištění použitých prostředků a vrácení veškerých dosud vygenerovaných výsledků.

Dokumentace k testům

Testy lze poskytovat s dodatečnou dokumentací, která vysvětluje navrácené výsledky a dává doporučení k vyřešení problému.

Dokumentaci dodávejte ve formátu HTML s určením jejího umístění v souboru plugin.xml, který přísluší k modulu plug-in s testem. Podrobnosti o definování testů v XML naleznete v tématu Vytvoření nového testu.

Možná umístění souboru HTML s dokumentací:

  • Interní - uloženo v projektu modulu plug-in, který poskytuje samotný test. Umístění musí být definováno ve formátu XML vzhledem k samotnému souboru plugin.xml. Příklad: doc/TestDoc.html
  • Externí - uloženo na webovém serveru, čímž je možná údržba dokumentace nezávisle na samotném testu. Umístění je třeba definovat jako úplnou adresu URL, začínající řetězcem 'http://'.