Acțiuni în QTP/UFT cu Exemplu
⚡ Rezumat inteligent
Acțiuni în UFT/QTP Împărțiți un script de testare în unități logice, reutilizabile, astfel încât testerii să poată construi, întreține și partaja automatizarea mai rapid. Această pagină explică cele trei tipuri de acțiuni, cum să le divizați și să le apelați și cum să transmiteți date între acțiuni.

Ce este o acțiune în UFT/QTP?
Acţiuni in UFT/QTP Împărțiți un test în „unități logice” sau „procese de business”. Fiecare acțiune grupează pașii care efectuează o sarcină recognoscibilă, cum ar fi conectarea, căutarea unui zbor sau rezervarea unui bilet. Acțiunile ajută la crearea unui script mai modular și mai eficient.
Când un script este nou creat, acesta constă dintr-o singură acțiune. Puteți adăuga mai multe acțiuni la Micro Focus. UFT script conform cerințelor, iar fiecare acțiune adăugată își păstrează propria logică și date locale separate de restul testului.
Împărțirea unui script lung în acțiuni este rentabilă în momentul în care un test trebuie să se modifice. Un tester poate actualiza o acțiune, cum ar fi secvența de conectare, fără a atinge logica de căutare sau de verificare care se află în alte acțiuni. Această izolare transformă, de asemenea, acțiunile în elemente constitutive reutilizabile pe care alte scripturi le pot apela în loc să înregistreze din nou aceiași pași.
Un script tipic de rezervare a zborului, de exemplu, se împarte perfect într-o acțiune de conectare, o acțiune de căutare a zborului și o acțiune de rezervare a biletului. Fiecare are propriii pași și date locale, astfel încât un tester care trebuie doar să verifice autentificarea nu trebuie să înregistreze sau să mențină deloc fluxul de rezervare.
Tipuri de acțiuni în UFT/QTPReutilizabil, nereutilizabil și extern
UFT/QTP acceptă trei tipuri de acțiuni, iar tipul ales decide dacă o acțiune poate fi partajată între scripturi sau rămâne privată pentru testul în care a fost creată.
| Tipul acțiunii | Unde poate rula | Editabil în Testul de apelare |
|---|---|---|
| Reutilizabile | Același test, de mai multe ori sau orice alt test | Da, din testul care îl deține |
| Nereutilizabil | Numai testul în care a fost creat și o singură dată | Da |
| Reutilizabil extern | Apelat dintr-un alt test ca o acțiune partajată, stocată | Nu, doar citire; doar copia locală a tabelului de date este editabilă |
O acțiune reutilizabilă devine o acțiune externă în momentul în care un alt test îl apelează în locul testului care îl deține. Acțiunile externe rămân doar în citire în testul apelant, deoarece o acțiune partajată poate fi utilizată de zeci de scripturi simultan, iar permiterea fiecărui apelant să editeze pașii ar întrerupe celelalte. Puteți în continuare parametriza apelul și lucra local cu o copie a tabelului său de date.
Ca regulă generală, o acțiune nouă trebuie să fie nereutilizabilă atâta timp cât logica sa este încă specifică unui singur test. Promosă îl reutilizeze imediat ce un al doilea script necesită aceiași pași și să se aștepte să se comporte ca o acțiune externă, doar în citire, în momentul în care al doilea script îl apelează efectiv.
Cum să divizați, să copiați și să apelați acțiuni în UFT
Pe măsură ce o acțiune crește, keeping Fiecare pas într-un singur loc face ca scriptul să fie mai greu de depanat și reutilizat. UFT vă permite să împărțiți o acțiune existentă în două moduri odată ce devine dificil de gestionat.
- Separare independentă (între frați): Acțiunea selectată se împarte în două acțiuni separate care se execută una după alta, fiecare keeping propriul tabel de date local.
- Divizare imbricată (părinte-copil): Acțiunea selectată se divide într-o acțiune părinte al cărei ultim pas apelează a doua acțiune, acțiunea copil, păstrând o dependență logică între cele două.
Odată ce acțiunile există, UFT oferă trei modalități de a introduce o acțiune într-un test din Insera meniul:
- Introduceți apel la o acțiune nouă: Creează o acțiune nouă, goală, în interiorul testului curent.
- Inserați îndemn la copia acțiunii: Copiază o acțiune existentă în întregime, inclusiv punctele de control, parametrizarea și fila Tabel de date, în testul apelant. Copia este complet independentă, deci editările nu afectează și nu sunt afectate de original. Puteți copia atât acțiuni reutilizabile, cât și acțiuni nereutilizabile.
- Inserați un apel la o acțiune existentă: Inserează un apel doar în citire pentru o acțiune reutilizabilă stocată într-un alt test. Poate fi modificat doar în testul în care a fost creat, ceea ce menține fiecare apelant sincronizat și facilitează întreținerea suitelor mari de teste.
Fiecare apel se compilează până la un RunAction declarație în Opinia experților:
' Calls Action2, which is stored in Test2, running it for one iteration RunAction "Action2[Test2]", oneIteration
Acțiunea se execută de atâtea ori câte specifică Proprietățile apelului de acțiune. De exemplu, dacă Acțiunea2 este setată să se execute la fiecare iterație a tabelului de date al Testului2, dar apelarea Acțiunii1 din Testul1 se execută o singură dată, Acțiunea2 se execută totuși o singură dată, deoarece apelul în sine este declanșat o singură dată.
💡 Sfat: Când un test conține mai multe acțiuni, deschideți Flux de testare panoul din meniul Vizualizare pentru a le trage și reordona. Aceasta modifică secvența în care UFT execută acțiunile fără a edita pașii din interiorul niciunei acțiuni.
Videoclipul de mai jos se bazează pe scriptul de conectare în cinci pași creat în tutorialele anterioare pentru Rezervare de zbor și prezintă în detaliu crearea, divizarea și apelarea acțiunilor. Este cel mai lung videoclip din acest articol. UFT/QTP serie de tutoriale, așa că este util să iei notițe în timp ce urmărești.
Clic aici dacă videoclipul nu este accesibil
Cum se transmit parametrii și se stochează valorile de ieșire între acțiuni
Dincolo de apelarea unei acțiuni, majoritatea scripturilor reale trebuie să mute date în aceasta și să citească un rezultat înapoi. UFT oferă fiecărei acțiuni proprii parametri de intrare și ieșire, plus mai multe modalități de a persista ceea ce returnează.
Transmiterea parametrilor către și de la o acțiune
La fel ca funcții sau metode În limbajele de programare, o acțiune poate defini intrări și ieșiri parametriiAcest parametru nu are nicio legătură cu Parametrizarea datelor de testare acoperit anterior; parametrii de aici aparțin acțiunii în sine, nu unei coloane din Tabelul de date. Configurați-i din Editare > Acțiune > Proprietăți acțiunesau făcând clic dreapta pe acțiune în Vizualizarea Cuvinte Cheie. Transmiteți valorile în apel folosind această sintaxă:
' Passes an input value and captures the action's output into myResult RunAction "Action1", oneIteration, "testuser", myResult
Stocarea valorii de ieșire a unei acțiuni
În funcție de nevoile restului scriptului, puteți păstra valoarea returnată de o acțiune într-unul din următoarele trei locuri:
- O variabilă:
RunAction "Action1", oneIteration, "testuser", myResultstochează ieșirea direct înmyResult. - An variabilă de mediu: creează o variabilă definită de utilizator sub Fișier > Setări > Mediu, apoi scrie
RunAction "Action1", oneIteration, "testuser", Environment("env_var"). - O coloană din tabelul de date:
RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet)scrie rezultatul direct în foaia globală.
Fișe de date globale și locale
Acțiunile citesc și scriu date de test prin două tipuri de foi. Fișă tehnică globală este unic pentru întregul test; orice acțiune poate citi din el sau poate scrie în el și este întotdeauna denumit „Global”. Fișă de date locală este unic per acțiune, este numit după acea acțiune și numai propria sa acțiune îl poate citi sau scrie.
Ieșirea dintr-o acțiune și controlul iterației
Când un pas trebuie să oprească o acțiune mai devreme, în loc să o lase să se desfășoare până la finalizare, UFT oferă patru afirmații:
ExitAction— oprește doar acțiunea curentă.ExitActionIteration— oprește iterația curentă a acțiunii și trece la următoarea.ExitRun— oprește imediat întreaga rulare a testului.ExitGlobalIteration— oprește iterația curentă de testare globală și trece la următoarea.
În timpul executării unui UFT/QTP scenariu care utilizează acțiuni, țineți cont de iterațiile globale și iterațiile locale, deoarece ambele afectează de câte ori se execută efectiv o acțiune. Puteți schimba frecvența cu care se repetă o acțiune apelată deschizând Proprietăți apel acțiune > Executare și setarea modului de iterație acolo.
⚠ Capcană comună: O acțiune apelată care este setată să ruleze la fiecare iterație locală, dar este declanșată de un părinte care rulează o singură dată, se va executa totuși o singură dată. Confirmați atât numărul de iterații globale ale părintelui, cât și proprietățile apelului de acțiune ale copilului înainte de a presupune că o acțiune apelată se va repeta.
