Wie man Transaktionen in QTP/UFT

โšก Intelligente Zusammenfassung

Transaktionen in UFT Eine MessgrรถรŸe fรผr die Laufzeit eines ausgewรคhlten Testabschnitts ist die sogenannte Wrap-Methode.ping die Schritte zwischen einer Startanweisung und einer Endanweisung, die die Dauer in den Laufergebnissen ausgibt.

  • ๐Ÿ”˜ Zweck: Eine Transaktion multipliziert einen einzelnen Geschรคftsprozess, wie beispielsweise die Buchung eines Fluges, anstatt den gesamten Test.
  • โ˜‘๏ธ Einfรผgung: รœber das Menรผ โ€žEinfรผgenโ€œ werden um die ausgewรคhlten Schritte herum Start- und End-Transaktionsanweisungen hinzugefรผgt.
  • โœ… Statements: Services.StartTransaction und Services.EndTransaction erledigen die gleiche Aufgabe direkt im Editor.
  • ๐Ÿงช Results: Die Abschlussmeldung enthรคlt Angaben zu Name, Status, Gesamtdauer und vergeudeter Zeit.
  • ๏ธ Verschachtelung: Transaktionen kรถnnen verschachtelt werden, aber zwei offene Transaktionen dรผrfen niemals denselben Namen haben.
  • โš ๏ธ Integration: LoadRunner und Business Process Monitor lesen nur Daten, die innerhalb einer Transaktion aufgezeichnet werden.

Wie man Transaktionen in QTP UFT

In UFT Eins/QTPSie kรถnnen die Laufzeit eines Testabschnitts messen, indem Sie Transaktionen definieren. Transaktionen innerhalb Ihres Tests definieren Sie, indem Sie die entsprechenden Testabschnitte mit Start- und Endanweisungen fรผr die Transaktion umschlieรŸen.

Transaktionen kรถnnen an beliebiger Stelle im Skript eingefรผgt werden, und es gibt keine Begrenzung fรผr die Anzahl der Transaktionen, die einem Test hinzugefรผgt werden kรถnnen.

โš ๏ธ Produktbenennung: Das Tool wurde als HP QuickTest Professional ausgeliefert (QTP), wurde zu HP und spรคter zu Micro Focus Unified Functional Testing und wird heute vertrieben von OpenText, deren aktuelle Hilfeseiten es nennen OpenText Funktionstests. Transaktionen funktionieren in allen diesen Versionen auf die gleiche Weise.

Wie man Transaktionen einfรผgt QTP?

Sie kรถnnen eine Transaktion auch innerhalb einer Transaktion einfรผgen

Das folgende Video fรผhrt Sie durch die Schritte zum Einfรผgen einer Transaktion in UFT One.

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

Beispielsweise mรถchten Sie mรถglicherweise die benรถtigte Zeit notieren einen Flug buchen.

  1. In QTPWรคhlen Sie den entsprechenden Bundesstaat aus, in dem Sie Ihre Transaktion starten mรถchten.
  2. Wรคhlen Sie โ€žStarttransaktion einfรผgenโ€œ. Transaktionsdialog starten Box รถffnet
  3. Geben Sie der Transaktion einen passenden Namen, sagen Sie โ€žBuchungszeitโ€œ.
  4. Im Test wird eine Starttransaktionsanweisung hinzugefรผgt
  5. Wรคhlen Sie den Staat aus, in dem Sie die Transaktion beenden mรถchten
  6. Klicken Sie auf Einfรผgen > Transaktion beenden
  7. Transaktionsdialog beenden Box ร–ffnet mit der Liste aller verfรผgbaren Transaktionen
  8. Klicken Sie auf โ€žOkayโ€œ. Eine Endtransaktionsanweisung wird hinzugefรผgt
  9. Lassen Sie uns den Test durchfรผhren
  10. In den Ergebnissen gibt die Endtransaktionsanweisung die Zeit an, die zum Einfรผgen der Bestellung benรถtigt wurde

Hinweis: Die gleichen Dialogfelder sind รผber die Stichwortansichtund der Schritt Generator fรผgt die identischen Anweisungen ein, ohne das Menรผ โ€žEinfรผgenโ€œ zu รถffnen.

Transaktionsbelege im Editor

In den obigen Dialogfeldern werden zwei Wรถrter geschrieben VBScript Zeilen in den Test einfรผgen. Danke.ping Das manuelle Bearbeiten im Editor geht schneller, sobald man mit dem Muster vertraut ist, und es ist die einzige Mรถglichkeit, wenn die Schritte durch Code generiert werden.

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

Beide Methoden gehรถren zum Services-Objekt. Die Startanweisung erwartet ein Argument, die Endanweisung optional ein zweites.

Erklรคrung Argumente Was sie tut,
Services.StartTransaction Name Die Zeitmessung beginnt an diesem Punkt im Lauf.
Services.EndTransaction Name, [Status] Die Messung wird gestoppt und das Ergebnis aufgezeichnet.

Der optionale Status bestimmt die Bewertung der Transaktion. Ihn wegzulassen, bedeutet, dass die Transaktion als bestanden gilt. Auto.

  • Auto โ€” Die Ausfรผhrung wird erfolgreich abgeschlossen, es sei denn, zwischen den beiden Anweisungen ist ein Fehler aufgetreten. Dies ist der Standardwert.
  • Passieren โ€” endet immer mit dem Status โ€žBestandenโ€œ.
  • Scheitern โ€” endet immer mit dem Status "Fehlgeschlagen".
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

Leseergebnisse der Transaktion

