Como funciona a identificação de objetos em QTP/UFT?

⚔ Resumo Inteligente

Identificação de objetos em QTP/UFT Determina como a ferramenta reconhece cada elemento da interface grÔfica durante a execução de um teste, comparando as propriedades armazenadas do Objeto de Teste com as propriedades ativas do Objeto de Tempo de Execução, para que os scripts continuem funcionando mesmo quando o layout da tela muda.

  • šŸŽÆ Modelo de Objeto de Teste: UFT Compara um objeto de teste armazenado com o objeto de tempo de execução ativo a cada passo para identificar controles independentemente da posição na tela.
  • šŸ—‚ļø Propriedades obrigatórias: UFT Sempre registra um conjunto padrĆ£o de propriedades para cada classe de objeto dentro do Repositório de Objetos.
  • 🧩 Propriedades assistivas: UFT Adiciona propriedades de backup uma de cada vez, somente quando o conjunto obrigatório sozinho nĆ£o consegue construir uma descrição Ćŗnica.
  • āš™ļø DiĆ”logo de identificação de objetos: A seção Ferramentas > Identificação de Objetos permite que os testadores adicionem, removam ou reordenem propriedades por ambiente e classe de objeto.
  • šŸ•µļø EspiĆ£o de Objeto: Ao posicionar o cursor sobre qualquer controle, vocĆŖ poderĆ” inspecionar suas propriedades de objeto de teste e de tempo de execução antes de decidir em quais delas confiar.
  • šŸ”¢ Identificadores ordinais: ƍndice, Localização e Data de Criação desempatam entre objetos que permanecem idĆŖnticos após cada verificação de propriedade.
  • 🧠 Identificação inteligente: Esse mecanismo de contingĆŖncia Ć© executado antes dos identificadores ordinais e, frequentemente, recupera um objeto cuja descrição aprendida falhou.

O que é identificação de objetos em UFT/QTP?

A identificação de objetos é o mecanismo. UFT/QTP Utiliza-se para reconhecer um elemento da interface grÔfica na tela, permitindo que um script atue sobre ele de forma confiÔvel, execução após execução. Durante uma sessão de gravação, UFT O programa estuda um pequeno conjunto de propriedades do objeto sob o ponteiro do mouse e as armazena; durante a reprodução, compara esses valores armazenados com as propriedades de todos os objetos presentes e escolhe aquele que corresponde exclusivamente, independentemente de onde esse objeto esteja posicionado na tela.

O objeto armazenado, juntamente com as propriedades UFT lembra disso, é chamado de Objeto de testeO elemento correspondente que existe na tela enquanto o teste é executado é o Objeto de tempo de execuçãoComparar os dois em cada etapa é a base do que a Micro Focus chama de Modelo de Objeto de TesteE é por isso que um UFT O script continua funcionando mesmo depois que um botão se move alguns pixels ou uma pÔgina é reestilizada.

Repositório de objetos e complementos

UFT mantém cada objeto de teste aprendido, juntamente com suas propriedades armazenadas, dentro do Repositório de Objetos. Adicionar-ins dizer Teste rÔpido O sistema permite que a ferramenta identifique antecipadamente a tecnologia à qual uma tela pertence, para que ela jÔ saiba qual conjunto de propriedades se aplica e não precise adivinhar, o que reduz o tempo necessÔrio para aprender um objeto.

Clique aqui. se o vídeo não estiver acessível

Todo objeto UFT Os registros podem conter dezenas de propriedades. Somente em um ambiente web, um único botão pode expor seu nome, tag HTML, tipo, classe, índice e muito mais. Registrar todas essas propriedades para cada objeto é tecnicamente possível, mas raramente útil, como mostra a próxima imagem para uma entrada típica do Repositório de Objetos.

Repositório de Objetos

If UFT Se tentĆ”ssemos memorizar todas as propriedades disponĆ­veis para cada objeto, o Repositório de Objetos aumentaria muito de tamanho e a execução do script ficaria visivelmente mais lenta. Para evitar isso, QTP Por padrĆ£o, nĆ£o salva todas as propriedades — salva um pequeno conjunto tĆ­pico para cada tipo de objeto, escolhido para facilitar a visualização. identificação Ćŗnica possĆ­vel sem sobrecarga. Essa lista restrita de propriedades, definida separadamente para cada ambiente e classe de objeto, Ć© configurada nas definiƧƵes de Identificação de Objetos, abordadas a seguir.

objeto Description: Propriedades Obrigatórias e Auxiliares

A propriedade de um objeto e seu valor juntos formam o quĆŖ? UFT chama o objeto DescriptĆ­on — a combinação exata que a ferramenta usa para selecionar um elemento dentre todos os outros objetos da pĆ”gina. Para um WebButton, por exemplo, a propriedade nome com o valor Entrar por si só, muitas vezes, Ć© suficiente para formar um objeto utilizĆ”vel. DescriptĆ­on.

