Interface WMQTest
Os testes gravados para o IBM® MQ Explorer devem pertencer a uma classe do Java™ que estende a classe WMQTest fornecida. Este tópico explica a interface e a operação dos métodos fornecidos.
- Atributos do Teste - atributos do objeto de teste
- Criando o Teste - o construtor dos objetos de teste
- Estrutura do Teste - o início e o final do teste
- Executando o Teste - o corpo principal dos testes
- Preferências do Usuário – acessando as preferências
- Concluindo o Teste - marcando um teste como concluído
- Criando um resultado de teste – criar resultados de testes
- Tratando do Cancelamento - o que acontecerá se o usuário quiser cancelar um teste
- Documentação do Teste - fornecendo mais informações sobre o teste
Atributos do Teste
Defina um teste no arquivo de manifesto de plug-ins (plugin.xml) usando uma coleção de atributos. Os atributos de um teste são listados na tabela a seguir.
Atributo | Descrição |
---|---|
id | Uma cadeia que fornece um identificador exclusivo para o teste. |
name | Um nome significativo para o teste. |
class | O nome da classe Java que contém o código-fonte do teste. |
testset | Uma cadeia que define o grupo no qual exibir o teste, por exemplo, wmq, que exibe o teste na categoria Testes do gerenciador de filas. |
testsubset | Uma cadeia que define o subgrupo no qual exibir o teste, por exemplo, queues, que exibe o teste na categoria Filas. |
description | Uma descrição resumida que descreve o que o teste faz. |
furtherinfo | O local de um documento HTML ou XHTML que contém mais informações sobre o teste. Este documento é exibido no IBM MQ Explorer quando você clica duas vezes no teste no diálogo Executar Testes ou em um resultado de teste na visualização Resultados de Testes. |
Os valores desses atributos são especificados no arquivo plugin.xml para definir o teste. Esses atributos também podem ser acessados programaticamente utilizando os métodos WMQTest listados na tabela a seguir.
Método | Descrição |
---|---|
getTestID() |
Retorna o ID do teste. |
getTestName() |
Retorna o nome do teste. |
getDescription() |
Retorna a descrição do teste. |
getTestSet() |
Retorna um identificador para o objeto do conjunto de testes criado para ser pai do teste. |
getFurtherInfoPath() |
Retorna o local do documento XHTML ou HTML que contém mais informações sobre o teste. |
Criando o Teste
O mecanismo de Testes do IBM MQ Explorer
instancia o objeto de teste usando o construtor fornecido WMQTest()
. Não há necessidade de dividir esse construtor
em subclasses.
Estrutura do Teste
O método runTest
de WMQTest
define o corpo do teste e é
chamado para iniciar uma execução de teste.
O final do método runTest
não implica no final do teste; é necessário especificar explicitamente o final do
teste utilizando o método testComplete
. Os testes podem ser implementados para que obtenham os dados de objetos de forma assíncrona.
O método runTest
envia um pedido para obter dados
sobre os objetos e o teste é executado a partir do método listener que recebe a
resposta. Isso permite que o teste aguarde os dados sem que você precise implementar
a espera de encadeamento; isso é demonstrado na Amostra
3.
Se uma espera manual (suspensão) for necessária como parte de um teste, você poderá usar o monitor de objeto para o objeto de teste usar os métodos Java
wait
e notify
. O encadeamento do mecanismo de teste
é implementado sem utilizar os monitores de objetos de objetos de teste individuais.
Executando o Teste
O mecanismo de Testes do IBM MQ Explorer
chama runTest(WMQTestEngine, IProgressMonitor,contextObjects,
treeNode)
para iniciar a execução do teste. O corpo principal do teste
deve estar aqui.
- WMQTestEngine
- O parâmetro WMQTestEngine fornece
um identificador para o mecanismo de teste que está executando o teste.
Isso é fornecido para que os testes retornem resultados enquanto um teste está em progresso utilizando o método
returnResult(WMQTestResult[], WMQTest)
do mecanismo do teste.O primeiro parâmetro desse método (
WMQTestResult[]
) contém os resultados a serem retornados e o segundo (WMQTest
) deve ser 'this
', para que o mecanismo de teste saiba de onde vem os resultados. O uso do parâmetro WMQTestEngine para retornar resultados provisórios é opcional - como alternativa, os resultados do teste podem ser retornados na conclusão do teste (consulte Concluindo o Teste). - IProgressMonitor
- O parâmetro IProgressMonitor fornece
um identificador para o monitor de feedback da GUI que está sendo utilizado para a execução de teste
atual. Isso permite que seu teste forneça tanto o feedback textual na
tarefa e subtarefas atualmente em execução, quanto uma barra de progresso para a conclusão atual.
O identificador para o Monitor de Progresso é armazenado em cache pela implementação padrão de
runTest
, portanto, se isso tiver sido utilizado, um identificador para o Monitor de Progresso também poderá ser acessado utilizando-se o método WMQTestgetGUIMonitor()
.O Monitor de Progresso é um recurso núcleo do Eclipse. Consulte a Documentação da API do Eclipse na web para obter orientações adicionais sobre o uso dela.
- contextObjects
- O parâmetro contextObjects fornece uma matriz MQExtObject. O parâmetro fornece o contexto do teste a ser executado para que as caixas de opções relevantes sejam pré-selecionadas quando o usuário abrir o diálogo Executar Testes.
- treeNode
- O parâmetro treeNode registra qual pasta ou objeto na visualização do Navegador foi clicado para executar os testes padrão ou para abrir o diálogo Executar Testes.
Preferências do Usuário
Os testes devem estar em conformidade com as preferências do usuário fornecidas com o uso do diálogo Preferências do Eclipse. Utilize os métodos a seguir para acessar as preferências:
PreferenceStoreManager.getIncludeHiddenQmgrsPreference()
que retornatrue
se você incluir gerenciadores de filas que estão ocultos no IBM MQ Explorer no teste, oufalse
se tiverem que ser excluídos.PreferenceStoreManager.getIncludeSysObjsPreference()
que retornarátrue
se objetos do sistema (objetos que possuem nomes começando com SYSTEM.) tiverem que ser incluídos no teste oufalse
se tiverem que ser excluídos.
Concluindo o Teste
Conclua um teste
chamando testComplete(WMQTestResult[])
,
transmitindo a ele uma matriz de objetos de resultados do teste. Consulte Criando um Resultado de Teste para obter orientação sobre
objetos de resultados do teste.
É possível retornar resultados na conclusão, usando este método como uma adição, ou como uma alternativa ao retorno de resultados do teste durante uma execução de teste (conforme explicado em Executando o Teste). No entanto, os resultados retornados em duplicidade serão exibidos duas vezes.
Mesmo que seu teste utilize o método returnResult
do WMQTestEngine
para retornar todos seus resultados,
ele ainda deverá chamar testComplete
na
conclusão. Isso é necessário para concluir o processamento do teste. Você poderá fornecer
uma matriz vazia de objetos WMQTestResult
no método testComplete
se não
houver novos resultados a serem retornados.
Para obter mais informações, consulte Estrutura do Teste.
Criando um Resultado de Teste
Os resultados de teste
são implementados como objetos WMQTestResult
.
Crie resultados utilizando:
WMQTestResult(int severity, String description, String qmgrname, String objectType)
em que:
severity
é um inteiro que identifica a gravidade do problema. Utilize um dos seguintes níveis de gravidade:IMarker.SEVERITY_ERROR
,IMarker.SEVERITY_WARNING
ouIMarker.SEVERITY_INFO
description
é a sequência, que explica o problema encontrado pelo teste, a ser exibida na Visualização Problemasqmgrname
é o nome do gerenciador de filas onde o problema foi localizado.objectType
é uma sequência que fornece a classe do objeto onde o problema pode ser localizado, por exemplo, "Filas" ou "Canais").
Para obter informações adicionais sobre o que fazer com o objeto de resultados do teste quando ele for criado, consulte Concluindo o Teste.
Tratando do Cancelamento
É possível cancelar
a execução do teste durante sua execução. Utilize o método isCancelled()
para
verificar se um teste deve parar.
Um teste adequado deve verificar regularmente se foi cancelado para evitar que um usuário se atrase desnecessariamente.
Se você tentar cancelar um teste, mas não obtiver resposta durante um longo período, o mecanismo do teste forçará sua parada finalizando o encadeamento que está executando o teste. Não confie neste método, pois é preferível que um teste responda em tempo, permitindo a limpeza dos recursos utilizados e o retorno de resultados do teste gerados até o momento.
Documentação do Teste
É possível fornecer documentação adicional para explicar os resultados retornados e fornecer orientação sobre o que deve ser feito para resolver o problema.
Forneça documentação em HTML, com o local identificado no arquivo plugin.xml do plug-in que fornece o teste. Para obter detalhes sobre como definir testes em XML, consulte Criando um Novo Teste.
O local do arquivo HTML da documentação pode ser:
- interno - Armazenado no projeto de plug-in que fornece o próprio teste. O local deve ser definido no XML em relação ao próprio arquivo plugin.xml. Por exemplo, doc/TestDoc.html
- externo - Armazenado em um servidor da Web, permitindo manutenção da documentação separadamente do próprio teste. O local deve ser definido com uma URL completa, começando com 'http://'.