La interfaz WMQTest
Las pruebas escritas para IBM® MQ Explorer deben pertenecer a una clase Java™ que amplíe la clase WMQTest proporcionada. En este tema se explica la interfaz y el funcionamiento de los métodos proporcionados.
- Atributos de la prueba - atributos para su objeto de prueba
- Crear la prueba - el constructor para los objetos de prueba
- Estructura de la prueba - el comienzo y el final de la prueba
- Ejecutar la prueba - el cuerpo principal de las pruebas
- Preferencias de usuario - acceder a las preferencias
- Completar la prueba - marcar una prueba como completa
- Crear un resultado de prueba - crear los resultados de la prueba
- Cómo manejar una cancelación - qué sucede si el usuario desea cancelar una prueba
- Documentación de la prueba - proporcionar más información sobre la prueba
Atributos de la prueba
Defina una prueba en el archivo de manifiesto de plug-in (plugin.xml) utilizando un conjunto de atributos. En la tabla siguiente se listan los atributos para una prueba.
Atributo | Descripción |
---|---|
id | Una serie que proporciona un identificador exclusivo para la prueba. |
name | Un nombre significativo para la prueba. |
class | El nombre de la clase Java que contiene el código fuente de la prueba. |
testset | Una serie que define el grupo en el que visualizar la prueba; por ejemplo, wmq, que visualiza la prueba en la categoría Pruebas del gestor de colas. |
testsubset | Una serie que define el subgrupo en el que visualizar la prueba; por ejemplo, colas, que visualiza la prueba en la categoría Colas. |
description | Una descripción breve que describe lo que hace la prueba. |
furtherinfo | La ubicación de un documento HTML o XHTML que contiene más información sobre la prueba. Este documento se visualiza en IBM MQ Explorer cuando se efectúa una doble pulsación en la prueba del diálogo Ejecutar pruebas o en un resultado de una prueba en la vista Resultados de la prueba. |
Especifique los valores de estos atributos en el archivo plugin.xml para definir la prueba. También se puede acceder a estos atributos mediante programación, utilizando los métodos de WMQTest que se listan en la tabla siguiente.
Método | Descripción |
---|---|
getTestID() |
Devuelve el ID de prueba. |
getTestName() |
Devuelve el nombre de la prueba. |
getDescription() |
Devuelve la descripción de la prueba. |
getTestSet() |
Devuelve un manejador para el objeto de conjunto de pruebas que se ha creado para ser padre de la prueba. |
getFurtherInfoPath() |
Devuelve la ubicación del documento XHTML o HTML que contiene más información sobre la prueba. |
Crear la prueba
El motor de Pruebas de IBM MQ Explorer crea una instancia del objeto utilizando el constructor proporcionado WMQTest()
. No
hace falta crear una subclase de este constructor.
Estructura de la prueba
El método WMQTest
runTest
define el cuerpo de la prueba y se invoca para iniciar la ejecución de una prueba.
El
final del método runTest
no implica
el final de la prueba; debe especificar explícitamente el final de la
prueba utilizando el método testComplete
. Puede implementar pruebas para que obtengan los datos de objetos de forma
asíncrona.
El método runTest
somete una petición para obtener datos sobre objetos y la prueba se
ejecuta desde el método de escucha que recibe la respuesta. Esto
permite a la prueba esperar los datos sin que sea necesario implementar
la espera de hebras; esto se demuestra en el
Ejemplo 3.
Si se necesita una espera manual (sleep) en una prueba, se puede utilizar el supervisor de objetos para que el objeto de prueba utilice los métodos Java wait
y notify
. El proceso de hebras del motor de pruebas se implementa sin utilizar los
supervisores de objetos de objetos de prueba individuales.
Ejecutar la prueba
El motor de Pruebas de IBM MQ Explorer llama a runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)
para iniciar la ejecución de la prueba. El cuerpo
principal de la prueba debe estar aquí.
- WMQTestEngine
- El parámetro WMQTestEngine
proporciona un manejador al motor de pruebas que está ejecutando la
prueba.
Este parámetro se proporciona para permitir a las pruebas devolver resultados mientras se está realizando una prueba utilizando el método
returnResult(WMQTestResult[], WMQTest)
del motor de pruebas.El primer parámetro de este método (
WMQTestResult[]
) contiene los resultados que se han de devolver, y el segundo parámetro (WMQTest
) debe ser 'this
', para que el motor de pruebas sepa de dónde proceden los resultados. El uso del parámetro WMQTestEngine para devolver resultados provisionales es opcional, de forma alternativa, los resultados de prueba se pueden devolver al finalizar la prueba (consulte Completar la prueba). - IProgressMonitor
- El parámetro IProgressMonitor
proporciona un manejador para el supervisor de información de la GUI que se
utiliza para la prueba actual. Esto permite a la prueba proporcionar
información textual sobre la tarea y subtareas que están actualmente en
ejecución, así como una barra de progreso para el proceso de conclusión actual.
El manejador para el Supervisor de progreso lo almacena en memoria caché la implementación predeterminada de
runTest
, de modo que si ésta se ha utilizado, también se puede acceder a un manejador para el Supervisor de progreso utilizando el método de WMQTestgetGUIMonitor()
.El Supervisor de progreso es un recurso base de Eclipse. Consulte la Documentación de las API de Eclipse en la web para obtener más información sobre cómo utilizarlo.
- contextObjects
- El parámetro contextObjects proporciona una matriz MQExtObject. El parámetro proporciona el contexto de la prueba que se va a ejecutar para que los recuadros de selección aplicables estén preseleccionados cuando el usuario abra el diálogo Ejecutar pruebas.
- treeNode
- El parámetro treeNode registra qué carpeta u objeto de la vista de Navegador se ha seleccionado para ejecutar las pruebas predeterminadas o para abrir el diálogo Ejecutar pruebas.
Preferencias de usuario
Las pruebas deben ajustarse a las preferencias de usuario que se han proporcionado en el diálogo Preferencias de Eclipse. Utilice los métodos siguientes para acceder a las preferencias:
PreferenceStoreManager.getIncludeHiddenQmgrsPreference()
que devuelvetrue
si se incluyen en la prueba los gestores de colas que se han ocultado en la prueba IBM MQ Explorer ofalse
si éstos deben excluirse.PreferenceStoreManager.getIncludeSysObjsPreference()
que devuelvetrue
si deben incluirse objetos del sistema (objetos que tienen nombres que empiezan por SYSTEM.) en la prueba, ofalse
si éstos deben excluirse.
Completar la prueba
Para
completar una prueba, llame a
testComplete(WMQTestResult[])
y
pásele una matriz de objetos de resultados de la prueba. Consulte el apartado Crear un resultado de la prueba si desea ayuda sobre los objetos de resultados de prueba.
Puede devolver resultados al finalizar utilizando este método además de, o como alternativa a, devolver los resultados de prueba durante una ejecución de prueba (tal como se explica en Ejecución de la prueba). No obstante, los resultados que se devuelven dos veces se visualizan dos veces.
Aunque su prueba utilice el método de WMQTestEngine
returnResult
para devolver todos los resultados, debe llamar igualmente a testComplete
cuando finalice. Esto
es necesario para completar el proceso de la prueba. Puede proporcionar
una matriz vacía de objetos WMQTestResult
en el método testComplete
si no hay
resultados nuevos que devolver.
Para obtener más información, consulte Estructura de la prueba.
Crear un resultado de la prueba
Los
resultados de la prueba se implementan como objetos WMQTestResult
.
Para crear resultados, utilice:
WMQTestResult(int severity, String description, String qmgrname, String objectType)
donde:
severity
es un entero que identifica la gravedad del problema. Utilice uno de los siguientes niveles de gravedad:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
oIMarker.SEVERITY_INFO
description
es la serie que explica el problema detectado por la prueba, que se visualizará en la vista Problemas.qmgrname
es el nombre del gestor de colas en el que se ha encontrado el problema.objectType
es la serie que proporciona la clase de objeto en la que puede encontrarse el problema, por ejemplo, "Colas" o "Canales".
Si desea más información sobre qué hacer con el objeto del resultado de la prueba cuando se ha creado, consulte el apartado Completar la prueba.
Cómo manejar una cancelación
Puede
cancelar la prueba mientras se está ejecutando. Utilice el método
isCancelled()
para comprobar si una
prueba debe detenerse.
Una buena prueba debe comprobar regularmente si ha sido cancelada o no para evitar entretener innecesariamente a un usuario.
Si intenta cancelar una prueba pero la prueba no responde durante un largo periodo de tiempo, el motor de pruebas fuerza la detención de la prueba, finalizando la hebra que está ejecutando la prueba. No confíe en este método, es preferible que una prueba responda a tiempo, lo que permite a la prueba limpiar todos los recursos que ha utilizado y devolver todos los resultados que se han generado hasta el momento.
Documentación de la prueba
Puede proporcionar documentación adicional para explicar los resultados devueltos por las pruebas y ofrecer ayuda sobre las acciones que se han de realizar para resolver el problema.
Proporcione la documentación en HTML, e identifique la ubicación en el archivo plugin.xml del plug-in que proporciona la prueba. Para ver detalles de la definición de pruebas en XML, consulte el apartado Crear una nueva prueba.
La ubicación del archivo HTML de documentación puede ser:
- interna - Se almacena en el proyecto de plug-in que proporciona la prueba. La ubicación debe definirse en el XML en relación al archivo plugin.xml. Por ejemplo, doc/TestDoc.html
- externa - Se almacena en un servidor web, lo que permite el mantenimiento de la documentación por separado de la prueba. La ubicación debe definirse como un URL completo que comience con 'http://'.