vb.net - servidor - configurar sql server 2012 para conexiones locales
Mercury Quick Test Pro y máquinas virtuales: funciona desde una máquina cliente pero no desde otra (5)
Si no está utilizando el modo experto y / o está permitiendo que QTP haga la mayor parte del trabajo para crear sus objetos de repositorio, entonces sí está haciendo referencia a todo por píxeles.
Creo todos los objetos de mi repositorio a mano, viendo la fuente (en el caso de las pruebas automatizadas de aplicaciones web) y utilizando el Object Spy para obtener ayuda donde sea necesario. Me refiero a no tener ninguna información de posicionamiento como parte de la definición de mi objeto, por el mismo motivo por el que se está ejecutando.
Para las partes de mi aplicación web que interactuó con Windows (abrir un archivo para cargar, etc.), el Object Spy fue esencial para la prueba y el error necesarios para crear un identificador único para crear el objeto de repositorio. Pero puede hacerse.
Ex1: Diálogo de búsqueda de archivos
text = "Elegir archivo"
nativeclass = # 32770 (¿Aparentemente un Windows VooDoo para un diálogo de abrir archivo?)
Ex2: cuadro de texto de nombre de archivo en el cuadro de diálogo Buscar
nativeclass = "Editar"
texto adjunto "Archivo y nombre:" (más Windows VooDoo? No funcionaría para mí sin el "&")
Ex3: Botón Abrir en el diálogo:
text = "& Open"
clase de objeto = "Botón"
¡Buena suerte!
Tengo una máquina virtual (VMware) con Mercury Quick Test Professional 9.2 instalado. Tengo un script para probar una aplicación, escrito en VB.NET usando la biblioteca de Infragistics.
Si tengo acceso a esta máquina virtual usando mi computadora portátil (usando Escritorio remoto), todo funciona bien, la secuencia de comandos se completa sin problemas. Mi computadora portátil ejecuta XP, con el tema Windows Classic.
Si tengo acceso a esta máquina virtual usando otra máquina (usando Escritorio remoto), la secuencia de comandos comienza bien, pero se detiene a la mitad, sin ningún mensaje de error de QTP, nada. Esta máquina ejecuta XP, con el tema Windows Classic.
Una diferencia entre las dos configuraciones es el tamaño de la pantalla, la computadora portátil es 1920x1280, otra máquina 1280x1024.
El paso donde se detiene el script implica marcar una casilla dentro de un UltraWinGrid. La casilla de verificación se muestra, está en la pantalla en ambos casos.
¿Alguien ha tenido este problema antes, o tiene alguna idea de por qué el comportamiento es diferente entre las dos máquinas?
Gracias.
Unas pocas cosas:
Debería poder depurar fácilmente en la máquina virtual, simplemente espere a que se detenga, vaya a su repositorio de objetos y vea si puede identificar el objeto. Si no, utilice el objeto espía para descubrir qué propiedades son diferentes entre los sistemas operativos. Si hay una diferencia, entonces siempre puede establecer esa propiedad en una expresión regular y hacer que verifique ambas posibilidades.
Asumiendo que ese no es el problema, nos hemos encontrado con problemas al usar el escritorio remoto con QTP si la ventana remota se cierra o se minimiza. Para nosotros, fue un problema donde el portapapeles no se puede cambiar cuando una ventana RDP no está visible, pero podría haber otras sorpresas al usar QTP de esa manera.
Punto de aclaración: Usted mencionó que QTP se detiene sin mensaje de error. ¿Eso también significa que el archivo de registro de resultados de la prueba tampoco tiene un mensaje de error? Si el registro tiene alguna información, eso puede ser útil para diagnosticar el problema. ¿Podría compartir las líneas de código en el punto donde falla la secuencia de comandos?
Además, el escritorio remoto cambiará el tamaño del escritorio en la máquina remota. Aunque las secuencias de comandos QTP no se basan en coordenadas inherentes, las declaraciones individuales se pueden basar en coordenadas en relación con un objeto. La resolución podría ser un problema en ese sentido. Por ejemplo, imagina que tienes una línea como Button.Click (5, 150) grabada en una máquina de mayor resolución. Pero si intenta reproducirlo en una máquina de menor resolución, y el 150 está fuera del alcance del objeto en la resolución más baja, podría causar un problema.
DE ACUERDO. He encontrado el problema. De hecho, el guión fallaba silenciosamente porque eso es lo que la persona que escribió el guión le dijo que hiciera. No pudo validar algo que estaba fuera de la pantalla, por lo que el script falló.
El problema era la definición QTP de ''fuera de pantalla''. Tengo dos pantallas conectadas a mi computadora portátil, la pantalla de la computadora portátil (1920x1200) y otra pantalla (1280x1024). Me conecto a la VM para QTP usando escritorio remoto, y usa la configuración de la pantalla para la computadora portátil. Esto significa que cuando lance mi secuencia de comandos QTP y la mueva a la otra pantalla, no encaja, por lo que la pantalla ya no se maximiza y el objeto está parcialmente fuera de la pantalla, por lo que no se puede encontrar.
La solución es simple: en el Escritorio remoto, use la pestaña Pantalla y configure el tamaño de la pantalla a un tamaño de 1280x1024, y QTP ya no tendrá más problemas.
Voilà.
QTP no utiliza coordenadas de pantalla, excepto como último recurso, si los objetos están identificados como objetos de alto nivel ( SwfTable
en este caso) debe estar bien, si QTP no reconoce el objeto, vuelve a WinObject
y las coordenadas de pantalla.
Si está utilizando Infragistics, debe saber que extienden la compatibilidad de QTP con su producto TestAdvantage , que probablemente resolverá su problema.
Editar: @ MatthieuF dijo:
De hecho, usamos el complemento Infragistics para QTP, y todavía tenemos el problema
¿Puedes darme un ejemplo de una línea que falla?