O registro do Windows é um banco de dados utilizado pelo sistema operacional Windows para armazenar informações de configuração. Freqüentemente um testador tem a necessidade de ler informações nesse banco de dados utilizando comandos do Teste Funcional. O exemplo a seguir aplica-se a scripts em execução no Windows:
import resources.RegistryExampleHelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; import javax.swing.JOptionPane;
/** * Description : Teste Funcional Script * @author Administrator */ public class RegistryExample extends RegistryExampleHelper { /** * Script Name : RegistryExample * Generated : Dec 14, 2005 3:58:25 PM * Modified : Dec 14, 2005 3:58:25 PM * Description : Teste Funcional Script * Original Host : WinNT Version 5.0 Build 2195 (Service Pack 3) * * @since 2005/12/14 * @author Administrator */ public void testMain (Object[] args) { setOption (IOptionName.BRING_UP_LOGVIEWER, false); try { //Utilizar esse código para extrair valores String (REG_SZ) do registro. String regKeyString =HKEY_LOCAL_MACHINE\\SOFTWARE\\ Rational Software\\Rational Test\\8\\Data 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 { //Utilizar esse código para extrair valores Integer (DWORD) do registro. 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 + ")" ); } } }
Há dois comandos disponíveis para usuários do Teste Funcional lerem valores
do registro. O comando getRegistryValue
é utilizado para
ler valores de cadeia do registro. O comando getRegistryIntValue
é utilizado para ler valores inteiros do registro. Os termos "REG_SZ"
descrevem os tipos de cadeia e de inteiro. Ambos os comandos utilizam um tipo
de argumento String
, que contém a chave de registro a ser extraída.
Nota: Ao digitar as teclas, a "\" é um caractere especial em Java e deve ser dobrado para "\\" para ser utilizado como literal.
O exemplo extrai os dois valores, de cadeia e de inteiro do registro.
Olhando primeiramente o segmento de valor String
, observe o código
núcleo:
String regKeyString =
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational
Test\\8\\Data Directory";
String regValueString =
getOperatingSystem().getRegistryValue(regKeyString);
JOptionPane.showMessageDialog(null, regValueString, "String
Registry Value",1);
A primeira linha cria um tipo de variável String
, que contém
o valor do registro a ser extraído. A segunda linha executa o comando e
o armazena no tipo String
variável regValueString
.
A terceira linha utiliza a classe JOptionPane.showMessageDialog
para exibir o valor do registro em uma caixa de mensagem na tela. Para aqueles
que não conhecem essa última classe, é uma classe Java Swing que deve
ser importada para estar disponível para o Teste Funcional. Observe a última instrução
import
no início do script.
O segundo segmento extrai o valor de tipo int
. No
exemplo, o tipo simples int
é convertido em um objeto Integer
,
para que possa ser exibido no diálogo JOptionPane
.
Caso contrário, o código será idêntico ao do primeiro segmento.
Os dois comandos lançam uma NoSuchRegistryKeyException
ao falharem. Portanto, é interessante agrupar esses métodos em
um bloco try/catch, como no exemplo. Você pode alterar a chave de registro
para uma que não exista e executar o script. Você verá uma mensagem de erro
indicando que a chave não pôde ser localizada.
Termos de uso | Feedback
(C) Copyright IBM Corporation 2002, 2004. Todos os Direitos Reservados.