Sobald der Test abgeschlossen ist, enthรคlt der Schritt โ€žTransaktion beendenโ€œ in den Testergebnissen vier Werte, die die Messung erlรคutern.

Ergebnisfeld Bedeutung
Transaktionsname Der im Startbefehl angegebene Name
Endstatus Bestanden oder Nicht bestanden, entschieden durch das Statusargument oder durch Auto.
Gesamtdauer Verstrichene Zeit zwischen Start- und Endaussagen
Verschwendete Zeit Zeit innerhalb der Dauer, UFT Einer selbst fรผgte hinzu

Zeitverschwendung ist relevant, da das Tool Hintergrundprozesse ausfรผhrt, wรคhrend die Transaktion geรถffnet ist.tracZiehen Sie es von der Gesamtdauer ab, um abzuschรคtzen, wie viel Zeit allein die Anwendung in Anspruch genommen hรคtte. Diese Zahl ist es wert, zwischen den Builds verglichen zu werden.

Die Laufzeit eines einzelnen Benutzers ist ein funktionaler Benchmark, kein Auslastungswert. Die Parallelitรคt wird gemessen durch โ€ฆ Leistungstest Mit diesem Tool kann eine Transaktion, die fรผr einen Benutzer problemlos funktioniert, bei weniger als hundert Benutzern dennoch zusammenbrechen.

Verschachtelte und verteilte Transaktionen

Die Liste der Quellschritte vermerkt, dass eine Transaktion innerhalb einer anderen liegen kann. Dadurch wird ein langsamer Teilschritt isoliert, ohne den Ablauf des gesamten Prozesses zu beeintrรคchtigen. Die รคuรŸere Transaktion lรคuft weiter, wรคhrend die innere geรถffnet und geschlossen wird.

Zwei Regeln sorgen fรผr sicheres Nestbauen.

  • Jedem Namen muss ein passendes Paar zugeordnet werden, und die Startanweisung muss vor ihrer Endanweisung stehen.
  • Es kann jeweils nur eine Transaktion mit einem bestimmten Namen geรถffnet sein. Wenn eine zweite Transaktion mit demselben Namen geรถffnet wird, wird die erste mit dem Status โ€žFehlgeschlagenโ€œ beendet.

Eine verteilte Transaktion geht noch weiter und umfasst zwei Tests: Services.StartDistributedTransaction รถffnet es im ersten Test und Services.EndDistributedTransaction Es wird im zweiten Schritt geschlossen, wobei die Zuordnung รผber eine eindeutige ID und nicht รผber den Namen erfolgt. Es existiert fรผr Business Process Monitor und LoadRunner Szenarien, die nur die innerhalb einer Transaktion aufgezeichneten Daten lesen und alles auรŸerhalb einer Transaktion ignorieren.

Wenn ein Schritt innerhalb einer Transaktion berechtigterweise fehlschlagen kann, sollte die Transaktion mit einer gekoppelten Transaktion versehen werden. Wiederherstellungsszenario Der Durchlauf erreicht also die Endanweisung anstatt zu stoppen.ping auf halber Strecke.

Hรคufig gestellte Fragen

Eine Transaktion meldet ein benanntes Ergebnis mit einem Status an die Ausfรผhrungsergebnisse und an LoadRunner. MercuryDer Timer misst nur die innerhalb des Skripts verstrichenen Millisekunden, die Sie dann selbst ausgeben oder umrechnen.

Zeitlich mit dem unabhรคngigen Vorgang abstimmen MercuryDer Timer wird anschlieรŸend an Services.AddWastedTime รผbergeben. Die verschwendete Zeit wird von jeder offenen Transaktion abgezogen, sodass die gemeldete Dauer nur den zu testenden Ablauf widerspiegelt.

Ein Fehler vor der Endanweisung fรผhrt standardmรครŸig zum Abbruch des Testlaufs. Im Bereich โ€žAusfรผhrungโ€œ der Testeinstellungen kรถnnen Sie die Fehleroption aktivieren, um mit dem nรคchsten Schritt fortzufahren, sodass die Endanweisung dennoch erreicht und die Transaktion aufgezeichnet wird.

Im LoadRunner-Controller und nicht im Fenster โ€žAusfรผhrungsergebnisseโ€œ. Es werden nur Schritte gesendet, die in einer Transaktion enthalten sind; alles auรŸerhalb eines Start- und Endpaares wird daher nicht im Leistungsbericht erfasst.

Ja. Services.SetTransaction benรถtigt einen Namen, eine Dauer in Sekunden und einen Status. Dadurch kann ein Skript eine selbst berechnete Messung protokollieren, anstatt eine, die vom Tool gemessen wurde.

Die Modelle des maschinellen Lernens fรผhren fรผr jede benannte Transaktion รผber verschiedene Builds hinweg eine Baseline durch und schlagen Alarm, wenn eine Dauer ihren normalen Bereich verlรคsst. Dadurch wird eine schleichende Regression aufgedeckt, die ein reiner โ€žbestandenโ€œ- oder โ€žnicht bestandenโ€œ-Status verbergen wรผrde.

Ja. GitHub-Copilot Vervollstรคndigt das Services.StartTransaction- und Services.EndTransaction-Paar aus einem Kommentar, wobei der Transaktionsname und die Statuskonstante noch anhand der verwendeten Namenskonvention รผberprรผft werden mรผssen.

Es gibt zwar keine technische Beschrรคnkung, aber nur eine Transaktion pro Geschรคftsprozess sorgt fรผr einen รผbersichtlichen Bericht. Dutzende kleiner Transaktionen lassen die relevanten Daten im Messrauschen untergehen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: