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.

  • 🧩 Definiție: O acțiune grupează un set de pași de testare într-o unitate modulară, reutilizabilă, în interiorul unui UFT/QTP script-ul.
  • 🔁 Acțiuni reutilizabile: Apelați aceeași acțiune de mai multe ori, în același test sau din orice alt test.
  • 🔒 Acțiuni nereutilizabile: Se execută o singură dată și numai în interiorul testului în care au fost create.
  • 🌐 Acțiuni externe: O acțiune reutilizabilă devine externă doar pentru citire atunci când este apelată de un alt test.
  • ✂️ Despicare: Împărțiți o acțiune mare în acțiuni independente de tip „soră” sau într-o pereche părinte-copil imbricată.
  • 📞 Apelarea acțiunilor: Introduceți o acțiune nouă, o copie a unei acțiuni sau un apel la o acțiune existentă.
  • 📤 parametri: Transmiteți valorile de intrare și ieșire între acțiuni folosind instrucțiunea RunAction.
  • 🗂️ Foi de date: Folosește foaia Globală pentru datele la nivel de test și foaia Locală a fiecărei acțiuni pentru datele private.

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", myResult stochează ieșirea direct în myResult.
  • 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.

Întrebări frecvente

O acțiune este încorporată UFT caracteristică cu propriul Repozitor de Obiecte și Tabel de Date și poate fi sau nu reutilizabilă. A funcţie este VBScript simplu, este întotdeauna reutilizabil și nu are nici un depozit de obiecte, nici un tabel de date propriu.

Da. Deschideți proprietățile acțiunii și activați oricând semnalizatorul reutilizabil. Dacă marcați o acțiune reutilizabilă anterior ca nereutilizabilă în timp ce alte teste o apelează în continuare, acele teste care apelează eșuează și UFT afișează un avertisment până când apelurile sunt eliminate.

Acțiunile sunt salvate odată cu testul ca foldere de acțiuni .mtr/.mts, nu ca fișiere script independente. Bibliotecile de funcții, în schimb, sunt salvate ca fișiere .vbs sau .qfl separate, pe care orice test le poate asocia și reutiliza.

Da. Instrumentele de proiectare a testelor asistate de inteligență artificială pot scana un flux înregistrat și pot sugera puncte de întrerupere logice, cum ar fi conectarea, căutarea și finalizarea verificărilor, ca acțiuni candidate. Un tester ar trebui să confirme totuși că divizarea corespunde nevoilor reale de reutilizare înainte de a o finaliza.

Ajută. Identificarea obiectelor cu auto-reparare reconectează un control mutat sau redenumit în cadrul unei acțiuni în loc să eșueze complet, ceea ce reduce sarcina de întreținere asupra acțiunilor reutilizabile și externe partajate de mai multe scripturi. Revvezi obiectele vindecate înainte de a avea încredere deplină în ele.

Rezumați această postare cu: