以下示例适用于在 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 类型参数。
示例从注册表抽取字符串和整数值。 首先查看 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 类在屏幕上的消息框中显示注册表值。用户可能不熟悉最后这个类,它是 Java Swing 类,必须予以导入才能用于 Functional Tester。请注意脚本顶部的最后 import 语句。
第二段抽取 int 类型值。在该示例中,将简单类型 int 转换为 Integer 对象,以便在 JOptionPane 对话框中可以显示该对象。否则,该代码与第一段相同。
两个命令在失败时都抛出 NoSuchRegistryKeyException。因此,如该示例中所示,将这些方法放在 try/catch 块中比较恰当。可以将注册表键更改为不存在的注册表键,然后运行脚本。您将看到指示找不到该键的错误消息。