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 -atributy pro váš testovací objekt
- Vytvoření testu -konstruktor pro testovací objekty
- Struktura testu -začátek a konec testu.
- Spuštění testu -hlavní tělo pro testy
- Uživatelské předvolby -přístup k předvolbám
- Dokončení testu -označení testu jako dokončené
- Vytvoření výsledku testu -vytvoření výsledků testu
- Zrušit zrušení -co se stane, pokud chce uživatel zrušit test
- Testovací dokumentace -poskytnutí dalších informací o testu
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 WMQTestgetGUIMonitor()
.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, nebofalse
, 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), nebofalse
, 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
, neboIMarker.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://'.