Para rever ou alterar este comportamento, abra Ferramentas > Identificação de Objetos dentro UFTA caixa de diÔlogo Identificação de Objetos lista todos os ambientes atualmente carregados; selecionar um deles preenche automaticamente as classes de objetos. UFT O painel à direita oferece suporte a isso e mostra exatamente quais propriedades são armazenadas para objetos dessa classe. A lista é dividida em dois grupos:

  1. Propriedades obrigatórias São armazenados para cada objeto dessa classe por padrão, independentemente de serem ou não necessÔrios para diferenciÔ-lo de seus vizinhos.
  2. Propriedades assistivas sĆ£o armazenadas somente quando as propriedades obrigatórias, por si só, nĆ£o conseguem construir uma descrição Ćŗnica — UFT O processo percorre essa lista, uma propriedade de cada vez, atĆ© que o objeto se torne Ćŗnico.

Uma imagem na web facilita a visualização da regra na prÔtica.

objeto Descriptpropriedades de íon, obrigatórias e auxiliares

  • UFT O sistema sempre armazena o texto alternativo, a tag HTML e o tipo de imagem para uma Imagem da Web, mesmo quando apenas o texto alternativo jĆ” Ć© Ćŗnico.
  • Se as propriedades obrigatórias nĆ£o conseguirem criar uma descrição Ćŗnica, UFT Adiciona a propriedade de classe da lista auxiliar.
  • Assim que uma propriedade torna a descrição Ćŗnica, UFT Para de adicionar mais elementos — ignora o nome do arquivo e a altura se a classe jĆ” for suficiente, ignora a altura se o nome do arquivo for necessĆ”rio e assim por diante.
  • Suponha que apenas a propriedade da classe seja registrada no momento da gravação. Em tempo de execução, UFT NĆ£o distingue mais quais propriedades eram obrigatórias e quais eram auxiliares — simplesmente compara cada propriedade na descrição salva com o objeto em tempo de execução.
  • Se ao menos uma propriedade armazenada nĆ£o corresponder, a etapa falha — uma descrição Ćŗnica Ć© binĆ”ria, nĆ£o uma correspondĆŖncia do melhor esforƧo.
Aspecto Propriedades obrigatórias Propriedades Assistivas
Quando armazenado Sempre, para cada objeto dessa classe. Somente quando as propriedades obrigatórias não conseguem formar uma descrição única.
Configurado em DiÔlogo de identificação de objetos, Lista obrigatória DiÔlogo de identificação de objetos, Lista auxiliar
Ordem de uso Aprendido primeiro, incondicionalmente Adicionado um de cada vez até que o objeto seja único.
tratamento de tempo de execução Comparado da mesma forma que propriedades assistivas Comparado da mesma forma que propriedades obrigatórias

O vídeo abaixo demonstra detalhadamente esse fluxo de trabalho obrigatório versus assistivo.

A caixa de diÔlogo de identificação de objetos Box e Espião de Objetos

A caixa de diĆ”logo de Identificação de Objetos nĆ£o Ć© apenas um visualizador — Ć© onde um testador ajusta a agressividade da ferramenta. UFT Identifica objetos para todo um ambiente. Reordenar, adicionar ou remover uma propriedade aqui altera o que Ć© aprendido para todos os objetos dessa classe a partir desse ponto, nĆ£o apenas para aquele que estĆ” sendo registrado no momento. O fluxo de trabalho tĆ­pico Ć© o seguinte:

  1. Abra UFT e vai para Ferramentas > Identificação de Objetos.
  2. Escolha um ambiente (Web, Windows, Java, e assim por diante) no menu suspenso.
  3. Selecione uma classe de objeto, como WebButton ou WinEdit, na lista Ć  esquerda.
  4. Mova propriedades entre as listas Obrigatórias e Auxiliares ou reordene a lista Auxiliares para controlar qual propriedade serÔ exibida. UFT tenta primeiro.
  5. Ative ou desative a Identificação Inteligente para essa turma usando a caixa de seleção na parte superior do painel.

As alteraƧƵes feitas aqui serĆ£o aplicadas na próxima vez. UFT Aprende um objeto dessa classe — as entradas jĆ” salvas no Repositório de Objetos mantĆŖm sua descrição original atĆ© que o objeto seja registrado novamente ou atualizado manualmente.

Usando o Object Spy para inspecionar propriedades

