Interfaccia WMQTest
I test scritti per IBM® MQ Explorer devono appartenere a una classe Java che estende la classe WMQTest fornita. Questo argomento descrive l'interfaccia e i metodi forniti.
- attributi di test - attributi per il tuo oggetto di test
- Creazione del test - il costruttore per gli oggetti di prova
- Struttura di test - inizio e fine della prova
- Esecuzione del test - il corpo principale per i test
- Preferenze utente - accedendo alle preferenze
- Completamento del test - contrassegnare un test come completo
- Creazione di un risultato di test - creare risultati di test
- Affrontare l'annullamento - cosa succede se l'utente vuole annullare un test
- Documentazione di test - fornendo maggiori informazioni sulla prova
Attributi della verifica
Definire una verifica nel file manifest plug-in (plugin.xml) utilizzando una raccolta di attributi. Gli attributi per una verifica sono elencati nella seguente tabella.
Attributo | Descrizione |
---|---|
id | Una stringa che fornisce un identificativo univoco per la verifica. |
nome | Un nome descrittivo per la verifica. |
classe | Il nome della classe Java che contiene il codice sorgente della verifica. |
testset | Una stringa che definisce il gruppo in cui visualizzare il test; ad esempio,wmq, che visualizza il test nella categoria Test del gestore code . |
testsubset | Una stringa che definisce il sottogruppo in cui visualizzare il test; ad esempio,queues, che visualizza il test nella categoria Code . |
Descrizione | Una breve descrizione che descrive ciò che fa la verifica. |
furtherinfo | L'ubicazione di un documento HTML o XHTML che contiene ulteriori informazioni sulla verifica. Questo documento viene visualizzato in IBM MQ Explorer quando si fa doppio clic sul test nella finestra di dialogo Esegui test o un risultato di test nella vista Risultati del test. |
Per definire la verifica, specificare i valori di questi attributi nel file plugin.xml. È possibile accedere a questi attributi anche a livello di codice utilizzando i metodi WMQTest elencati nella seguente tabella.
Metodo | Descrizione |
---|---|
getTestID() |
Restituisce l'ID della verifica. |
getTestName() |
Restituisce il nome della verifica. |
getDescription() |
Restituisce la descrizione della verifica. |
getTestSet() |
Restituisce un handle per l'oggetto serie di verifiche creato per essere un parent per la verifica. |
getFurtherInfoPath() |
Restituisce l'ubicazione del documento XHTML o HTML che contiene ulteriori informazioni sulla verifica. |
Creazione della verifica
Il motore Tests di IBM MQ Explorer instasce l'oggetto di prova utilizzando il costruttore fornito WMQTest()
. Non occorre creare
una sottoclasse di questo constructor.
Struttura della verifica
Il metodo WMQTest
runTest
definisce il corpo della verifica e viene chiamato
per avviare l'esecuzione di una verifica.
La fine del metodo runTest
non implica la fine della verifica; per specificare la fine della verifica, occorre utilizzare il metodo testComplete
. È possibile implementare verifiche in modo che richiamino i dati degli oggetti in maniera asincrona.
Il metodo runTest
inoltra una richiesta per ottenere dati sugli oggetti e la verifica viene eseguita dal metodo del listener che riceve la risposta. Questo consente al test di attendere i dati senza bisogno di implementare il thread in attesa; questo è dimostrato in Esempio 3.
Se come parte della verifica è richiesta un'attesa manuale, è
possibile utilizzare il monitor degli oggetti per l'oggetto verifica, per utilizzare i metodi Java wait
e notify
. Il threading del motore delle verifiche viene implementato senza utilizzare i monitor di oggetti di singoli oggetti verifica.
Esecuzione della verifica
Il motore Testi IBM MQ Explorer richiama runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)
per avviare il test in esecuzione. Il corpo principale della verifica deve trovarsi qui.
- WMQTestEngine
- Il parametro WMQTestEngine fornisce un handle per il motore di verifiche che sta eseguendo
la verifica.
Questo parametro viene fornito per consentire alle verifiche di restituire risultati mentre è in corso una verifica, utilizzando il metodo
returnResult(WMQTestResult[], WMQTest)
del motore delle verifiche.Il primo parametro di questo metodo (
WMQTestResult[]
) contiene i risultati da restituire e il secondo parametro (WMQTest
) deve essere 'this
', in modo che il motore di verifica conosca la provenienza dei risultati. Utilizzando il parametro WMQTestEngine per restituire risultati intermedi è facoltativo - in alternativa, i risultati del test possono essere restituiti sul completamento del test (vedere Completare il test). - IProgressMonitor
- Il parametro IProgressMonitor fornisce un handle al
monitor di feedback della GUI utilizzato per l'esecuzione della verifica corrente. Ciò consente
alla verifica di fornire un feedback testuale sull'attività e sulle sottoattività attualmente in esecuzione e una barra di stato che indica le fasi di completamento.
L'handle del Controllo esecuzione viene memorizzato nella cache dall'implementazione predefinita di
runTest
, perciò se è stato utilizzato, è possibile accedere a un handle del Controllo esecuzione utilizzando anche il metodo WMQTestgetGUIMonitor()
.Controllo esecuzione è una risorsa Eclipse di base. Consultare la documentazione dell'API Eclipse sul web per ulteriori consigli sul suo utilizzo.
- contextObjects
- Il parametro contextObjects fornisce un array MQExtObject. Il parametro fornisce il contesto della verifica da eseguire in modo che le caselle di controllo rilevati siano pre-selezionate quando l'utente apre la finestra Esegui verifiche.
- treeNode
- Il parametro treeNode registra la cartella oppure l'oggetto nella vista Navigator che è stato selezionato per eseguire le verifiche predefinite oppure per aprire la finestra Esegui verifiche.
Preferenze utente
Le verifiche devono essere conformi alle preferenze utente fornite utilizzando la finestra Preferenze Eclipse. Per accedere alle preferenze, utilizzare i metodi seguenti:
PreferenceStoreManager.getIncludeHiddenQmgrsPreference()
che restituiscetrue
se si includono i gestori di coda che sono stati nascosti in IBM MQ Explorer nel test ofalse
se devono essere esclusi.PreferenceStoreManager.getIncludeSysObjsPreference()
che restituiscetrue
se gli oggetti di sistema (oggetti che hanno nomi che iniziano con SYSTEM.) devono essere inclusi nella verifica, oppurefalse
se devono esserne esclusi.
Completamento della verifica
Completare una verifica richiamando
testComplete(WMQTestResult[])
,
trasmettendogli un array di oggetti risultato di verifica. Consultare Creazione di un risultato di test per la guida sugli oggetti di risultato del test.
È possibile restituire risultati a completamento utilizzando questo metodo oltre a, o come alternativa a, restituire risultati di test durante un test eseguito (come spiegato in Esecuzione del test). Tuttavia, qualsiasi risultato che viene restituito due volte viene visualizzato due volte.
Anche se la verifica utilizza il metodo WMQTestEngine
returnResult
per restituire i propri risultati, deve comunque richiamare testComplete
al suo completamento. Questa operazione è necessaria per completare l'elaborazione della verifica. È possibile fornire
un array vuoto di oggetti WMQTestResult
nel
metodo testComplete
qualora non vi siano nuovi
risultati da restituire.
Per ulteriori informazioni, consultare Struttura di test.
Creazione di un risultato di verifica
I risultati delle verifiche vengono implementati come oggetti WMQTestResult
. Creare i risultati utilizzando:
WMQTestResult(severità int, descrizione stringa, String qmgrname, String objectType)
dove:
severity
è un numero intero che identifica la gravità del problema. Usare uno dei seguenti livelli di gravità:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
oIMarker.SEVERITY_INFO
description
è la stringa che illustra il problema trovato dalla verifica, da visualizzare nella vista Problemi.qmgrname
è il nome del gestore code in cui è stato rilevato il problema.objectType
è la stringa che fornisce la classe dell'oggetto in cui è possibile trovare il problema, ad esempio "Code" o "Canali".
Per ulteriori informazioni su cosa fare con l'oggetto risultato del test quando è stato creato, consultare Completare il test.
Annullamento della verifica
È possibile annullare una verifica
mentre questa è in esecuzione. Usare il metodo isCancelled()
per
accertarsi se è necessario arrestare una verifica.
Una buona verifica deve rilevare regolarmente se è stata annullata o meno, al fine di evitare ritardi inutili per l'utente.
Se l'utente tenta di annullare una verifica, ma l'interruzione non ha luogo per un periodo di tempo esteso, il motore delle verifiche fa sì che la verifica si interrompa attraverso l'interruzione del thread che sta eseguendo la verifica. Tuttavia, non ci si dovrebbe affidare a questo metodo, poiché sarebbe preferibile che la verifica risponda in tempo, in modo da liberare tutte le risorse utilizzate e che restituisca tutti i risultati fino generati fino all'interruzione.
Documentazione della verifica
È possibile fornire della documentazione aggiuntiva per spiegare i risultati restituiti dalle verifiche, nonché istruzioni su cosa occorre fare per risolvere il problema.
La documentazione deve essere fornita in HTML, mentre la sua ubicazione deve essere specificata nel file plugin.xml del plug-in che fornisce la verifica. Per i dettagli sulla definizione dei test in XML, consultare Creazione di un nuovo test.
L'ubicazione del file HTML di documentazione può essere:
- interna - si trova nel progetto di plug-in che fornisce la verifica. L'ubicazione deve essere definita nell'XML relativo al file plugin.xml. Ad esempio, doc/TestDoc.html
- esterna - si trova su un server Web; in tal modo, è possibile separare la documentazione dalla verifica. L'ubicazione deve essere definita come URL completo, iniziando con 'http://'.