Identificação inteligente em QTP/UFT com exemplo
ā” Resumo Inteligente
A Identificação Inteligente é um mecanismo de contingência em UFT Uma ferramenta para localizar um objeto quando sua descrição aprendida não corresponde mais à aplicação em teste, usando propriedades de filtro bÔsicas e opcionais para reduzir a lista de candidatos a uma única correspondência.

O que é Identificação Inteligente em QTP/UFT?
Identificação Inteligente é um mecanismo de reconhecimento de objetos de contingência em OpenText UFT Uma delas é a ferramenta anteriormente conhecida como HP QuickTest Professional (QTPSe o processo de identificação normal não conseguir encontrar uma correspondência única para a descrição aprendida de um objeto, UFT Aciona a Identificação Inteligente, desde que o mecanismo esteja habilitado nas configurações de Identificação de Objetos para a classe desse objeto.
Ao contrÔrio da descrição aprendida, a Identificação Inteligente não exige uma correspondência exata em todas as propriedades armazenadas. Ela avalia duas categorias de propriedades para reduzir um conjunto de objetos candidatos a exatamente um:
- Propriedades do filtro bÔsico. As propriedades mais fundamentais de uma classe de objeto de teste; aquelas cujos valores não podem ser alterados sem que se altere a essência do objeto original.
- Propriedades de filtro opcionais. Propriedades de suporte que ajudam a identificar um objeto, mas que tĆŖm maior probabilidade de mudar com o tempo.
Quando a Identificação Inteligente é executada, UFT O algoritmo "esquece" a descrição aprendida e reconstrói uma nova lista de candidatos contendo todos os objetos que correspondem a todas as Propriedades de Filtro Base. Em seguida, ele refina ainda mais essa lista, verificando as Propriedades de Filtro Opcionais uma de cada vez, até que reste apenas um objeto.
Se a Identificação Inteligente for invocada durante uma sessĆ£o de execução, a Ć”rvore de resultados do teste registra uma mensagem de aviso confirmando que o mecanismo foi usado, e uma etapa de Identificação Inteligente Ć© inserida nos resultados para que o desvio da descrição aprendida permaneƧa visĆvel.
A Identificação Inteligente ocupa o terceiro lugar em UFTA hierarquia de identificação de objetos do script, após a descrição aprendida e qualquer Identificador de Relação Visual, e antes do identificador ordinal usado como último recurso. Entender onde ela se encaixa explica por que desativÔ-la completamente, em vez de corrigir as propriedades subjacentes, raramente é a melhor escolha a longo prazo para um script que é executado com frequência.
Propriedades bƔsicas do filtro versus propriedades opcionais do filtro
Ambos os filtros funcionam em conjunto, mas desempenham funções diferentes no processo de eliminação descrito acima. A comparação abaixo esclarece quando cada um é utilizado e qual o poder de eliminação de cada um.
| Aspecto | Propriedades do filtro base | Propriedades de filtro opcionais |
|---|---|---|
| Tipo | Elabore a lista inicial de candidatos. | Reduza a lista de candidatos a um Ćŗnico objeto. |
| Estabilidade | Quase nunca hƔ mudanƧa sem que a identidade do objeto seja alterada. | Pode mudar periodicamente sem alterar a identidade do objeto. |
| Regra de correspondência | Todo candidato deve atender a todas as propriedades bÔsicas. | Verificamos uma propriedade por vez; uma propriedade é ignorada se eliminar todas as outras candidatas. |
| Exemplo tĆpico | Tag HTML, classe de objeto, Ćndice | Nome, ID HTML, texto alternativo, fonte da imagem |
| Onde configurado | Identificação de objetos > Configurar > Propriedades bÔsicas do filtro | Identificação de objetos > Configurar > Propriedades de filtro opcionais |
Como a mesma propriedade não pode estar em ambas as listas, planeje a divisão com cuidado. Propriedades que definem o que um objeto é fundamentalmente pertencem à lista base; propriedades que apenas ajudam a distingui-lo de objetos semelhantes pertencem à lista opcional.
Como funciona a identificação inteligente: o processo passo a passo
A Identificação Inteligente só Ć© ativada depois que a descrição aprendida, e qualquer Identificador de Relação Visual, falha em identificar um Ćŗnico objeto. Uma vez acionada, UFT Funciona atravĆ©s de um processo de eliminação previsĆvel em quatro etapas:
- Recriar a lista de candidatos. UFT Ignora a descrição aprendida e examina o objeto pai em busca de todos os objetos que correspondam a todas as Propriedades de Filtro Base.
- Aplique a primeira propriedade opcional. UFT Remove qualquer candidato que não corresponda à primeira propriedade da lista de Propriedades de Filtro Opcionais.
- Avalie o resultado. Se houver mais de um candidato restante, UFT repete o passo anterior com a próxima propriedade opcional. Se um filtro eliminasse todos os candidatos restantes, UFT Em vez disso, ignora essa propriedade e passa para a próxima.
- Pare em uma partida. UFT Repete o ciclo de filtragem e avaliação até que reste exatamente um objeto, ou até que não haja mais propriedades opcionais para verificar.
Se o processo de eliminação ainda nĆ£o conseguir isolar um Ćŗnico objeto, UFT O sistema recorre Ć descrição aprendida mais um identificador ordinal, como Ćndice, localização ou hora de criação. Quando nem mesmo essa combinação consegue identificar o objeto, a sessĆ£o de execução Ć© pausada e exibe um erro de tempo de execução.
Como ativar ou desativar a identificação inteligente
A identificação inteligente é configurada por classe de objeto de teste. Ferramentas > Identificação de ObjetosSelecione o ambiente e a classe do objeto e ative a opção. Ativar a identificação inteligente, então clique configurar Para escolher as propriedades de filtro base e opcionais para essa classe, a mesma caixa de diÔlogo permite desativar a opção para uma classe que deve sempre usar sua descrição aprendida.
Como funciona a identificação inteligente (tutorial em vĆdeo)
O vĆdeo abaixo demonstra o processo de eliminação do filtro base e do filtro opcional em um exemplo prĆ”tico.
Clique aqui. se o vĆdeo nĆ£o estiver acessĆvel
Vantagens e desvantagens do uso da identificação inteligente
A Identificação Inteligente aumenta a resiliência, mas essa resiliência tem um custo em termos de tempo de execução. Avalie ambos os lados antes de deixÔ-la ativada por padrão em todo o repositório de objetos.
- ā Permanece estĆ”vel mesmo com pequenas alteraƧƵes na interface do usuĆ”rio: Um atributo renomeado ou uma mudanƧa de posição na pĆ”gina nĆ£o quebra mais todos os scripts que acessam o objeto.
- ā Reduz a manutenção do repositório de objetos: Os testadores gastam menos tempo regravando objetos após pequenas atualizaƧƵes da interface.
- ā MantĆ©m-se visĆvel nos resultados: Cada invocação registra um aviso, permitindo que as equipes verifiquem com que frequĆŖncia o recurso de fallback Ć© realmente necessĆ”rio.
- ā ļø Execução de testes mais lenta: Criar e filtrar uma lista de candidatos leva consideravelmente mais tempo do que uma correspondĆŖncia direta de imóveis, e o custo se multiplica em um conjunto grande de candidatos.
- ā ļø Pode mascarar defeitos reais: Se a Identificação Inteligente encontrar silenciosamente um objeto semelhante, uma regressĆ£o genuĆna da interface do usuĆ”rio pode passar despercebida.
- ā ļø Necessita de revisĆ£o periódica: As propriedades de filtro base e opcionais ainda precisam de revisĆ£o ocasional Ć medida que o aplicativo evolui.
A maioria das equipes mantĆ©m a Identificação Inteligente ativada para scripts exploratórios e de baixa frequĆŖncia, desativando-a seletivamente em objetos crĆticos para o desempenho assim que as propriedades de identificação do objeto estiverem estĆ”veis.
Modifique a propriedade do objeto para evitar identificação inteligente
A flexibilidade da Identificação Inteligente tem o custo de tempo de execução descrito acima, por isso muitas equipes preferem corrigir as propriedades de identificação do objeto por conta própria, em vez de depender repetidamente da alternativa. Observe dois sinais que indicam que a correção de uma propriedade Ć© melhor do que uma alternativa em tempo de execução: um aviso da Identificação Inteligente que aparece em quase todas as execuƧƵes e um script que ficou visivelmente mais lento desde que a alternativa comeƧou a ser acionada. Ambos apontam para um objeto cujas propriedades de identificação padrĆ£o nĆ£o sĆ£o mais adequadas para o aplicativo, e nĆ£o para uma falha pontual da interface do usuĆ”rio. O vĆdeo abaixo demonstra a correção em um formulĆ”rio de login real.
Clique aqui. se o vĆdeo nĆ£o estiver acessĆvel
Transcrição do vĆdeo: Principais conclusƵes
- A identificação inteligente torna a execução do script mais lenta, o que não é desejÔvel para conjuntos de scripts grandes ou executados com frequência.
- Para evitar isso completamente, altere as propriedades de identificação de objetos padrão em vez de depender da opção alternativa.
- In Identificação de ObjetoRemova ānameā das propriedades obrigatórias e substitua por āHTML idā para tornar o teste independente de alteraƧƵes de nome.
- Repita os mesmos passos assim que a lista de propriedades obrigatórias for atualizada.
- Se o nome for alterado posteriormente de "Submit" para "Login", o script serÔ executado sem acionar a Identificação Inteligente.
- Da mesma forma, se alguma propriedade obrigatória ou auxiliar de um objeto em teste mudar com frequência, substitua-a por uma propriedade mais estÔvel para manter a execução do script rÔpida.
- Ajustar propriedades Ć© uma habilidade que se desenvolve com a experiĆŖncia; quanto mais vocĆŖ usa a ferramenta, melhor fica.
Desativar a identificação inteligente usando VBScript
A Identificação Inteligente também pode ser desativada durante toda uma sessão de execução sem afetar o repositório de objetos, usando o DesativarReplayUsandoAlgoritmo Configuração de tempo de execução. Isso é útil quando um script deve falhar imediatamente em caso de qualquer incompatibilidade de propriedade, em vez de recorrer silenciosamente ao processo de eliminação.
' Disable Smart Identification for this run session Setting("DisableReplayUsingAlgorithm") = 1 Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury" ' Re-enable Smart Identification once the strict steps are done Setting("DisableReplayUsingAlgorithm") = 0
Mantenha a janela desativada o mais curta possĆvel. As etapas executadas dentro dela devem corresponder exatamente Ć descrição aprendida, de modo que qualquer desvio legĆtimo no aplicativo em teste cause uma falha imediata em vez de uma recuperação adequada.
Recursos
Baixe as pÔginas da web usadas no tutorial acima para praticar por conta própria.