Antes de editar a lista de itens obrigatórios ou auxiliares, a maioria dos testadores verifica como as propriedades de um objeto realmente se parecem com... EspiĆ£o de objetosAo apontar o cursor de inspeção para qualquer controle no aplicativo em teste, sĆ£o listadas as propriedades do objeto de teste e as propriedades de tempo de execução lado a lado, juntamente com os mĆ©todos. UFT Pode-se recorrer a ela — Ćŗtil quando uma propriedade obrigatória muda constantemente entre as versƵes e precisa ser substituĆ­da por uma mais estĆ”vel.

Identificadores ordinais: ƍndice, Localização e Hora de Criação

ƀs vezes, mesmo com todas as propriedades obrigatórias e auxiliares, dois ou mais objetos ainda parecem idĆŖnticos — trĆŖs caixas de seleção com o mesmo nome, classe e rótulo, por exemplo. Ɖ exatamente para essa situação que existe o recurso `add_property`. UFT recorre a um identificador ordinal, um valor de backup que classifica objetos idĆŖnticos pela sua posição em vez de suas propriedades.

Identificador Ordinal Propriedade Ordem atribuĆ­da Aplica-se a
ƍndice ƍndice Ordem em que o objeto aparece no código-fonte subjacente, comeƧando em 0. Qualquer classe de objeto
Localização: Localização: Posição na tela de cima para baixo e, em seguida, da esquerda para a direita, começando em 0. Qualquer classe de objeto
Tempo de Criação CreationTime A ordem em que a janela do navegador foi aberta, começando em 0. Somente objetos do navegador

UFT O método `Index` só aprende um identificador ordinal quando as propriedades obrigatórias e auxiliares realmente não conseguem separar dois objetos, porque o valor é relativo e pode mudar se o layout da pÔgina for alterado, mesmo que o objeto em si não tenha mudado. O trecho de código VBScript abaixo usa `Index` para clicar no segundo de dois links com o mesmo nome.

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

Os valores de Ć­ndice e localização sĆ£o especĆ­ficos da classe de objeto nomeada na declaração, portanto ƍndice:=3 Em um WebEdit, a busca ocorre apenas entre objetos WebEdit, enquanto o mesmo valor em um WebElement genĆ©rico contabiliza todos os objetos da pĆ”gina, independentemente do tipo.

Onde a identificação inteligente se encaixa

Identificação de objetos em UFT não se limita à descrição aprendida. Quando não é possível encontrar uma correspondência única, UFT O processo é executado em uma ordem fixa: primeiro verifica as propriedades obrigatórias e auxiliares aprendidas, depois qualquer identificador de relação visual e, por fim, Identificação Inteligente se esse mecanismo estiver habilitado para a classe, e somente como último recurso um identificador ordinal.

A Identificação Inteligente se posiciona propositalmente entre a descrição aprendida e o identificador ordinal. Ela reconstrói uma lista de candidatos usando as propriedades principais de uma classe e a refina com propriedades opcionais, de modo que muitas vezes consegue recuperar um objeto cuja descrição aprendida falhou — um botĆ£o renomeado, por exemplo — sem nunca precisar acessar o Repositório de Objetos. Como essa etapa extra de busca consome tempo, a maioria das equipes a habilita para classes com identificação frĆ”gil e utiliza identificadores ordinais apenas quando a posição Ć© realmente o Ćŗnico diferencial restante, como em um conjunto de botƵes de opção sem rótulo.

Perguntas Frequentes

O Repositório de Objetos armazena cada Objeto de Teste aprendido e suas propriedades salvas. As configurações de Identificação de Objetos, acessíveis em Ferramentas > Identificação de Objetos, controlam quais propriedades serão armazenadas. UFT Os registros são inseridos nesse repositório para cada classe de objeto em primeiro lugar.

UFT O processo utiliza identificadores de relação visual, Identificação Inteligente e, por fim, um identificador ordinal. Se nenhum deles produzir uma única correspondência, a etapa falha em tempo de execução, pois nenhum objeto satisfaz todas as propriedades armazenadas.

Registrar todas as propriedades disponíveis sobrecarregaria o Repositório de Objetos e tornaria a execução do script mais lenta. UFT Em vez disso, salva um pequeno conjunto típico por classe de objeto, adicionando propriedades auxiliares somente quando as obrigatórias não conseguem formar uma descrição única.

Sim. Ferramentas com auxĆ­lio de IA podem analisar o trĆ”fego de produção ou a estrutura DOM para sugerir propriedades mais estĆ”veis ​​e menos frĆ”geis antes da gravação, e podem sinalizar objetos cujas propriedades obrigatórias mudam com frequĆŖncia entre as compilaƧƵes — os testadores ainda verificam as sugestƵes.

Não completamente. Localizadores com capacidade de auto-recuperação reduzem as falhas causadas por elementos renomeados ou movidos, mas identificadores ordinais ainda resolvem objetos que são genuinamente idênticos em todas as propriedades, como vÔrias caixas de seleção sem rótulo em sequência.

Resuma esta postagem com: