Functional Tester를 사용한 Windows 레지스트리 읽기

Windows® 레지스트리는 Windows 운영 체제가 구성 정보를 저장하기 위해 사용하는 데이터베이스입니다. 종종 테스트가 Functional Tester 명령을 사용하여 해당 데이터베이스 외부의 정보를 읽을 때 필요합니다. 이 주제에서는 이를 수행하기 위한 예제를 제공합니다.

다음 예제는 Windows에서 실행되는 스크립트에 적용할수 있습니다.

import javax.swing.JOptionPane;

import resources.RegistryExampleHelper;
import com.rational.test.ft.*; 
import com.rational.test.ft.object.interfaces.*; 
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.script.*; 
import com.rational.test.ft.value.*; 
import com.rational.test.ft.vp.*; 

/**
 * Description : Functional Test Script
 * @author Administrator
 */
public class RegistryExample extends RegistryExampleHelper
{
	/**
* Script Name   : RegistryExample
	 * Generated     : Jul 20, 2006 1:48:49 PM
	 * Description   : Functional Test Script
	 * Original Host : WinNT Version 5.1  Build 2600 (S)
	 * 
	 * @since  2006/07/20
* @author Administrator
	 */
public void testMain (Object[] args)
	{
	    try
	    {
//Use this code to extract String (REG_SZ) values from the registry.
	    	String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Rational FT Install Directory";
	    	
	        String regValueString = getOperatingSystem().getRegistryValue(regKeyString);
	        JOptionPane.showMessageDialog(null, regValueString,"String Registry Value",1);
	    }
catch (NoSuchRegistryKeyException e)
	    {
JOptionPane.showMessageDialog(null, "Error finding registry key.");
System.out.println ("No Such Registry Key Exception." + e);
	    }
	    try
	    {
//Use this code to extract Integer (DWORD) values from the registry.
	        String regKeyInt = "HKEY_CURRENT_USER\\Control " +"Panel\\Desktop\\LowLevelHooksTimeout";
Integer regValueInt = new
Integer(getOperatingSystem().getRegistryIntValue(regKeyInt));
	        JOptionPane.showMessageDialog(null,regValueInt, "Integer Registry " + "Value ",1);
	    }
catch (NoSuchRegistryKeyException e)
	    {
JOptionPane.showMessageDialog(null, "Error finding registry key.");
System.out.println ("No Such Registry Key Exception. (" + e + ")" );
	    }
	}
	}

Functional Tester 사용자가 레지스트리에서 값을 읽을 때에는 두 명령을 사용할 수 있습니다. getRegistryValue 명령은 레지스트리에서 문자열 값을 읽을 때 사용합니다. getRegistryIntValue는 레지스트리에서 정수 값을 읽을 때 사용합니다. "REG_SZ" 용어에서는 문자열과 정수 유형에 대해 설명합니다. 두 명령은 모두 추출할 레지스트리 키를 포함하는 String 인수 유형을 가져옵니다.

주: 키를 입력할 때, "\"는 Java™에 있는 특수 문자로서 "\\"로 묶여 리터럴로 처리됩니다.

예제에서는 레지스트리에서 문자열과 정수값 모두를 추출합니다. String 값 세그먼트의 첫 부분에 있는 핵심 코드를 주의하십시오.

String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Rational FT Install Directory";
String regValueString = getOperatingSystem().getRegistryValue(regKeyString);
JOptionPane.showMessageDialog(null, regValueString,"String Registry Value",1);

첫 번째 행에서는 추출할 레지스트리 값을 포함하는 String 변수 유형을 작성합니다. 두 번째 행에서는 명령을 실행하고 이를 String 유형의 변수인 regValueString에 저장합니다. 세 번째 행에서는 JOptionPane.showMessageDialog 클래스를 사용하여 화면의 메시지 상자에 레지스트리 값을 표시합니다. 이 마지막 클래스에 익숙하지 않은 경우 Functional Tester에서 사용할 수 있으려면 Java Swing 클래스를 가져와야 합니다. 스크립트 맨 위에 있는 마지막 import 명령문을 참조하십시오.

두 번째 세그먼트에서는 int 유형의 값을 추출합니다. 예제에서, 단순 유형의 int정수 오브젝트로 변환되어 JOptionPane 대화 상자에 표시될 수 있습니다. 그렇지 않으면 코드는 첫 번째 세그먼트와 동일합니다.

명령 모두에서는 실패할 경우 NoSuchRegistryKeyException을 리턴합니다. 그러므로 예제에서 처럼 try/catch 블록으로 이 메소드를 랩핑하는 것이 좋습니다. 레지스트리 키를 존재하지 않는 값으로 변경한 후 스크립트를 실행할 수 있습니다. 키를 찾을 수 없음을 표시하는 오류 메시지가 표시됩니다.


피드백