Műveletek itt: QTP/UFT példával
⚡ Okos összefoglaló
Műveletek itt: UFT/QTP oszd fel a tesztszkriptet logikus, újrafelhasználható egységekre, hogy a tesztelők gyorsabban építhessék fel, karbantarthassák és megoszthassák az automatizálást. Ez az oldal ismerteti a három művelettípust, a felosztásukat és meghívásukat, valamint az adatok műveletek közötti átadását.

Mi az a cselekvés a UFT/QTP?
Hozzászólások in UFT/QTP ossz fel egy tesztet „logikai egységekre” vagy „üzleti folyamatokra”. Minden művelet azokat a lépéseket csoportosítja, amelyek egy felismerhető feladatot hajtanak végre, például bejelentkezést, repülőjegy keresését vagy jegyfoglalást. A műveletek segítenek egy modulárisabb és hatékonyabb szkript létrehozásában.
Amikor egy szkriptet újonnan hoznak létre, az csak egyetlen műveletből áll. További műveleteket is hozzáadhat a Micro Focushoz. UFT szkriptet a követelményeknek megfelelően, és minden hozzáadott művelet a saját logikáját és a helyi adatait elkülönítve tartja a teszt többi részétől.
Egy hosszú szkript műveletekre bontása akkor kifizetődő, amikor egy tesztnek változtatnia kell. A tesztelő frissíthet egy műveletet, például a bejelentkezési sorrendet, anélkül, hogy megérintené a többi műveletben található keresési vagy kijelentkezési logikát. Ez az elkülönítés a műveleteket újrafelhasználható építőelemekké is alakítja, amelyeket más szkriptek meghívhatnak ahelyett, hogy ugyanazokat a lépéseket újra rögzítenék.
Egy tipikus repülőjegy-foglalási szkript például szépen felosztható egy bejelentkezési, egy járatkeresési és egy jegyfoglalási műveletre. Mindegyik saját lépésekkel és helyi adatokkal rendelkezik, így egy tesztelőnek, akinek csak a bejelentkezést kell ellenőriznie, egyáltalán nem kell rögzítenie vagy karbantartania a foglalási folyamatot.
Művelettípusok a UFT/QTPÚjrafelhasználható, nem újrafelhasználható és külső
UFT/QTP háromféle műveletet támogat, és a választott típus határozza meg, hogy egy művelet megosztható-e a szkriptek között, vagy privát marad-e a létrehozás helyén álló teszt számára.
| Művelet típusa | Hol futhat | Szerkeszthető a hívástesztben |
|---|---|---|
| Többször | Ugyanaz a teszt, többször, vagy bármilyen más teszt | Igen, a teszt alapján, amelyik birtokolja |
| Nem újrafelhasználható | Csak az a teszt, ahol létrehozták, és csak egyszer | Igen |
| Külső újrafelhasználható | Egy másik tesztből megosztott, tárolt műveletként hívva | Nem, csak olvasható; csak a helyi adattábla másolata szerkeszthető |
Egy újrafelhasználható műveletből külső fellépés abban a pillanatban, amikor egy másik teszt hívja meg ahelyett, amelyik birtokolja. A külső műveletek csak olvashatók maradnak a hívó tesztben, mivel egy megosztott műveletet egyszerre több tucat szkript is használhat, és ha minden hívó szerkeszthetné a lépéseket, az a többi működését rontaná. Továbbra is paraméterezheti a hívást, és helyben dolgozhat az adattáblájának egy másolatával.
Ökölszabályként egy új műveletet ne használjunk fel újra, amíg a logikája még egyetlen tesztre jellemző. PromoTedd újrafelhasználhatóvá, amint egy második szkriptnek ugyanazokra a lépésekre van szüksége, és várd el, hogy külső, csak olvasható műveletként viselkedjen, amint a második szkript ténylegesen meghívja.
Műveletek felosztása, másolása és meghívása a következőben: UFT
Ahogy egy cselekvés növekszik, tartsd megping minden lépés egy helyen megnehezíti a szkript hibakeresését és újrafelhasználását. UFT lehetővé teszi egy meglévő művelet kétfelé osztását, ha az nehezen kezelhetővé válik.
- Független (testvér) válás: A kiválasztott művelet két különálló műveletre oszlik, amelyek egymás után futnak, mindegyik megtartvaping saját helyi adattáblája.
- Beágyazott (szülő-gyermek) felosztás: A kiválasztott művelet egy szülő műveletre bomlik, amelynek utolsó lépése meghívja a második, gyermek műveletet, megőrizve a kettő közötti logikai függőséget.
Ha már léteznek cselekvések, UFT három módot kínál arra, hogy egy műveletet bevigyünk egy tesztbe a betétlap menü:
- Új műveletre való hívás beszúrása: Létrehoz egy friss, üres műveletet az aktuális teszten belül.
- Művelet másolására való felszólítás beszúrása: Egy meglévő műveletet teljes egészében átmásol a hívó tesztbe, beleértve az ellenőrzőpontokat, a paraméterezést és az Adattábla fület is. A másolat teljesen független, így a módosítások soha nem befolyásolják az eredetit, és az sem befolyásolja őket. Újrafelhasználható és nem újrafelhasználható műveleteket is másolhat.
- Hívás beszúrása meglévő műveletre: Egy másik tesztben tárolt, újrafelhasználható művelethez beszúr egy írásvédett hívást. Ez a hívás csak abban a tesztben módosítható, ahol létrehozták, így minden hívó szinkronban marad, és a nagy tesztkészletek karbantartása is könnyebb.
Minden hívás egy RunAction nyilatkozat a szakértői véleményben:
' Calls Action2, which is stored in Test2, running it for one iteration RunAction "Action2[Test2]", oneIteration
A művelet annyiszor fut le, ahányszor az Akcióhívás tulajdonságai megadják. Például, ha az Akció2 úgy van beállítva, hogy a Teszt2 adattáblájának minden iterációján fusson, de a Teszt1-ben lévő Akció1 hívása csak egyszer fut le, az Akció2 továbbra is csak egyszer fut le, mivel maga a hívás egyetlen alkalommal indul el.
💡 Tipp: Ha egy teszt több műveletet tartalmaz, nyissa meg a Tesztfolyamat ablaktáblát a Nézet menüből, hogy áthúzással és átrendezéssel megjeleníthesse őket. Ez megváltoztatja a sorrendet, amelyben UFT végrehajtja a műveleteket anélkül, hogy szerkesztené az egyes műveleteken belüli lépéseket.
Az alábbi videó a korábbi oktatóanyagokban létrehozott ötlépéses bejelentkezési szkriptre épül. Repülési foglalás és végigvezeti a műveletek létrehozásán, felosztásán és meghívásán. Ez a leghosszabb videó ebben a sorozatban. UFT/QTP oktatóanyag-sorozat, ezért hasznos jegyzetelni nézés közben.
Kattints itt ha a videó nem érhető el
Paraméterek átadása és kimeneti értékek tárolása műveletek között
Egy művelet meghívása mellett a legtöbb valódi szkriptnek adatokat kell belehelyeznie, majd vissza kell olvasnia az eredményt. UFT minden műveletnek saját bemeneti és kimeneti paramétereket ad, valamint számos módot a visszaadott értékek megőrzésére.
Paraméterek átadása egy műveletnek és egy művelettől
Csakúgy, mint függvények vagy metódusok programozási nyelvekben egy művelet meghatározhatja a bemenetet és a kimenetet paraméterekEnnek a paraméternek nincs köze a következőhöz: Tesztadatok paraméterezése korábban már tárgyaltuk; a paraméterek itt magához a művelethez tartoznak, nem pedig egy adattábla oszlopához. Konfigurálja őket a következőből: Szerkesztés > Művelet > Művelet tulajdonságai, vagy a Kulcsszó nézetben a műveletre kattintva a jobb gombbal. Az értékeket a hívás során a következő szintaxissal adhatja át:
' Passes an input value and captures the action's output into myResult RunAction "Action1", oneIteration, "testuser", myResult
Művelet kimeneti értékének tárolása
Attól függően, hogy a szkript többi részének mire van szüksége, a művelet visszaadott értékét három helyen tárolhatja:
- Egy változó:
RunAction "Action1", oneIteration, "testuser", myResulta kimenetet közvetlenül amyResult. - An környezeti változó: hozzon létre egy felhasználó által definiált változót a Fájl > Beállítások > Környezet, majd írd
RunAction "Action1", oneIteration, "testuser", Environment("env_var"). - Adattábla oszlopa:
RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet)az eredményt közvetlenül a globális munkalapra írja.
Globális és helyi adatlapok
A műveletek kétféle munkalapon keresztül olvasnak és írnak tesztadatokat. Globális adatlap egyedi a teljes tesztre vonatkozóan; bármilyen művelet olvashat belőle vagy írhat bele, és mindig „Globális” néven szerepel. Helyi adatlap műveletenként egyedi, az adott műveletről kapta a nevét, és csak a saját művelete tudja olvasni vagy írni.
Műveletből való kilépés és az iteráció vezérlése
Amikor egy lépésnek idő előtt le kell állítania egy műveletet ahelyett, hogy hagyná befejeződni, UFT négy állítást tesz:
ExitAction— csak az aktuális műveletet állítja le.ExitActionIteration— leállítja a művelet aktuális iterációját, és a következőre ugrik.ExitRun— azonnal leállítja a teljes tesztfutást.ExitGlobalIteration— leállítja az aktuális globális teszt iterációt és a következőre ugrik.
Végrehajtás közben a UFT/QTP forgatókönyv műveleteket használó alkalmazásoknál tartsa szem előtt a globális és a lokális iterációkat, mivel mindkettő befolyásolja, hogy egy művelet hányszor fut le valójában. A meghívott művelet ismétlődésének gyakoriságát a következő megnyitásával módosíthatja: Művelethívás tulajdonságai > Futtatás fülre, és ott állíthatod be az iterációs módot.
⚠ Gyakori buktató: Egy meghívott művelet, amely minden lokális iteráción fut, de egy csak egyszer futó szülő által aktivált, továbbra is csak egyszer fog végrehajtódni. Mielőtt feltételeznénk, hogy egy meghívott művelet ismétlődik, ellenőrizze mind a szülő globális iterációinak számát, mind a gyermek művelethívási tulajdonságait.
