Wie man Funktionen in QTP/UFT in 3 Easy Steps

⚡ Intelligente Zusammenfassung

Funktionen in QTP/UFT Tester können wiederverwendbare VBScript-Logik in Bibliotheksdateien verpacken, die von jedem Test aufgerufen werden können. Dies reduziert Duplikate, vereinfacht die Wartung und beschleunigt die Automatisierungsentwicklung. UFT und QTP Projekte.

  • 📚 Definition: Eine Funktionsbibliothek ist eine .qfl- oder .vbs-Datei mit wiederverwendbaren VBScript-Funktionen. UFT Test kann anrufen.
  • Schaffung: Erstellen Sie eine Bibliothek über Datei > Neu > Funktionsbibliothek und schreiben Sie darin Standard-VBScript-Funktionsblöcke…Ende der Funktion.
  • 🔗 Verband: Binden Sie die Bibliothek über Datei > Einstellungen > Ressourcen > Funktionsbibliothek zuordnen ein, um ihre Funktionen dem Test zugänglich zu machen.
  • ▶ ️ Berufung: Eine Bibliotheksfunktion mit ty aufrufenping sein Name mit Argumenten innerhalb des Testskripts, genau wie ein eingebauter UFT Aussage.
  • 🗂️ Dateiformate: Wählen Sie .qfl als natives Format. UFT Editor oder .vbs für eine Klartextdatei, die überall lesbar ist, einschließlich Versionskontrolle.
  • ⚙️ Laden zur Laufzeit: Verwenden Sie LoadFunctionLibrary oder ExecuteFile, um eine Bibliothek programmatisch anstatt über den Ressourcendialog einzubinden.
  • 🧭 Disziplin benennen: Geben Sie jeder Funktion in allen zugehörigen Bibliotheken einen eindeutigen Namen, denn UFT Bei Namenskonflikten wird die zuletzt geladene Definition ausgeführt.
  • 📊 Reporting: Nachricht ersetzenBox Aufrufe mit Reporter.ReportEvent, sodass die Status „bestanden“, „fehlgeschlagen“ und „Warnung“ direkt im Reporter angezeigt werden. UFT Ergebnisbaum.

Wenn Sie Codeabschnitte haben, die Sie in Ihren Tests mehrmals verwenden müssen, empfiehlt sich die Erstellung einer benutzerdefinierten Funktion. Durch die Verwendung benutzerdefinierter Funktionen werden Ihre Tests kürzer und einfacher zu entwerfen, zu lesen und zu warten.

Ihre eigenen Funktionsbibliotheken in Micro Focus UFT kann enthalten VBScript Funktionen, Unterprogramme, Module usw.

Um eine Funktion aus einer Bibliothek in Ihrem Test zu verwenden, müssen Sie nur 3 einfache Schritte befolgen.

Eine Funktionsbibliothek unterscheidet sich von einer Aktion in UFTEine Funktion besitzt kein eigenes Objekt-Repository oder Datenblatt, kann aber von jeder Aktion oder jedem Test aufgerufen werden, sobald die Bibliothek verknüpft ist.

Das Kopieren und Einfügen derselben Schritte in jede Aktion vervielfacht den Wartungsaufwand, da eine einzige Änderung dann in jeder Kopie wiederholt werden muss. Eine Funktionsbibliothek löst dieses Problem, indem sie die Logik an einem zentralen Ort bündelt, auf den jede Aktion oder jeder Test im Projekt zugreifen kann.

3 einfache Schritte zur Verwendung einer Funktion aus einer Bibliothek in UFT/QTP

Schritt 1) Erstellen Sie eine neue Funktionsbibliothek in UFT or QTP durch Auswahl von Datei > Neu > Funktionsbibliothek. Es öffnet sich als neuer Tab in QTP.

Lasst uns eine sehr einfache Funktion erstellen, die eine Meldungsbox anzeigt.

Function Demo

MsgBox "This is a Test Function"

End Function

Bei jedem Aufruf dieser Funktion erscheint eine Meldungsbox. Eine einzelne Datei kann mehrere Funktionen enthalten; speichern Sie die Datei daher einmal und verwenden Sie sie in mehreren Tests wieder. UFT speichert eine Funktionsbibliothek mit einem .qfl Standardmäßig wird eine Erweiterung verwendet, obwohl es sich um eine einfache Erweiterung handelt. vbs Auch die Datei funktioniert, wie im nächsten Abschnitt erläutert wird.

Schritt 2) Verknüpfen Sie die Bibliothek mit Ihrem Test. Öffnen Sie Datei > Einstellungen > Ressourcen > Funktionsbibliothek verknüpfen und klicken Sie auf SpeichernWählen Sie die Funktionsbibliotheksdatei aus und klicken Sie auf OK.

Schritt 3) Der letzte Schritt besteht darin, die Funktion innerhalb des Testskripts aufzurufen. Sobald eine Bibliothek verknüpft ist, ist der Aufruf einer Funktion so einfach wie ty.ping seinen Namen und die Übergabe aller erforderlichen Argumente, wie unten gezeigt.

' Call the function from the associated library
Demo()

UFT lokalisiert Demo in der zugehörigen Bibliothek und führt es genau so aus, als wäre es lokal innerhalb des Tests geschrieben worden.

Wichtige Hinweise

  • Mithilfe von COM- und DCOM-Objekten lassen sich sehr komplexe Funktionen erstellen.
  • Tatsächlich bieten viele der Funktionen QTP kann mit VBScript programmiert werden.
  • Wir haben Automatisierungsingenieure gesehen, die es eher zu einem VB-Projekt als zu einem Automatisierungsprojekt machen
  • Unsere Empfehlung ist, sich auf 100 % Automatisierung zu konzentrieren, anstatt Ihre VB-Kenntnisse zur Schau zu stellen

Klicken Sie auf werden auf dieser Seite erläutert wenn das Video nicht zugänglich ist

Dateitypen von Funktionsbibliotheken: .qfl vs .vbs

UFT zwingt Sie nicht zu einem einzigen Dateiformat für eine Funktionsbibliothek. Der Funktionsbibliothekseditor speichert neue Dateien mit einem .qfl standardmäßig Erweiterung und UFT Akzeptiert auch Klartext vbs Datei, die in einem beliebigen Code-Editor erstellt wurde, weil a QTP/UFT Eine Funktionsbibliothek ist nichts anderes als gewöhnliches VBScript, das auf der Festplatte gespeichert ist; die beiden Formate verhalten sich zur Laufzeit identisch.

ASPEKT .QFL-Datei .VBS-Datei
Erstellt mit UFT Funktionsbibliothek-Editor Beliebiger Text- oder Code-Editor
Öffnet nach außen UFT Nein Ja, als Klartext
Versionskontrollfreundlichkeit Begrenzt Besser, da die Unterschiede lesbar sind.
Assoziationsmethode Gleiches gilt für beide Gleiches gilt für beide

Die Wahl hängt meist vom Team-Workflow und weniger von der Funktionalität ab. Eine einmalige Bibliothek, die schnell innerhalb von UFT funktioniert einwandfrei .qflWährend Bibliotheken, die in Git, SVN oder einem anderen Versionskontrollsystem verwaltet werden, üblicherweise als vbs Dateien werden bevorzugt, da Klartext bei Code-Reviews deutlich besser lesbare Unterschiede liefert. Beide Formate unterstützen den vollen Funktionsumfang von VBScript, einschließlich Klassen, Fehlerbehandlung und COM-Objekterstellung, und werden, wie im nächsten Abschnitt erläutert, auf exakt dieselbe Weise mit einem Test verknüpft.

Das Umbenennen der Dateiendung ändert nichts an dem Inhalt der Datei, daher kann eine bestehende Datei konvertiert werden. .qfl Datei auf vbsOder umgekehrt, es handelt sich lediglich um eine Umbenennung der Datei, gefolgt von der erneuten Zuordnung der umbenannten Datei zum Test.

Möglichkeiten, eine Funktionsbibliothek mit einem Test zu verknüpfen

Schritt 2 oben verwendet den Ressourcendialog, aber UFT Es bietet tatsächlich mehrere Möglichkeiten, eine Funktionsbibliothek mit einem Test zu verknüpfen, und die Wahl der richtigen Methode hängt davon ab, ob die Verknüpfung dauerhaft sein oder nur für einen einzelnen Testlauf gelten soll. Einem Test können gleichzeitig mehrere Bibliotheken zugeordnet sein. UFT Lädt sie in der Reihenfolge, in der sie in der Ressourcenliste erscheinen.

  1. Dialog „Funktionsbibliothek zuordnen“ (GUI): Öffnen Sie Datei > Einstellungen > Ressourcen > Funktionsbibliothek zuordnen, klicken Sie auf Hinzufügen und wählen Sie die Datei aus. UFT Diese Verknüpfung wird im Test selbst gespeichert, sodass die Bibliothek bei jedem Teststart automatisch geladen wird. Dies ist die in Schritt 2 beschriebene Methode und eignet sich gut als Standardwahl für jede Bibliothek, die in jedem Test eines Projekts benötigt wird.
  2. LoadFunctionLibrary-Anweisung: Rufen Sie LoadFunctionLibrary „Pfad“ innerhalb eines Skripts auf, um eine Bibliothek zur Laufzeit einzubinden, ohne den Ressourcendialog zu berühren. UFT Die Bibliothek wird für den Rest des Programmlaufs genau wie eine dialogbasierte Zuordnung behandelt, was praktisch ist, wenn der Bibliothekspfad dynamisch bestimmt wird.
  3. ExecuteFile-Anweisung: ExecuteFile „Pfad“ führt eine Skriptdatei aus und stellt deren Funktionen dem aktuellen Durchlauf zur Verfügung, aber UFT registriert die Datei nicht als tracked resource, so dass es niemals unter Zugehörige Funktionsbibliotheken in den Testeinstellungen erscheint.
  4. Automatisierungsobjektmodell (AOM): Eine externe VBScript-Datei kann gestartet werden UFTÖffnen Sie einen Test und fügen Sie eine Bibliothek programmatisch zu Test.Settings.Resources.Libraries hinzu. Build- oder Bereitstellungsskripte verwenden häufig diesen Ansatz, um dieselbe Bibliothek in einem Durchlauf für Dutzende von Tests zu konfigurieren.
' Load a library at run time from inside a script
LoadFunctionLibrary "C:\Automation\CommonFunctions.qfl"

' ExecuteFile works the same way, but UFT does not
' track the file as an associated resource
ExecuteFile "C:\Automation\CommonFunctions.qfl"

Egal für welche Methode Sie sich entscheiden, eine Bibliothek muss für die GUI- und AOM-Methoden nur einmal pro Test zugeordnet werden, während LoadFunctionLibrary und ExecuteFile bei jeder Skriptausführung erneut ausgeführt werden müssen, da es sich um gewöhnliche VBScript-Anweisungen und nicht um gespeicherte Einstellungen handelt.

Wenn eine Bibliothek nicht mehr benötigt wird, sollte sie aus der Ressourcenliste entfernt werden, anstatt sie verknüpft zu lassen, da eine ungenutzte Bibliothek immer noch eine Funktion mit demselben Namen überschatten kann, die Sie später einer anderen Bibliothek hinzufügen.

Best Practices für das Schreiben UFT/QTP Funktionsbibliotheken

