Este é o Exercício 8 do Tutorial de Teste Funcional. Para iniciar no começo do tutorial, consulte o Tutorial de Teste Funcional.
Atualizando o Mapa do Objeto
Nesta seção, você corrigirá o aviso de reconhecimento do objeto utilizando o mapa do objeto. Você também utilizará uma expressão comum para obter um reconhecimento mais flexível do objeto.
Ao ver um defeito ou aviso de reconhecimento, observe a mensagem de log. No final do Exercício 7, você manteve o log aberto. Se não estiver aberto, abra-o clicando duas vezes no Explorer de Solução.
Um aviso individual permanece no log. O título do evento é "Reconhecimento do Objeto está fraco (acima do limite de aviso)."
Observe os campos ObjectLookedFor e objectFound na seção de aviso próxima da parte inferior do log.
Em ClassicsA, o nome do campo de senha é Lembrar Senha. Em ClassicsB, é Lembrar a Senha. Ao reproduzir o script no ClassicsB, o reconhecimento do objeto não correspondeu exatamente por causa desta diferença.
Observe o campo Número da Linha no log e observe o número.
Feche o log e retorne para o Teste Funcional.
Para navegar para o número da linha que você pontilhou, clique em qualquer lugar na janela do script e, em seguida, clique em Editar > Ir para.
Digite o número da linha a partir da mensagem de defeito do log e clique em OK.
O cursor move para a margem esquerda desse número de linha. Também é possível localizar o número da linha observando o indicador na parte inferior da janela de Teste Funcional. O número da linha e a posição do cursor dentro da linha é mostrado lá. Por exemplo, "Ln 66 Col 9" refere-se à posição na linha 6, ou seja, 9 caracteres à direita da margem esquerda. A linha no seu script deve ser:
RememberPassword().ClickToState(SELECTED)
Esta linha representa seu clique na caixa de opções da senha. Esta linha no script mostra qual objeto está falhando. Agora, você pode procurar esse objeto no mapa de objeto.
Para localizar o objeto, retorne para a lista de Objetos de Teste no Explorer de Script (área de janela esquerda).
Você deve consultar "RememberPassword" listado na pasta Objetos de Teste.
Clique duas vezes nesse objeto para abri-lo no mapa de objeto.
Clique em Objeto de Teste
> Aceitar Tudo no menu do mapa de objeto. Se o comando estiver esmaecido,
não faça nada.
Observe que todos os objetos são alterados para texto em preto. O texto é azul (para indicar novos objetos) até você aceitar os objetos em um mapa. Você deve aceitar os objetos na primeira vez que observar um mapa de objeto recém criado.
Se o objeto da caixa de opções da senha não estiver selecionado no mapa, selecione-o. (É o objeto chamado "Java: checkBox: checkRemeber: javax.swing.JCheckBox.)
Observe as propriedades de reconhecimento listadas na guia Reconhecimento na parte inferior do mapa do objeto.
Você pode consultar se este é o objeto de ClassicsA, porque diz "Lembrar Senha" na propriedade accessibleContext.accessibleName. Este é o objeto "antigo". No entanto, ao reproduzir o script no ClassicsB, o texto para esse objeto foi alterado, então o Teste Funcional o reconhece como um objeto "novo". Você deseja utilizar as propriedades do objeto novo neste caso, então você deve inclui-lo no mapa.
Para incluir o novo objeto no mapa, abra o ClassicsB e a caixa de diálogo Logon de Membro.
Clique em Aplicativos > Executar no menu do mapa do objeto.
Utilize a seta para selecionar ClassicsJavaB. (Certifique-se de escolher B.)
Clique em OK.
No ClassicsCD, selecione qualquer CD e clique em Fazer o Pedido.
A caixa de diálogo Logon de Membro é aberta.
Mova o mapa do objeto para baixo na sua tela, se necessário, para vê-lo completamente. No menu do mapa de objeto, clique em Objeto de Teste > Inserir Objeto(s).
Esta é a mesma ferramenta do Localizador de Objeto na página Selecionar um Objeto do Assistente do Ponto de Verificação.
Limpe a opção avançar para a próxima página se estiver selecionada.
Utilize a ferramenta Localizador de Objeto para selecionar a caixa de opções Lembrar a Senha na caixa de diálogo Logon de Membro.
Depois de selecionar a caixa de opções, você verá que a propriedade accessibleContext.accessibleName é agora "Lembrar a Senha." Expanda as molduras do mapa de objeto, se necessário, para consultar as propriedades.
Na página Selecionar um Objeto, clique em Avançar.
Não altere nada na página Selecionar Opções de Objeto e clique em Concluir.
O novo objeto da caixa de opções agora é mostrado no mapa de objeto.
Clique em outro objeto e observe que o novo item está listado em azul e a palavra "Novo" é exibida no começo da linha.
Agora os objetos antigos e novos são listados no mapa. Você deseja unificar os dois objetos e pegar as propriedades de cada um que você deseja para o novo objeto.
Para unificar os objetos, clique no objeto antigo (a caixa de opções original etiquetada "CheckBox: checkRemember") e o arraste para o novo objeto na listat. Posicione a ponta da seta do cursor sobre o novo objeto antes de liberar o botão do mouse.
O assistente de Unificar os Objetos de Teste é exibido.
Aumente o assistente Unificar, se necessário, para consultar informações adicionais nas seções inferiores.
Na seção inferior esquerda, as propriedades do objeto original são exibidas. Deveria ser etiquetado "Origem: RememberPassword." É esse o texto que estava na caixa de opções no ClassicsA. Na seção inferior direita, deveria ser etiquetado "Destino: RememberThePassword." Esse é o texto que está na caixa de opções em ClassicsB. As propriedades de reconhecimento do novo objeto estão preenchidas até o topo porque você arrastou o objeto antigo para o novo objeto. Geralmente, o Teste Funcional coloca as novas propriedades no topo se forem as propriedades preferidas. No entanto, algumas propriedades administrativas antigas podem ser as preferidas. Por exemplo, o Teste Funcional retém expressões regulares no antigo conjunto de propriedade. Para utilizar uma propriedade a partir do objeto antigo, dê um clique duplo nessa propriedade na grade do objeto antigo e será copiado para o objeto unificado. Nesse caso, desejamos utilizar todas as propriedades do novo objeto, que já estão preenchidas.
Clique em Avançar.
Todos os scripts que são afetados por esta alteração do mapa do objeto são listados. Somente um script, Classics, é afetado.
Clique em Concluir.
No mapa do objeto, clique em Arquivo: Salvar para salvar as alterações feitas e fechar o mapa do objeto.
Agora reproduziremos o script novamente no ClassicsB para conifrmar que é transmitido.
Primeiramente, feche as caixas de diálogo de ClassicsCD.
Clique em qualquer lugar na janela de Teste Funcional para ativar a barra de ferramentas.
Clique em Executar Script de Teste Funcional.
Selecione o log Classics e clique em Concluir.
Agora, o script é transmitido sem avisos! Observe que a reprodução não pausa mais no objeto da caixa de opções porque as propriedades de reconhecimento agora são correspondentes.
Este recurso de unificação do objeto é uma maneira fácil de atualizar scripts quando as propriedades de reconhecimento de um objeto são alteradas intencionalmente. Uma das maiores vantagens deste recurso é que se o seu mapa do objeto estiver sendo utilizado por muitos scripts, você poderia atualizá-los ao fazer a alteração no assistente. Em vez de editar manualmenteng múltiplos scripts, é possível fazer a alteração uma vez no mapa e propagá-la automaticamente para todos os scripts que a utilizam. Este recurso pode economizar tempo.
Nota: Há também um modo mais fácil de atualizar as propriedades de reconhecimento de um objeto de teste que deve ser alterado. Em vez de utilizar o Unificar Assistente conforme descrito nesta etapa, a partir do Mapa do Objeto você pode simplesmente selecionar o objeto de teste cujas propriedades de reconhecimento você deseja atualizar. Clique com o botão direito no objeto de teste como é exibido na árvore do Mapa de Objeto e selecione Atualizar Propriedades de Reconhecimento a partir do menu pop-up. Você precisará ter o aplicativo de teste em execução quando esta ação for executada para que o Teste Funcional possa obter as propriedades de reconhecimento atualizadas. Você utilizaria somente este método de atualização se não desejar utilizar propriedades do objeto antigo.
Feche o log.
Avance para o Exercício 9: Alterando as Preferências de Reconhecimento.