Mercury Quick Test Pro und virtuelle Maschinen: Arbeiten von einem Client-Rechner, aber nicht einem anderen

StackOverflow https://stackoverflow.com/questions/91364

  •  01-07-2019
  •  | 
  •  

Frage

Ich habe eine virtuelle Maschine (VMware) mit Mercury Quick Test Professionelle 9.2 installiert. Ich habe ein Skript, um eine Anwendung zu testen, geschrieben in VB.NET die Infragistics-Bibliothek.

Wenn ich diese virtuelle Maschine mit meinem Laptop Zugriff (Remote Desktop), funktioniert alles einwandfrei, vervollständigt das Skript, ohne ein Problem. Mein Laptop läuft XP mit klassischem Windows-Thema.

Wenn ich diese virtuelle Maschine zugreifen eine andere Maschine (mit Remote Desktop), startet das Skript in Ordnung, aber stoppt auf halbem Weg durch, ohne keine Fehlermeldung von QTP, nichts. Diese Maschine läuft XP mit klassischem Windows-Thema.

Ein Unterschied zwischen den beiden Konfigurationen ist die Größe des Bildschirms wird der Laptop 1920x1280, andere Maschine 1280x1024.

Der Schritt, in dem das Skript stoppt beinhaltet eine Checkbox innerhalb eines UltraWinGrid überprüfen. Die Checkbox selbst angezeigt wird, ist auf dem Bildschirm in beiden Fällen.

Hat jemand dieses Problem hatte vor, oder eine Idee, warum das Verhalten zwischen den beiden Maschinen unterscheidet?

Danke.

War es hilfreich?

Lösung

OK. Ich habe das Problem gefunden. In der Tat war das Skript leise scheitern, weil das ist, was die Person, die das Skript, es zu tun, sagte geschrieben. Es kann nicht etwas validieren, die außerhalb des Bildschirms war, so dass das Skript fehlgeschlagen.

Das Problem war die QTP Definition von 'außerhalb des Bildschirms'. Ich habe zwei Bildschirme an meinen Laptop angeschlossen, der Bildschirm für den Laptop selbst (1920x1200) und einen anderen Bildschirm (1280x1024). Ich verbinde mit dem VM für QTP Remote-Desktop verwenden, und es verwendet die Einstellungen des Bildschirms für den Laptop. Das bedeutet, dass, wenn ich meine QTP Skript starten, und es auf den anderen Bildschirm bewegen, es nicht paßt, so wird der Bildschirm nicht mehr maximiert, und das Objekt teilweise außerhalb des Bildschirms, so kann nicht gefunden werden.

Die Lösung ist einfach:. In der Remote Desktop, verwenden Sie die Registerkarte Anzeige, und stellen Sie die Größe des Bildschirms auf eine Größe zu 1280x1024 und QTP hat keine Probleme mehr

Voilà.

Andere Tipps

Wenn Sie nicht Expert-Modus verwenden und / oder erlauben QTP die meiste Arbeit zu tun, um Ihre Repository-Objekte zu erstellen, dann ja, es verweist auf alles von Pixeln.

Ich schaffe alle meine Repository-Objekte mit der Hand, um die Quelle sehen (im Falle von automatisierten Web-Anwendungstests) und der Objekt Spy für Hilfe bei der Verwendung, wo nötig. Ich mache einen Punkt nicht als Teil meiner Objektdefinition jede Positionierungsinformationen haben, aus dem Grund, Sie zu laufen.

Für die Teile meines Web-app, die mit Windows (Öffnen eine Datei zu laden, etc.) interagierten das Objekt Spy war wesentlich für den Versuch und Irrtum notwendig, um eine eindeutige Kennung für die Erstellung des Repository-Objekts zu erstellen. Aber es kann getan werden.

Ex1: Datei Browse-Dialog
text = "Datei auswählen"
nativeclass = # 32770 (anscheinend einige Windows-VooDoo für eine Datei Öffnen-Dialog?)

Ex2: Dateiname Textbox in Browse-Dialog:
nativeclass = "Edit"
beigefügter Text "File & name:" (? mehr Windows-VooDoo Es woudn't für mich arbeiten, ohne die "&")

Ex3: Open-Knopf im Dialog:
text = "& Open"
Objekt class = "Button"

Good Luck!

Point of Klarstellung: Sie erwähnten, dass QTP ohne Fehlermeldung beendet. Bedeutet das, dass auch, dass die Testergebnisse Protokolldatei auch keine Fehlermeldung hat? Wenn das Protokoll keine Informationen hat, kann das hilfreich sein, das Problem bei der Diagnose. Könnten Sie die Codezeilen an dem Punkt, wenn sie die Skript fehlschlägt?

Außerdem wird Remote-Desktop, auf dem Remote-Computer ändern. Obwohl QTP Skripte sind von Natur aus nicht basierten Koordinaten können einzelne Aussagen Koordinatenbasis auf ein Objekt bezogen werden. Die Auflösung könnte ein Problem in dieser Hinsicht sein. Zum Beispiel vorstellen, dass Sie eine Zeile wie Button.Click hatte (5, 150) auf einer höheren Auflösung Maschine aufgezeichnet. Aber wenn man versucht, es auf eine niedrigere Auflösung Maschine wiedergeben, und die 150 ist außerhalb der Grenzen des Objekts auf der niedrigeren Auflösung, könnte es ein Problem verursachen.

QTP hat nicht Verwendung Bildschirmkoordinaten außer als letztes Mittel, wenn die Objekte als hohe Objekte (SwfTable in diesem Fall) identifiziert werden, sollten Sie in Ordnung sein, wenn jedoch QTP das nicht erkennt Objekt es zurück zu WinObject und Bildschirmkoordinaten fällt.

Wenn Sie mit Infragistics, dann sollten Sie wissen, dass sie QTP Unterstützung mit ihren MatthieuF sagte:

  

In der Tat, verwenden wir das Infragistics Plugin für QTP, und wir haben immer noch das Problem

Können Sie mir ein Beispiel für eine Zeile, die nicht funktioniert?

Ein paar Dinge:

Es soll möglich sein, einfach auf der VM zu debuggen - nur warten, bis es geht in Ihre Objekt-Repository zu stoppen, und sehen, ob es das Objekt identifizieren kann. Wenn kein dann Objekt Spion verwenden, um herauszufinden, welche Eigenschaften unterscheiden sich zwischen den OSes. Wenn es einen Unterschied gibt, dann können Sie immer dann gesetzt, dass Eigenschaft auf einen regulären Ausdruck und haben es für beide Möglichkeiten prüfen.
dass unter der Annahme, ist nicht das Problem, das wir Probleme mit Remote-Desktop mit QTP ausgeführt haben, wenn die Remote-Fenster geschlossen oder minimieren. Für uns war es ein Problem, dass die Zwischenablage nicht geändert werden kann, wenn ein RDP-Fenster nicht sichtbar ist, aber es könnten auch andere Überraschungen, wenn QTP auf diese Weise verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top