Eine Funktionsbibliothek lohnt sich nur dann, wenn das gesamte Team ihr vertrauen und sie pflegen kann. Die folgenden Vorgehensweisen sorgen dafür, dass eine Bibliothek auch bei wachsender Größe zuverlässig bleibt.

  • Option Explicit verwenden: Füge es als erste Zeile jeder Bibliothek hinzu, damit UFT Markiert eine falsch geschriebene Variable, anstatt stillschweigend eine neue zu erstellen.
  • Funktionsnamen müssen eindeutig sein: Wenn zwei zusammengehörige Bibliotheken eine Funktion mit demselben Namen definieren, UFT Ruft die zuletzt geladene Datei auf, daher verursachen doppelte Namen stille, schwer zu identifizierende Probleme.tracund Fehler.
  • Rückgabewerte statt fest codierter Werte: Parameter akzeptieren und ein Ergebnis zurückgeben, wie im folgenden Beispiel, sodass dieselbe Funktion mehrere Tests anstatt nur einen durchführen kann.
  • Vermeiden Sie NachrichtenBox in Produktionsskripten: Eine Meldungsbox unterbricht die Ausführung, bis jemand auf OK klickt. Reporter.ReportEvent Stattdessen werden die Status „bestanden“, „fehlgeschlagen“ und „Warnung“ direkt und ohne Unterbrechung im Ergebnisbaum protokolliert.ping den Lauf.
  • Gruppieren Sie nach Domäne, nicht nach Bequemlichkeit: Speichern Sie Anmeldefunktionen, Datenbankfunktionen und UI-Hilfsfunktionen in separaten Dateien, damit jeder Test nur das aufrufen kann, was er tatsächlich benötigt.
  • Bibliotheken unter Versionskontrolle halten: Speichern Sie die Funktionsbibliotheksdateien im selben Repository wie den Rest des Automatisierungsprojekts, damit bei einem Rollback des Projekts auch alle gemeinsam genutzten Funktionen rückgängig gemacht werden.
Function AddNumbers(ByVal num1, ByVal num2)
    AddNumbers = num1 + num2
End Function

Dim result
result = AddNumbers(10, 20)
Reporter.ReportEvent micPass, "Sum Calculation", "The result is " & result

Diese Gewohnheiten frühzeitig anzuwenden, kostet wenig, sie nachträglich in eine große, unorganisierte Bibliothek einzuführen, ist jedoch weitaus teurer.

Häufig gestellte Fragen

Eine Funktion kann einen Wert an den Aufrufer zurückgeben, eine Subroutine hingegen nicht. Verwenden Sie eine Funktion, wenn ein Skript ein Ergebnis benötigt, beispielsweise einen berechneten Wert oder ein Statusflag (bestanden/nicht bestanden), und eine Subroutine für eine in sich abgeschlossene Aktion wie das Klicken auf eine Schaltfläche.

UFT Es wird kein Fehler ausgelöst. Es wird stillschweigend die zuletzt geladene Definition aufgerufen, basierend auf der Reihenfolge der Bibliotheken in den Ressourceneinstellungen. Daher können identische Namen in zwei Bibliotheken zu verwirrenden und schwer nachvollziehbaren Ergebnissen führen.trace Ergebnisse.

Ja. Sobald beide Bibliotheken mit demselben Test verknüpft sind, UFT Alle Funktionen werden in einen einzigen gemeinsamen Namensraum geladen, sodass jede Funktion in einer Bibliothek eine in einer anderen Bibliothek definierte Funktion aufrufen kann.

Ja. KI-Assistenten können VBScript-Funktionen aus einer Beschreibung der erforderlichen Schritte in einfacher Sprache erstellen, allerdings sollte ein Tester den generierten Code vor der Verwendung dennoch auf korrekte Objektverweise und Fehlerbehandlung überprüfen.

KI-Tools können VBScript-Logik in Sprachen wie Python or Java als Ausgangsentwurf, aber ein QA-Ingenieur muss die Objektidentifizierung und die Geschäftslogik überprüfen, da die automatische Übersetzung selten beides perfekt beibehält.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: