Acties in QTP/UFT met Voorbeeld

⚡ Slimme samenvatting

Acties in UFT/QTP Deel een testscript op in logische, herbruikbare eenheden, zodat testers sneller automatisering kunnen bouwen, onderhouden en delen. Deze pagina legt de drie actietypen uit, hoe je ze kunt opsplitsen en aanroepen, en hoe je gegevens tussen acties kunt doorgeven.

  • 🧩 Definitie: Een actiegroepering omvat een reeks teststappen in één modulaire, herbruikbare eenheid binnen een UFT/QTP scripts.
  • 🔁 Herbruikbare acties: Roep dezelfde actie meerdere keren aan, binnen dezelfde test of vanuit een andere test.
  • 🔒 Niet-herbruikbare acties: Voer ze slechts één keer uit, en alleen binnen de testomgeving waarin ze zijn aangemaakt.
  • 🌐 Externe acties: Een herbruikbare actie wordt alleen-lezen extern wanneer een andere test deze aanroept.
  • ✂️ Splitsen: Splits een grote actie op in onafhankelijke, verwante acties of een genest ouder-kindpaar.
  • 📞 Acties oproepen: Voeg een nieuwe actie, een kopie van een actie of een oproep naar een bestaande actie in.
  • 📤 parameters: Geef invoer- en uitvoerwaarden door tussen acties met behulp van de RunAction-instructie.
  • 🗂️ Datasheets: Gebruik het tabblad 'Globaal' voor testbrede gegevens en het tabblad 'Lokaal' van elke actie voor specifieke gegevens.

Wat is een actie in UFT/QTP?

Acties in UFT/QTP Deel een test op in 'logische eenheden' of 'bedrijfsprocessen'. Elke actie groepeert de stappen die één herkenbare taak uitvoeren, zoals inloggen, een vlucht zoeken of een ticket boeken. Acties helpen bij het creëren van een script dat modulairder en efficiënter is.

Wanneer een script nieuw wordt aangemaakt, bestaat het uit slechts één actie. Je kunt meer acties toevoegen aan je Micro Focus. UFT Het script is aangepast aan de vereisten, waarbij elke toegevoegde actie zijn eigen logica en lokale gegevens gescheiden houdt van de rest van de test.

Het opsplitsen van een lang script in acties is vooral handig wanneer een test moet worden aangepast. Een tester kan één actie, zoals de inlogprocedure, bijwerken zonder de zoek- of afrekenlogica in andere acties aan te raken. Deze isolatie maakt van acties bovendien herbruikbare bouwstenen die andere scripts kunnen aanroepen in plaats van dezelfde stappen opnieuw te moeten vastleggen.

Een typisch script voor vluchtreserveringen is bijvoorbeeld netjes opgedeeld in een inlogactie, een zoekactie naar vluchten en een ticketboekingsactie. Elk onderdeel heeft zijn eigen stappen en lokale gegevens, zodat een tester die alleen de inlogprocedure hoeft te controleren, de boekingsprocedure helemaal niet hoeft vast te leggen of te onderhouden.

Soorten acties in UFT/QTPHerbruikbaar, niet-herbruikbaar en extern

UFT/QTP Het ondersteunt drie soorten acties, en het type dat je kiest bepaalt of een actie gedeeld kan worden tussen scripts of privé blijft voor de test waarin deze is aangemaakt.

actie type Waar het kan lopen Bewerkbaar in de aanroeptest
Herbruikbare Dezelfde test, meerdere keren herhaald, of een andere test. Ja, volgens de test die het bezit.
Niet-herbruikbaar Alleen de test waarin het is gemaakt, en slechts één keer. Ja
Extern herbruikbaar Aangeroepen vanuit een andere test als een gedeelde, opgeslagen actie. Nee, alleen-lezen; alleen de lokale kopie van de gegevenstabel is bewerkbaar.

Een herbruikbare actie wordt een externe actie Op het moment dat een andere test de actie aanroept in plaats van de test die er eigenaar van is, blijven externe acties alleen-lezen in de aanroepende test. Dit komt doordat een gedeelde actie door tientallen scripts tegelijk kan worden gebruikt, en het bewerken van de stappen door elke aanroeper de andere acties zou verstoren. Je kunt de aanroep nog steeds parameteriseren en lokaal werken met een kopie van de gegevenstabel.

