Cómo funciona la identificación de objetos en QTP/UFT?

⚡ Resumen inteligente

Identificación de objetos en QTP/UFT Determina cómo la herramienta reconoce cada elemento de la interfaz gráfica de usuario durante una prueba, comparando las propiedades almacenadas del objeto de prueba con las propiedades del objeto en tiempo de ejecución en tiempo real, de modo que los scripts sigan funcionando incluso cuando cambie el diseño de la pantalla.

  • 🎯 Modelo de objetos de prueba: UFT En cada paso, compara un objeto de prueba almacenado con el objeto de tiempo de ejecución en vivo para identificar los controles independientemente de la posición en la pantalla.
  • 🗂️ Propiedades obligatorias: UFT Siempre registra un conjunto predeterminado de propiedades para cada clase de objeto dentro del Repositorio de objetos.
  • 🧩 Propiedades de asistencia: UFT Agrega propiedades de respaldo una por una solo cuando el conjunto obligatorio por sí solo no puede construir una descripción única.
  • ⚙️ Diálogo de identificación de objetos: La opción Herramientas > Identificación de objetos permite a los evaluadores agregar, eliminar o reordenar propiedades por entorno y clase de objeto.
  • 🇧🇷 Espía de objetos: Coloca el cursor sobre cualquier control para inspeccionar sus propiedades de objeto de prueba y de tiempo de ejecución antes de decidir en cuáles confiar.
  • 🔢 Identificadores ordinales: El índice, la ubicación y la hora de creación resuelven los empates entre los objetos que permanecen idénticos después de cada comprobación de propiedades.
  • 🧠 Identificación inteligente: Este mecanismo de reserva se ejecuta antes que los identificadores ordinales y, a menudo, recupera un objeto cuya descripción aprendida se ha roto.

¿Qué es la identificación de objetos en? UFT/QTP?

La identificación de objetos es el mecanismo UFT/QTP Se utiliza para reconocer un elemento de la interfaz gráfica de usuario en la pantalla para que un script pueda actuar sobre él de forma fiable, ejecución tras ejecución. Durante una sesión de grabación, UFT Estudia un pequeño conjunto de propiedades del objeto que se encuentra bajo el puntero del ratón y las almacena; durante la reproducción, compara esos valores almacenados con las propiedades de cada objeto presente y elige el que coincide de forma única, independientemente de la posición actual de ese objeto en la pantalla.

El objeto almacenado, junto con las propiedades UFT recuerda por ello, se llama el Objeto de prueba. El elemento correspondiente que existe en pantalla mientras se ejecuta la prueba es el Objeto de tiempo de ejecuciónComparar ambos en cada paso es la base de lo que Micro Focus llama el Modelo de objetos de pruebay es por eso que un UFT El script sigue funcionando incluso después de que un botón se mueva unos píxeles o se cambie el estilo de una página.

Repositorio de objetos y complementos

UFT guarda cada objeto de prueba aprendido, junto con sus propiedades almacenadas, dentro del Repositorio de objetos. Add-ins tell Examen rápido Se conoce de antemano a qué tecnología pertenece una pantalla, de modo que la herramienta ya sabe qué conjunto de propiedades se aplica y no tiene que adivinar, lo que reduce el tiempo necesario para aprender un objeto.

Haga clic en aquí si el video no es accesible

Cada objeto UFT Los registros pueden contener docenas de propiedades. En un entorno web, un solo botón puede mostrar su nombre, etiqueta HTML, tipo, clase, índice y más. Registrar todas estas propiedades para cada objeto es técnicamente posible, pero rara vez resulta útil, como muestra la siguiente imagen para una entrada típica del repositorio de objetos.

Repositorio de objetos

If UFT Si se intentara recordar todas las propiedades disponibles para cada objeto, el repositorio de objetos aumentaría de tamaño y la ejecución del script se ralentizaría notablemente. Para evitar eso, QTP no guarda todas las propiedades por defecto; guarda un conjunto pequeño y típico para cada tipo de objeto, uno elegido para hacer Identificación única Es posible sin la sobrecarga. Esta lista reducida de propiedades, que se decide por separado para cada entorno y clase de objeto, se configura en los ajustes de identificación de objetos, que se describen a continuación.

Objeto Descriptión: Propiedades obligatorias y de apoyo

La propiedad de un objeto y su valor juntos forman lo que UFT llama al Objeto Description — la combinación exacta que usa la herramienta para seleccionar un elemento de entre todos los demás objetos de la página. Para un WebButton, por ejemplo, la propiedad nombre con el valor Iniciar sesión Por sí solo suele ser suficiente para formar un objeto utilizable. Description.

Para revisar o cambiar este comportamiento, abra Herramientas > Identificación de objetos interior UFTEl cuadro de diálogo Identificación de objetos muestra todos los entornos cargados actualmente; al seleccionar uno, se rellenan automáticamente las clases de objetos. UFT lo admite, y el panel de la derecha muestra exactamente qué propiedades se almacenan para los objetos de esa clase. La lista está dividida en dos grupos:

  1. Propiedades obligatorias Se almacenan de forma predeterminada para cada objeto de esa clase, independientemente de si son realmente necesarios para distinguirlo de sus vecinos.
  2. Propiedades de asistencia se almacenan solo cuando las propiedades obligatorias por sí solas no pueden construir una descripción única. UFT Trabaja en esta lista propiedad por propiedad hasta que el objeto se vuelve único.

Una imagen web facilita la visualización de la regla en la práctica.

Objeto DescriptPropiedades iónicas, obligatorias y de asistencia

  • UFT Siempre almacena el texto alternativo, la etiqueta HTML y el tipo de imagen para una imagen web, incluso cuando el texto alternativo por sí solo ya es único.
  • Si las propiedades obligatorias no pueden crear una descripción única, UFT agrega la propiedad de clase de la lista de asistencia.
  • Una vez que una propiedad hace que la descripción sea única, UFT Deja de añadir más: omite el nombre del archivo y la altura si la clase ya era suficiente, omite la altura si se necesitaba el nombre del archivo, y así sucesivamente.
  • Supongamos que solo la propiedad de clase termina registrada en el momento del registro. En tiempo de ejecución, UFT Ya no distingue qué propiedades eran obligatorias y cuáles eran de apoyo; simplemente compara cada propiedad de la descripción guardada con el objeto en tiempo de ejecución.
  • Si ni siquiera una sola propiedad almacenada coincide, el paso falla: una descripción única es binaria, no una coincidencia que se realice con el mejor esfuerzo posible.
Aspecto Propiedades obligatorias Propiedades de asistencia
Cuando se almacena Siempre, para cada objeto de esa clase Solo cuando las propiedades obligatorias no pueden formar una descripción única
Configurado en Diálogo de identificación de objetos, Lista obligatoria Diálogo de identificación de objetos, Lista de asistencia
orden de uso Aprendió primero, incondicionalmente Se añaden uno a uno hasta que el objeto sea único.
Tratamiento en tiempo de ejecución Comparado igual que las propiedades de asistencia Comparado igual que las propiedades obligatorias

El siguiente video explica paso a paso este flujo de trabajo, que compara lo obligatorio con lo asistido.

El cuadro de diálogo de identificación de objetos Box y espía de objetos

El cuadro de diálogo de identificación de objetos no es solo un visor, es donde un probador ajusta la agresividad UFT Identifica objetos para todo un entorno. Reordenar, agregar o eliminar una propiedad aquí cambia lo que se aprende para cada objeto de esa clase a partir de ese momento, no solo para el que se está registrando actualmente. El flujo de trabajo típico es el siguiente:

  1. Abra UFT e ir a Herramientas > Identificación de objetos.
  2. Seleccione un entorno (Web, Windows, Javay así sucesivamente) desde el menú desplegable.
  3. Seleccione una clase de objeto, como WebButton o WinEdit, de la lista de la izquierda.
  4. Mueva las propiedades entre las listas Obligatorias y de Asistencia, o reordene la lista de Asistencia para controlar qué propiedad UFT intenta primero.
  5. Habilite o deshabilite la identificación inteligente para esa clase mediante la casilla de verificación situada en la parte superior del panel.

Los cambios realizados aquí se aplicarán la próxima vez. UFT aprende un objeto de esa clase; las entradas ya guardadas en el Repositorio de objetos conservan su descripción original hasta que el objeto se vuelve a registrar o se actualiza manualmente.

Uso de Object Spy para inspeccionar propiedades

Antes de editar la lista obligatoria o de asistencia, la mayoría de los evaluadores comprueban cómo son realmente las propiedades de un objeto con Espía de objetosAl apuntar el cursor espía a cualquier control de la aplicación bajo prueba, se muestran sus propiedades de objeto de prueba y de tiempo de ejecución una al lado de la otra, junto con los métodos. UFT Se puede recurrir a ella, lo cual resulta útil cuando una propiedad obligatoria cambia constantemente entre compilaciones y necesita ser reemplazada por una más estable.

