ObtenerPropiedadDeRo, ObtenerPropiedadEn QTP/UFT con ejemplo

⚡ Resumen inteligente

Object Spy revela las propiedades y los métodos de cualquier control en la aplicación bajo prueba, mientras que GetROProperty, GetTOProperty y SetTOProperty leen y escriben esos valores de propiedad desde un QTP or UFT Un script por ejecución.

  • 🔎 Primero, el espía de objetos: Apúntelo hacia un control para ver las propiedades del objeto de prueba, las propiedades de tiempo de ejecución, los métodos y la jerarquía completa.
  • ☑️ Dos mundos de objetos: El objeto de prueba es la descripción almacenada; el objeto de tiempo de ejecución es el control en vivo de la aplicación.
  • Obtener propiedad RO: Lee el valor actual del control en tiempo real, por lo que la aplicación debe estar abierta y el objeto debe existir.
  • 🧪 Obtener propiedad: En su lugar, lee la descripción almacenada, por lo que los dos métodos pueden devolver valores diferentes.
  • 🛠️ Establecer propiedad: Modifica la descripción únicamente para esta ejecución; el repositorio no se modifica y el cambio se descarta al finalizar.
  • 📌 No SetROProperty: Un script puede leer la aplicación, pero no puede escribir una propiedad en ella.

Object Spy y los métodos GetROProperty, GetTOProperty y SetTOProperty en QTP y UFT Un

Este tutorial demuestra Espía de objetos.

Object Spy puede ayudar a determinar las propiedades y métodos útiles asociados con un objeto en su entorno.

El enfoque HP/Micro UFT Tutoriales también describe ObtenerPropiedadRO, ObtenerPropiedadTOPreperty y EstablecerPropiedadTOPreperty.

⚠️ Nota de versión: La herramienta descrita aquí se lanzó como HP QuickTest Professional, se convirtió en Micro Focus Unified Functional Testing y se vende hoy como OpenText Pruebas funcionales (UFT Uno)Object Spy y los tres métodos siguen funcionando exactamente como se describe a continuación.

Haga clic en aquí si el video no es accesible

Espía de objetos

  • Object Spy es una función en QTP Mediante esta herramienta podrá ver las propiedades y los métodos de los objetos, tanto en tiempo de prueba como en tiempo de ejecución.
  • También proporciona la sintaxis de un método seleccionado.
  • Object Spy muestra la jerarquía completa del objeto que ha seleccionado.

Esa jerarquía es importante, porque el nombre de una propiedad copiado de Object Spy es exactamente la cadena que esperan los tres métodos siguientes. Por lo tanto, examinar un objeto es el primer paso en casi todas las tareas de recuperación de propiedades.

ObtenerPropiedadRO

  • GetROProperty es un método integrado que se utiliza para recuperar el valor en tiempo de ejecución de una propiedad de un objeto.

El uso de GetROProperty implica 4 pasos:

  1. Registre el objeto en el que desea utilizar GetROProperty en Repositorio de objetos.
  2. El objeto registrado identifica la propiedad de tiempo de ejecución que podría utilizarse. Puede usar Object Spy.
  3. Utilice el método GetROProperty para recuperar la propiedad de tiempo de ejecución identificada y almacenar el valor en una variable.
  4. Utilice este valor para realizar deducciones adicionales.

Dado que el valor se lee del control en tiempo real, la aplicación debe estar abierta y el objeto debe existir realmente en la pantalla cuando se ejecuta la línea.

Establecer propiedad y obtener propiedad

  • Consideremos un botón web almacenado en el repositorio de objetos.
  • Cuando se ejecuta la prueba QTP crea una copia de este objeto llamada Objeto de prueba y la compara con el Objeto de tiempo de ejecución.
  • Usando GetTOProperty puedes recuperar el valor de una propiedad del objeto Test.
  • Mediante SetTOProperty puedes cambiar el valor de una propiedad de un objeto de prueba.
  • Cuando se completa la prueba, este objeto de prueba se descarta, al igual que cualquier modificación que haya realizado en las propiedades del objeto mediante SetTOProperty.
  • Cuando se vuelve a ejecutar la prueba, se crea una nueva copia del objeto de prueba con los valores de propiedad originales almacenados en el repositorio de objetos.
  • Puedes considerar usar GetTOProperty y SetTOProperty cuando tu script de prueba tenga varias líneas de código y tu entorno sea esporádico.
  • Cabe destacar que no existe SetROProperty.

Sintaxis y ejemplos

Los tres métodos se invocan sobre un objeto de prueba situado al final de su jerarquía, y los tres reciben como cadena de texto el nombre de una propiedad de descripción. La tabla muestra la firma de cada uno.

Método Sintaxis Lee o escribe
ObtenerPropiedadRO objeto.ObtenerPropiedadRO(Propiedad) Lee el control en tiempo real en la aplicación.
Obtener propiedades objeto.ObtenerPropiedad(Propiedad) Lee la descripción del objeto de prueba almacenado.
Establecer propiedad objeto.EstablecerPropiedad, Valor Escribe la descripción del objeto de prueba solo para esta ejecución.

