WMQTest 인터페이스

IBM® MQ 탐색기용으로 기록된 테스트는 제공된 WMQTest 클래스를 확장하는 Java™ 클래스에 속해야 합니다. 이 주제는 제공된 메소드의 조작 및 인터페이스를 설명합니다.

테스트 속성

속성의 콜렉션을 사용하여 플러그인 Manifest 파일(plugin.xml)에 테스트를 정의합니다. 테스트의 속성은 다음 표에 나열됩니다.

속성 설명
id 테스트의 고유 ID를 제공하는 문자열.
이름 테스트의 이름.
class 테스트 소스 코드를 포함하는 Java 클래스의 이름.
testset 테스트를 표시할 그룹을 정의하는 문자열. 예를 들어, wmq큐 관리자 테스트 범주의 테스트를 표시합니다.
testsubset 테스트를 표시할 하위 그룹을 정의하는 문자열. 예를 들어, queues 범주의 테스트를 표시합니다.
description 테스트 작업을 설명하는 간단한 설명.
furtherinfo 테스트에 대한 자세한 정보가 들어있는 HTML 또는 XHTML 문서의 위치. 이 문서는 테스트 실행 대화 상자의 테스트 또는 테스트 결과 보기의 테스트 결과를 두 번 클릭하면 IBM MQ 탐색기에 표시됩니다.

테스트를 정의할 plugin.xml 파일에 이 속성의 값을 지정합니다. 다음 표에 나열된 WMQTest 메소드를 사용하여 프로그램상에서 이 속성에 액세스할 수도 있습니다.

메소드 설명
getTestID() 테스트 ID를 리턴합니다.
getTestName() 테스트의 이름을 리턴합니다.
getDescription() 테스트의 설명을 리턴합니다.
getTestSet() 테스트의 상위로 작성한 테스트 세트 오브젝트에 대한 핸들을 리턴합니다.
getFurtherInfoPath() 테스트에 대한 자세한 정보가 들어있는 HTML 또는 XHTML 문서의 위치를 리턴합니다.

테스트 작성

IBM MQ 탐색기 테스트 엔진은 제공된 구성자 WMQTest()를 사용하여 테스트 오브젝트를 인스턴스화합니다. 이 구성자에는 서브클래스가 필요없습니다.

테스트 구조

WMQTest 메소드 runTest는 테스트 본문을 정의하며 테스트를 시작하기 위해 호출됩니다.

runTest 메소드의 종료가 테스트의 종료를 의미하지는 않습니다. testComplete 메소드를 사용하여 테스트 종료를 명시적으로 지정해야 합니다. 오브젝트 데이터를 비동기로 확보할 수 있도록 테스트를 구현할 수 있습니다.

runTest 메소드는 오브젝트에 대한 데이터를 확보하기 위한 요청을 제출하며 테스트는 응답을 수신하는 리스너 메소드로부터 실행됩니다. 이로 인해 스레드 대기를 구현할 필요없이 테스트가 데이터를 기다릴 수 있습니다. 샘플 3에서 이에 대해 설명합니다.

테스트의 일부로 수동 대기(휴면)가 필요한 경우, 테스트 오브젝트에 대한 오브젝트 모니터를 통해 Java waitnotify 메소드를 사용할 수 있습니다. 테스트 엔진의 스레드는 개별 테스트 오브젝트의 오브젝트 모니터를 사용하지 않고 구현됩니다.

테스트 실행

IBM MQ 탐색기 테스트 엔진은 테스트를 시작하기 위해 runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)를 호출합니다. 테스트의 주요 본문이 여기에 있어야 합니다.

WMQTestEngine
WMQTestEngine 매개변수는 테스트를 실행 중인 테스트 엔진에 대한 핸들을 제공합니다.

핸들이 제공되어 테스트는 테스트가 진행 중인 동안 테스트 엔진의 returnResult(WMQTestResult[], WMQTest) 메소드를 사용하여 결과를 리턴할 수 있습니다.

이 메소드의 첫 번째 매개변수(WMQTestResult[])는 리턴될 결과를 포함하며 두 번째 매개변수(WMQTest)는 테스트 엔진이 결과가 나오는 위치를 알 수 있도록 'this'여야 합니다. WMQTestEngine 매개변수를 사용하여 중간 결과를 리턴하는 것은 선택사항입니다. 테스트가 완료되면 테스트 결과가 리턴될 수 있습니다(테스트 완료 참조).

IProgressMonitor
IProgressMonitor 매개변수는 현재 테스트 실행에 사용 중인 GUI 피드백 모니터에 대한 핸들입니다. 이 핸들을 통해 테스트는 현재 실행 중인 태스크 및 하위 태스크에 대한 텍스트 피드백 및 현재 완료 상태에 대한 진행 표시줄을 모두 제공할 수 있습니다.

진행 상태 모니터에 대한 핸들은 기본값으로 runTest의 구현으로 캐시되므로 이를 사용한 경우 WMQTest 메소드 getGUIMonitor()를 사용하여 진행 상태 모니터에도 액세스할 수 있습니다.

진행 상태 모니터는 핵심적인 Eclipse 자원입니다. 이 모니터 사용에 대한 자세한 내용은 웹의 Eclipse API 문서를 참조하십시오.

contextObjects
contextObjects 매개변수는 MQExtObject 배열을 제공합니다. 매개변수는 사용자가 테스트 실행 대화 상자를 열 때 관련 선택란이 미리 선택되도록 실행할 테스트의 컨텍스트를 제공합니다.
treeNode
treeNode 매개변수는 기본 테스트를 실행하기 위해 또는 테스트 실행 대화 상자를 열기 위해 클릭한 네비게이터 보기의 오브젝트 또는 폴더를 기록합니다.

사용자 환경 설정

테스트는 Eclipse 환경 설정 대화 상자를 사용하여 제공된 사용자 환경 설정에 따라야 합니다. 다음 메소드를 사용하여 환경 설정에 액세스하십시오.

  • PreferenceStoreManager.getIncludeHiddenQmgrsPreference(): IBM MQ 탐색기에 숨겨진 큐 관리자가 테스트에 포함된 경우 true를 리턴하고 제외된 경우에는 false를 리턴합니다.
  • PreferenceStoreManager.getIncludeSysObjsPreference(): 시스템 오브젝트(이름이 SYSTEM.으로 시작하는 오브젝트)를 테스트에 포함해야 하는 경우 true를 리턴하고 제외해야 하는 경우에는 false를 리턴합니다.

테스트 완료

testComplete(WMQTestResult[])를 호출하여 테스트 결과 오브젝트의 배열을 전달하고 테스트를 완료하십시오. 테스트 결과 오브젝트에 대한 내용은 테스트 결과 작성의 내용을 참조하십시오.

또한 이 메소드를 사용하거나 (테스트 실행에 설명된 대로) 테스트 실행 중 테스트 결과를 리턴하는 것에 대한 대안으로 완료 시 결과를 리턴할 수 있습니다. 그러나 두 번 리턴되는 결과는 두 번 표시됩니다.

테스트에 WMQTestEngine 메소드 returnResult를 사용하여 모든 결과를 리턴하더라도 여전히 완료될 때 testComplete를 호출해야 합니다. 이는 테스트 처리를 완료하기 위해 필수적입니다. 리턴할 새 결과가 없으면 testComplete 메소드의 WMQTestResult 오브젝트에 대한 빈 배열을 제공할 수 있습니다.

추가 정보는 테스트 구조의 내용을 참조하십시오.

테스트 결과 작성

테스트 결과는 WMQTestResult 오브젝트로 구현됩니다. 다음을 사용하여 결과를 작성하십시오.

WMQTestResult(int severity, String description, String qmgrname, String objectType)

여기서:

  • severity는 문제점의 심각도를 식별하는 정수입니다. 심각도 레벨, IMarker.SEVERITY_ERROR, IMarker.SEVERITY_WARNING 또는 IMarker.SEVERITY_INFO 중 하나를 사용하십시오.
  • description은 테스트에서 발견된 문제점을 설명하는 문자열로, 문제점 보기에 표시됩니다.
  • qmgrname은 문제점이 발견된 큐 관리자의 이름입니다.
  • objectType은 문제점을 찾을 수 있는 오브젝트의 클래스를 제공하는 문자열입니다(예: "큐" 또는 "채널").

테스트 결과 오브젝트가 작성되었을 때 수행할 사항에 대한 자세한 정보는 테스트 완료의 내용을 참조하십시오.

취소 처리

테스트가 실행되는 동안 이를 취소할 수 있습니다. isCancelled() 메소드를 사용하여 테스트를 중지해야 하는지 여부를 확인하십시오.

우수한 테스트는 불필요한 사용자 지연을 피하기 위해 테스트가 취소되었는지 여부를 주기적으로 점검해야 합니다.

테스트를 취소하려 하지만 연장된 시간 내에 응답에 실패하는 경우 테스트 엔진이 테스트를 실행 중인 스레드를 종료해서 테스트가 중지되도록 강제 실행합니다. 이 메소드에 의존하기 보다는 테스트가 사용한 자원을 정리하고 이제까지 생성된 테스트 결과를 리턴하도록 허용된 시간 이내에 테스트가 응답하는 것이 좋습니다.

테스트 문서

리턴하는 결과를 설명하고 문제점을 해결하기 위해 수행해야 하는 사항에 대한 지침을 제공할 추가 문서를 제공할 수 있습니다.

테스트를 제공하는 플러그인에 대한 plugin.xml 파일에서 식별된 위치와 함께 HTML의 문서를 제공하십시오. XML로 테스트를 정의하는 데 대한 자세한 내용은 새 테스트 작성의 내용을 참조하십시오.

문서 HTML 파일의 가능한 위치는 다음과 같습니다.

  • 내부 - 테스트 자체를 제공하는 플러그인 프로젝트에 저장됩니다. plugin.xml 파일 자체에 상대적인 XML로 위치를 정의해야 합니다. 예를 들면, doc/TestDoc.html입니다.
  • 외부 - 웹 서버에 저장되어 테스트 자체와 별도로 문서를 유지보수할 수 있습니다. 위치는 'http://'로 시작하는 완전한 URL로 정의해야 합니다.