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.

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", myResultslaat de uitvoer direct op inmyResult. - 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.