Leer un valor en tiempo de ejecución es una sola instrucción. Este ejemplo, tomado de la Referencia oficial para recuperar y establecer valores, obtiene la dirección de destino de un enlace durante la sesión de ejecución.

link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")

Escribir y luego leer la propiedad de un objeto de prueba es igual de sencillo. El siguiente par de comandos establece el nombre del botón "Enviar" a mi botón y lee el mismo valor inmediatamente.

Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button"
ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")

Una verificación típica combina ambas ideas: leer el valor en tiempo de ejecución con GetROProperty y luego compararlo con lo que espera la prueba.

strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection")
If strValue = "Acapulco" Then
    Reporter.ReportEvent micPass, "Default city", "Default city is correct"
Else
    Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue
End If

Diferencia entre GetROProperty y GetTOProperty

Los dos nombres se diferencian en una letra y son la pareja que más confusión genera en la herramienta. RO significa objeto de tiempo de ejecución, TO significa objeto de prueba, y cada uno lee desde un lugar diferente.

Punto de comparación ObtenerPropiedadRO Obtener propiedades
Fuente del valor El control en vivo en la aplicación en ejecución La descripción almacenada para el objeto de prueba
La solicitud debe estar abierta. Sí: No
Se observa un cambio en SetTOProperty. No Sí, para la ejecución actual.
Uso típico Verificar lo que el usuario realmente ve Comprobar o depurar cómo se identifica el objeto.
colocador de emparejamiento Ninguno: no existe SetROProperty. Establecer propiedad

Un ejemplo práctico hace evidente la diferencia. Asigna un ID HTML a una lista que no contiene ninguno y luego léelo en ambos sentidos: GetROProperty devuelve una cadena vacía porque la aplicación nunca cambió, mientras que GetTOProperty devuelve el valor que se acaba de escribir en la descripción.

Errores comunes y cómo solucionarlos

La recuperación de propiedades falla por un pequeño número de razones predecibles. La tabla enumera las que los evaluadores encuentran con mayor frecuencia.

Síntoma Causa Solución
La llamada devuelve una cadena vacía. El nombre de la propiedad es incorrecto o el objeto no la expone. Vuelve a examinar el objeto y copia el nombre de la propiedad exactamente como aparece.
Objeto no encontrado en la línea GetROProperty El control aún no se había renderizado Agregue un paso de sincronización antes de la lectura.
GetROProperty ignora un cambio de SetTOProperty Los dos métodos abordan objetos diferentes por diseño. Lee el cambio con GetTOProperty en su lugar.
Un cambio en SetTOProperty desaparece Las ediciones de los objetos de prueba solo duran durante la ejecución actual. Edite el objeto en el repositorio o utilice programación descriptiva
SetROProperty genera un error de sintaxis. No existe tal método. Ejecute la aplicación mediante un paso normal como Establecer o Hacer clic

Dos hábitos previenen la mayoría de estos: espiar el control antes de escribir la línea en lugar de adivinar el nombre de la propiedad y mantener VBScript Las llamadas de recuperación se realizan cerca del paso que necesita el valor, por lo que el objeto todavía está en pantalla cuando se realiza la lectura.

Preguntas Frecuentes

Object Spy muestra las propiedades de identificación que la herramienta posee para esa clase, además de las propiedades nativas que expone el navegador. Los valores de los atributos y estilos se obtienen mediante los prefijos de atributo y estilo dentro de la cadena de propiedades.

Un objeto en tiempo de ejecución pertenece a la aplicación, no a la prueba, por lo que la herramienta no escribirá en él. Para cambiar el contenido de la aplicación, controle la acción con un paso normal como Establecer, Seleccionar o Hacer clic.

No. El objeto de prueba temporal se descarta al finalizar la ejecución y, la próxima vez, se crea una copia nueva a partir del repositorio. Los cambios permanentes deben guardarse en el propio repositorio de objetos.

Sí. Un objeto descrito construido en línea acepta las mismas llamadas, por lo que GetROProperty funciona con programación descriptiva También. GetTOProperty devuelve el valor de la descripción en línea en lugar de una entrada almacenada.

Las herramientas de localización asistidas por IA clasifican varias propiedades candidatas para el mismo control y corrigen una descripción defectuosa cuando cambia un atributo. Esto reduce el ciclo de inspección manual, aunque la propiedad sugerida aún requiere una verificación humana.

Copilot completa la jerarquía y la llamada al método una vez que encuentra algunas líneas similares en el archivo. No puede conocer los nombres reales de los objetos ni las propiedades que expone el control, por lo que debe verificar cada cadena generada en Object Spy.

Object Spy es una herramienta de inspección que muestra valores mientras se compila el script. Un punto de control es un paso que se ejecuta dentro de la prueba e informa si se ha superado o no la prueba en comparación con un valor esperado almacenado.

Solo si el objeto aún existe en la aplicación. Un control que no se ha renderizado o que se ha eliminado de la página genera un error de objeto no encontrado en lugar de devolver un valor vacío.

Resumir este post con: