下列範例適用於 Windows 上執行的 Script:
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 { //使用這段程式碼從登錄中擷取字串 (REG_SZ) 值。 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 { //使用這段程式碼從登錄中擷取整數 (DWORD) 值。 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 使用。請注意 Script 頂端的最後一個 import 陳述式。
第二段擷取 int 類型的值。在範例中, 簡式類型 int 轉換成 Integer 物件, 所以可以在 JOptionPane 對話框中顯示。否則,程式碼就等同於第一段。
這兩個指令在失敗時都會擲出 NoSuchRegistryKeyException。因此,最好將這些方法封裝在 try/catch 區塊內,如範例所示。您可以將登錄鍵改為不存在的登錄鍵,然後執行 Script。將會出現錯誤訊息,表示找不到登錄鍵。