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 prueba : atributos del objeto de prueba
- Creación de la prueba : el constructor para objetos de prueba
- Estructura de prueba : el principio y el final de la prueba
- Ejecución de la prueba -el cuerpo principal de las pruebas
- Preferencias de usuario -acceso a las preferencias
- Completar la prueba -marcar una prueba como completada
- Creación de un resultado de prueba -crear resultados de prueba
- Cómo manejar la cancelación : qué sucede si el usuario desea cancelar una prueba
- Documentación de prueba : proporciona 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. |
nombre | Un nombre significativo para la prueba. |
clase | 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 muestra 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,queues, que muestra 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 muestra en IBM MQ Explorer cuando efectúa una doble pulsación en la prueba en el diálogo Ejecutar pruebas o en un resultado de 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 de prueba 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 que la prueba espere datos sin necesidad de implementar la espera de hebras; esto se muestra en el Ejemplo 3.
Si se necesita una espera (suspensión) manual como parte de
una prueba, puede utilizar el supervisor de objetos para que el objeto de prueba utilice los métodos de
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 prueba en ejecución. 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.
Esto se proporciona para permitir que las pruebas devuelvan resultados mientras se está realizando una prueba utilizando el método
returnResult(WMQTestResult[], WMQTest)
del motor de prueba.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. La utilización del parámetro WMQTestEngine para devolver resultados provisionales es opcional; de forma alternativa, los resultados de la 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 la API deEclipse en la web para obtener más información sobre cómo utilizarla.
- 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 gestores de colas que se han ocultado en IBM MQ Explorer en la prueba ofalse
, si deben excluirse.PreferenceStoreManager.getIncludeSysObjsPreference()
, que devuelvetrue
si los 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 Creación de un resultado de prueba para obtener ayuda sobre los objetos de resultado de prueba.
Puede devolver resultados al finalizar utilizando este método además de, o como alternativa a, devolver resultados de prueba durante una ejecución de prueba (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 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".
Para obtener más información sobre qué hacer con el objeto de resultado de prueba cuando se ha creado, consulte 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 obtener detalles sobre la definición de pruebas en XML, consulte Creación de una prueba nueva.
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://'.