Houd een nieuwe actie in principe niet herbruikbaar zolang de logica ervan specifiek is voor één test. PromoMaak het herbruikbaar zodra een tweede script dezelfde stappen nodig heeft, en verwacht dat het zich gedraagt ​​als een externe, alleen-lezen actie op het moment dat dat tweede script het daadwerkelijk aanroept.

Hoe u acties kunt splitsen, kopiëren en aanroepen in UFT

Naarmate een actie groeit, moet jeping Elke stap op één plek maakt het script moeilijker te debuggen en opnieuw te gebruiken. UFT Hiermee kun je een bestaande actie in tweeën splitsen zodra deze onhandelbaar wordt.

  • Onafhankelijke (broer/zus) splitsing: De geselecteerde actie wordt opgesplitst in twee afzonderlijke acties die na elkaar worden uitgevoerd, waarbij elke actie een eigen taak behoudt.ping zijn eigen lokale gegevenstabel.
  • Geneste (ouder-kind) splitsing: De geselecteerde actie splitst zich op in een hoofdactie waarvan de laatste stap de tweede, onderliggende actie aanroept, waardoor een logische afhankelijkheid tussen de twee behouden blijft.

Zodra er acties bestaan, UFT biedt drie manieren om een ​​actie vanuit de test in een test te integreren. Invoegen menu:

  • Voeg een oproep naar een nieuwe actie in: Hiermee wordt een nieuwe, lege actie binnen de huidige test aangemaakt.
  • Voeg een oproep tot het kopiëren van acties in: Kopieert een bestaande actie volledig, inclusief controlepunten, parameterinstellingen en het bijbehorende tabblad 'Data Table', naar de aanroepende test. De kopie is volledig onafhankelijk, waardoor bewerkingen geen invloed hebben op het origineel en er ook niet door worden beïnvloed. U kunt zowel herbruikbare als niet-herbruikbare acties kopiëren.
  • Voeg een oproep naar een bestaande actie in: Voegt een alleen-lezen aanroep in naar een herbruikbare actie die is opgeslagen in een andere test. Deze kan alleen worden gewijzigd in de test waarin deze is aangemaakt, waardoor alle aanroepers gesynchroniseerd blijven en grote testsuites gemakkelijker te onderhouden zijn.

Elke oproep wordt gecompileerd tot een RunAction Verklaring in het Expertstandpunt:

' Calls Action2, which is stored in Test2, running it for one iteration
RunAction "Action2[Test2]", oneIteration

De actie wordt zo vaak uitgevoerd als de eigenschappen van de actieoproep aangeven. Als bijvoorbeeld Actie2 is ingesteld om bij elke iteratie van de gegevenstabel van Test2 te worden uitgevoerd, maar de aanroepende Actie1 in Test1 slechts één keer wordt uitgevoerd, wordt Actie2 toch maar één keer uitgevoerd, omdat de aanroep zelf slechts één keer wordt geactiveerd.

💡Tip: Wanneer een test meerdere acties bevat, open dan de Teststroom Gebruik het paneel in het menu 'Weergave' om ze te slepen en de volgorde te wijzigen. Dit verandert de volgorde waarin ze worden weergegeven. UFT Voert de acties uit zonder de stappen binnen een afzonderlijke actie te wijzigen.

De onderstaande video bouwt voort op het vijfstappen-inlogscript dat in eerdere tutorials is gemaakt voor Vluchtreservering en doorloopt het hele proces van het creëren, splitsen en aanroepen van acties van begin tot eind. Het is de langste video in deze reeks. UFT/QTP tutorialserieHet is dus handig om aantekeningen te maken terwijl je kijkt.

Klik hier als de video niet toegankelijk is

Hoe parameters door te geven en uitvoerwaarden op te slaan tussen acties

Naast het aanroepen van een actie, moeten de meeste echte scripts gegevens erin verwerken en een resultaat eruit lezen. UFT Geeft elke actie zijn eigen invoer- en uitvoerparameters, plus verschillende manieren om de geretourneerde waarde op te slaan.

Parameters doorgeven aan en ontvangen van een actie

Net als functies of methoden In programmeertalen kan een actie invoer en uitvoer definiëren. parametersDeze parameter heeft geen verband met Parameterisering van testgegevens Eerder besproken; de parameters hier hebben betrekking op de actie zelf, niet op een kolom in een gegevenstabel. Configureer ze vanuit Bewerken > Actie > Actie-eigenschappenOf door met de rechtermuisknop op de actie in de trefwoordweergave te klikken. Geef waarden door aan de aanroep met behulp van deze syntaxis:

