Interfaccia WMQTest
Le verifiche scritte 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 l'oggetto di test
- Creazione della verifica - il costruttore per gli oggetti di verifica
- Struttura del test - l'inizio e la fine del test
- Esecuzione del test - il corpo principale per i test
- Preferenze dell'utente - accesso alle preferenze
- Completamento del test - contrassegnare un test come completo
- Creazione di un risultato di test - crea risultati di test
- Gestione dell'annullamento - cosa accade se l'utente desidera annullare un test
- Documentazione di verifica - fornisce ulteriori informazioni sul test
Attributi della verifica
Definire una verifica nel file manifest del plugin (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 la verifica nella categoria Verifiche 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 sulla verifica nella finestra di dialogo Esegui verifiche o sul risultato di una verifica nella vista Risultati della verifica. |
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 di verifica IBM MQ Explorer crea un'istanza dell'oggetto di verifica utilizzando il costruttore WMQTest()
fornito. Non occorre creare
una sottoclasse di questo constructor.
Struttura della verifica
Il metodo WMQTest
runTest
definisce il corpo della verifica ed è richiamato ad avviare l'esecuzione di una verifica.
La fine del metodo runTest
non implica la fine della verifica; è necessario specificare esplicitamente la fine della verifica utilizzando 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 i dati sugli oggetti e la verifica viene eseguita dal metodo del listener che riceve la risposta. Ciò consente al test di attendere i dati senza che sia necessario implementare il thread in attesa; ciò è dimostrato nell' Esempio 3.
Se è necessaria un'attesa manuale (sleep) come parte di una verifica, è possibile utilizzare il monitor di oggetti per l'oggetto di 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 di verifica IBM MQ Explorer richiama runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)
per avviare l'esecuzione della verifica. Il corpo principale della verifica deve trovarsi qui.
- WMQTestEngine
- Il parametro WMQTestEngine fornisce un handle al motore di verifica che sta eseguendo la verifica.
Questo viene fornito per consentire alle verifiche di restituire risultati mentre è in corso una verifica, utilizzando il metodo
returnResult(WMQTestResult[], WMQTest)
del motore di verifica.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. L'utilizzo del parametro WMQTestEngine per restituire risultati temporanei è facoltativo; in alternativa, i risultati delle verifiche possono essere restituiti al termine della verifica (fare riferimento a Completamento della verifica). - IProgressMonitor
- Il parametro IProgressMonitor fornisce un handle al monitor di feedback 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 per il 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 metodogetGUIMonitor()
.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 quale cartella o oggetto nella vista Navigator è stato selezionato per eseguire le verifiche predefinite o per aprire la finestra di dialogo 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 nella verifica si includono i gestori code che sono stati nascosti in IBM MQ Explorer 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, ofalse
se devono essere esclusi.
Completamento della verifica
Completare una verifica richiamando testComplete(WMQTestResult[])
, passandogli un array di oggetti risultato della verifica. Consultare Creazione di un risultato di verifica per istruzioni sugli oggetti dei risultati di verifica.
È possibile restituire i risultati al completamento utilizzando questo metodo in aggiunta o come alternativa alla restituzione dei risultati di un test durante l'esecuzione di un test (come descritto 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 tutti i risultati, deve comunque richiamare testComplete
a completamento. Questa operazione è necessaria per completare l'elaborazione della verifica. È possibile fornire un array di oggetti WMQTestResult
vuoto nel metodo testComplete
se non ci sono nuovi risultati da restituire.
Per ulteriori informazioni, consultare Struttura test.
Creazione di un risultato di verifica
I risultati della verifica sono 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. Utilizzare uno dei seguenti livelli di gravità:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
oIMarker.SEVERITY_INFO
description
è la stringa che spiega il problema rilevato 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 sulle operazioni da eseguire con l'oggetto risultato del test quando è stato creato, consultare Completamento del test.
Annullamento della verifica
È possibile annullare una verifica
mentre questa è in esecuzione. Utilizzare il metodo isCancelled()
per controllare se una verifica deve essere arrestata.
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://'.