Identificadores ordinales: Índice, Ubicación y Fecha de creación

A veces, incluso con todas las propiedades obligatorias y de asistencia, dos o más objetos siguen pareciendo idénticos; por ejemplo, tres casillas de verificación con el mismo nombre, clase y etiqueta. Precisamente para esta situación UFT recurre a un identificador ordinal, un valor de respaldo que clasifica objetos idénticos según su posición en lugar de sus propiedades.

Identificador ordinal Propiedad Orden asignada Se aplica a
Home Home Orden en que aparece el objeto en el código fuente subyacente, comenzando en 0. Cualquier clase de objeto
Ubicacion Ubicacion De arriba abajo, luego de izquierda a derecha en la pantalla, comenzando en 0 Cualquier clase de objeto
Tiempo de creación Tiempo de creación Orden en que se abrió la ventana del navegador, comenzando en 0 Solo objetos del navegador

UFT Solo se aprende un identificador ordinal cuando las propiedades obligatorias y auxiliares realmente no pueden diferenciar dos objetos, ya que el valor es relativo y puede cambiar si la maquetación de la página se modifica, aunque el objeto en sí no lo haga. El fragmento de VBScript que aparece a continuación utiliza Index para hacer clic en el segundo de dos enlaces con el mismo nombre.

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

Los valores de Índice y Ubicación son específicos de la clase de objeto nombrada en la instrucción, por lo que Índice:=3 En un WebEdit, la búsqueda se realiza únicamente entre objetos WebEdit, mientras que el mismo valor en un WebElement genérico se cuenta en todos los objetos web de la página, independientemente del tipo.

Dónde encaja la identificación inteligente

Identificación de objetos en UFT no se detiene en la descripción aprendida. Cuando no se puede encontrar una coincidencia única, UFT funciona a través del proceso en un orden fijo: primero verifica las propiedades obligatorias y de asistencia aprendidas, luego cualquier identificador de relación visual, luego Identificación inteligente si ese mecanismo está habilitado para la clase, y solo como último recurso un identificador ordinal.

La identificación inteligente se sitúa deliberadamente entre la descripción aprendida y el identificador ordinal. Reconstruye una lista de candidatos utilizando las propiedades principales de una clase y la reduce con las opcionales, por lo que a menudo puede recuperar un objeto cuya descripción aprendida se ha roto —por ejemplo, un botón renombrado— sin necesidad de acceder al repositorio de objetos. Dado que este paso de búsqueda adicional consume tiempo, la mayoría de los equipos la habilitan para clases con identificación frágil y recurren a los identificadores ordinales solo cuando la posición es realmente el único factor diferenciador restante, como en el caso de un conjunto de botones de opción sin etiquetar.

Preguntas Frecuentes

El repositorio de objetos almacena cada objeto de prueba aprendido y sus propiedades guardadas. La configuración de identificación de objetos, que se abre desde Herramientas > Identificación de objetos, controla qué propiedades UFT En primer lugar, se registran los datos en ese repositorio para cada clase de objeto.

UFT Funciona mediante identificadores de relación visual, identificación inteligente y, finalmente, un identificador ordinal. Si ninguno de estos produce una sola coincidencia, el paso genera un error en tiempo de ejecución porque ningún objeto satisface todas las propiedades almacenadas.

Registrar todas las propiedades disponibles sobrecargaría el repositorio de objetos y ralentizaría la ejecución de los scripts. UFT En su lugar, guarda un conjunto pequeño y típico por clase de objeto, añadiendo propiedades auxiliares solo cuando las obligatorias no pueden formar una descripción única.

Sí. Las herramientas con asistencia de IA pueden revisar el tráfico de producción o la estructura del DOM para sugerir propiedades más estables y menos frágiles antes de la grabación, y pueden marcar los objetos cuyas propiedades obligatorias cambian con frecuencia entre compilaciones; los evaluadores aún verifican las sugerencias.

No del todo. Los localizadores autorreparables reducen los fallos derivados de elementos renombrados o movidos, pero los identificadores ordinales siguen resolviendo objetos que son realmente idénticos en todas sus propiedades, como varias casillas de verificación sin etiquetar seguidas.

Resumir este post con: