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
Test definujete 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. |
name | 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
Funkce runTest
metody WMQTest
definuje hlavní část testu a je volána za účelem spuštění testu.
Ukončení metody runTest
neznamená konec testu; ten je třeba výslovně zadat pomocí 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 je spuštěn z metody modulu listener, která přijme odpověď. To umožňuje testu čekat na data, aniž byste museli implementovat čekající podproces; to je předvedeno v Ukázka 3.
Je-li třeba použít ruční čekání (prodlevu) jako součást testu, můžete pomocí monitoru objektů v testovacím objektu použít metody jazyka 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 manipulátor stroji testu, který spouští daný test.
Je poskytován za účelem vrácení výsledků testu v jejich průběhu pomocí metody stroje testů
returnResult(WMQTestResult[], WMQTest)
.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 manipulátor monitoru zpětné vazby GUI používaného v aktuálně spuštěném 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.
Ve výchozí implementaci metody
runTest
je manipulátor monitoru průběhu ukládán do mezipaměti, takže je v případě použití parametru umožněn přístup manipulátoru monitoru průběhu 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
- Parametr 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á, která složka nebo objekt v pohledu Navigátor byla klepnutím vybrána 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), zahrnuty v testu, nebo hodnotufalse
, pokud musí být vyloučeny.
Dokončení testu
Test je dokončen voláním příkazu testComplete(WMQTestResult[])
, kterému je předáno pole objektů s výsledky testů. 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.
I když používá daný test funkci returnResult
metody WMQTestEngine
k vrácení všech příslušných výsledků, musí při dokončení volat metodu testComplete
. Je to nutný krok k dokončení zpracování testů. V metodě testComplete
lze zadat prázdné pole objektů WMQTestResult
, pokud nelze vrátit žádné výsledky.
Další informace najdete v tématu Struktura testu.
Vytvoření výsledku testu
Výsledky testu 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 následujících úrovní závažnosti:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
neboIMarker.SEVERITY_INFO
.description
je řetězec objasňující problém nalezený testem, který se zobrazí v pohledu Problémy.qmgrname
je název správce front, ve kterém byl nalezen problém.objectType
je řetězec udávající třídu objektu, kde se problém vyskytuje, 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. Chcete-li ověřit,
zda musí být test zastaven, použijte metodu isCancelled()
.
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://'.