' Passes an input value and captures the action's output into myResult
RunAction "Action1", oneIteration, "testuser", myResult

De uitvoerwaarde van een actie opslaan

Afhankelijk van wat de rest van het script nodig heeft, kun je de geretourneerde waarde van een actie op een van de volgende drie plaatsen opslaan:

  • Een variabele: RunAction "Action1", oneIteration, "testuser", myResult slaat de uitvoer direct op in myResult.
  • An variabele omgeving: maak een door de gebruiker gedefinieerde variabele aan onder Bestand > Instellingen > Omgeving, schrijf dan RunAction "Action1", oneIteration, "testuser", Environment("env_var").
  • Een kolom in een gegevenstabel: RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet) schrijft het resultaat direct naar het globale werkblad.

Wereldwijde en lokale gegevensbladen

Acties lezen en schrijven testgegevens via twee soorten werkbladen. Wereldwijd gegevensblad is uniek voor de hele test; elke actie kan eruit lezen of erin schrijven, en het heeft altijd de naam "Global". Lokaal gegevensblad is uniek per actie, is genoemd naar die actie, en alleen de actie waartoe deze behoort kan deze lezen of schrijven.

Een actie verlaten en iteratie beheren

Wanneer een stap een actie voortijdig moet stoppen in plaats van deze volledig te laten doorlopen, UFT geeft vier verklaringen:

  • ExitAction — stopt alleen de huidige actie.
  • ExitActionIteration — stopt de huidige iteratie van de actie en gaat verder met de volgende.
  • ExitRun — stopt de volledige testrun onmiddellijk.
  • ExitGlobalIteration — stopt de huidige wereldwijde testiteratie en gaat verder naar de volgende.

Tijdens het uitvoeren van een UFT/QTP script Als je acties gebruikt, houd dan rekening met globale en lokale iteraties, aangezien beide van invloed zijn op hoe vaak een actie daadwerkelijk wordt uitgevoerd. Je kunt de herhalingsfrequentie van een aangeroepen actie wijzigen door te openen Eigenschappen van actieoproep > Uitvoeren tab en daar de iteratiemodus instellen.

⚠ Veelvoorkomende valkuil: Een aangeroepen actie die is ingesteld om bij elke lokale iteratie te worden uitgevoerd, maar die wordt geactiveerd vanuit een ouderactie die slechts eenmaal wordt uitgevoerd, zal toch slechts één keer worden uitgevoerd. Controleer zowel het globale iteratieaantal van de ouderactie als de actie-aanroepeigenschappen van het kind voordat u ervan uitgaat dat een aangeroepen actie zich herhaalt.

Veelgestelde vragen

Een actie is een ingebouwd UFT een functie met een eigen objectrepository en gegevenstabel, en die al dan niet herbruikbaar kan zijn. functie Het is pure VBScript, is altijd herbruikbaar en heeft geen eigen objectrepository of gegevenstabel.

Ja. Open de eigenschappen van de actie en schakel de herbruikbaarheidsvlag op elk gewenst moment in of uit. Als u een voorheen herbruikbare actie als niet-herbruikbaar markeert terwijl andere tests deze nog steeds aanroepen, zullen die aanroepende tests mislukken. UFT Er wordt een waarschuwing weergegeven totdat de oproepen zijn verwijderd.

Acties worden samen met de test opgeslagen als .mtr/.mts-actiemappen in plaats van als afzonderlijke scriptbestanden. Functiebibliotheken daarentegen worden opgeslagen als aparte .vbs- of .qfl-bestanden die door elke test kunnen worden gekoppeld en hergebruikt.

Ja. Testontwerptools met AI-ondersteuning kunnen een opgenomen workflow analyseren en logische breekpunten voorstellen, zoals inloggen, zoeken en afrekenen, als mogelijke acties. Een tester moet echter nog steeds controleren of de splitsing overeenkomt met de daadwerkelijke hergebruiksbehoeften voordat deze definitief wordt vastgesteld.

Het helpt. Zelfherstellende objectidentificatie koppelt een verplaatst of hernoemd besturingselement opnieuw binnen een actie in plaats van direct te falen, wat de onderhoudslast vermindert voor herbruikbare en externe acties die door veel scripts worden gedeeld. RevBekijk gerepareerde objecten voordat je ze volledig vertrouwt.

Vat dit bericht samen met: