Reporter.ReportEvent în UFT/QTP cu Exemplu
⚡ Rezumat inteligent
Reporter.ReportEvent în UFT/QTP trimite mesaje personalizate de tip „reușit”, „eșec”, „avertisment” și „informații” direct în Vizualizatorul de rezultate ale execuției folosind constantele de stare micPass, micFail, micDone și micWarning, oferind testerilor o înregistrare pas cu pas, ușor de citit, a acțiunii efective a unui script automat.
Ce este Reporter.ReportEvent în UFT/QTP?
Reporter.ReportEvent este o metodă standard încorporată în UFT/QTP (acum vândut ca OpenText/Micro Focus UFT Una) care scrie un mesaj personalizat, lizibil de către om, direct în fereastra rezultatelor testului. Spre deosebire de verdictele automate de acceptare sau respingere generate de punctele de control încorporate, un apel ReportEvent permite testerului să decidă exact ce se înregistrează, când și cum ar trebui etichetat.
Aceasta HP QTP tutorial demonstrează utilizarea funcției Reporter.ReportEvent și Formatarea rezultatelorTutorialul vă cere să creați un script scurt, iar finalizarea acestui exercițiu de scriptare este cea mai rapidă modalitate de a vedea rapoartele personalizate actualizând arborele de rezultate în timp real.
Clic aici dacă videoclipul nu este accesibil
Reporter.ReportEvent este cel mai important în automatizare, deoarece un script rulează de obicei nesupravegheat, conform unui program sau în interiorul unui flux CI/CD. Fișierul cu rezultatele execuției devine singura înregistrare a ceea ce s-a întâmplat, astfel încât un pas care eșuează în mod silențios sau trece fără explicații îngreunează mult depanarea ulterioară. Adăugarea unui apel ReportEvent explicit după o acțiune critică transformă arborele Rezultate într-o pistă de audit pas cu pas, lizibilă, pe care un tester, dezvoltator sau manager o poate revizui fără a deschide scriptul în sine.
Acest lucru este diferit de un punct de control al obiectului, care UFT generează automat și raportează folosind propriul nume implicit de pas. Reporter.ReportEvent vă permite în schimb să atașați un limbaj semnificativ din punct de vedere al afacerii, cum ar fi „Confirmarea comenzii afișată”, în loc de un generic „Punct de control trecut pe obiectul WebEdit”, care este mult mai ușor de citit pentru o parte interesată non-tehnică în raportul final. Metoda funcționează în același mod indiferent dacă scriptul vizează o pagină web, o Windows o aplicație desktop sau un terminal mainframe, deoarece Reporter este un obiect global și nu o proprietate a unui singur obiect de testare.
GuruLui 99 UFT/QTP seria acoperă această metodă imediat după Instrucțiuni If, Else și Exists, deoarece majoritatea apelurilor Reporter.ReportEvent se află în interiorul unui bloc condițional care decide dacă rezultatul ar trebui raportat ca micPass sau micFail.
Sintaxa Reporter.ReportEvent și valorile EventStatus
Poți să folosești Reporter.ReportEvent pentru a raporta pașii de testare personalizați în Micro Focus UFTArborele rezultatelor testelor. Metoda acceptă trei argumente obligatorii și un argument opțional, într-o ordine fixă, așa cum se arată mai jos.
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]
Stare eveniment setează pictograma și culoarea afișate pentru pas și poate schimba starea generală a execuției; NumePasRaport este eticheta scurtă care apare în arborele Rezultate Test, în general scrisă ca rezultatul așteptat; Detalii conține descrierea mai lungă, de obicei rezultatul real observat; și opționalul Calea fișierului imaginii atașează o captură de ecran făcută anterior în script la pasul respectiv.
| VALUE | CONSTANT | EFECT ASUPRA REZULTATELOR | EFECT ASUPRA STĂRII DE FUNCȚIONARE |
|---|---|---|---|
| 0 | micPass | Pasul este afișat ca „Reușit” în arborele de rezultate | Nicio modificare; testul continuă ca fiind promovat |
| 1 | microfonEșec | Pasul este afișat ca Eșuat în arborele de Rezultate | Starea generală a rulării se schimbă în Eșec |
| 2 | microfonTerminat | Pasul este afișat ca mesaj informativ | Nicio modificare a statutului Admis/Respins |
| 3 | microfonAvertisment | Pasul este afișat ca avertisment | Nicio modificare a statutului Admis/Respins |
Fiecare constantă poate fi transmisă și ca valoare numerică în loc de nume, deci Reporter.ReportEvent 1, „Pas”, „Detaliu” se comportă exact ca Reporter.ReportEvent micFail, „Pas”, „Detaliu”Utilizarea constantei denumite este mai ușor de citit într-un script pe care un alt tester îl va întreține ulterior.
Un script imbrica de obicei mai multe apeluri ReportEvent într-o singură acțiune: o intrare micDone înainte de începerea unei acțiuni, o intrare micPass sau micFail pentru verificarea cheii și intrări micWarning suplimentare pentru orice eveniment neobișnuit observat pe parcurs.
- Când cazurile de testare sunt executate folosind instrumente de automatizare, poate fi dificil pentru anumiți utilizatori să înțeleagă rezultatele brute ale testelor. Puteți utiliza results.xml pentru a crea un fișier XSL care prezintă rezultatele testelor așa cum preferați.
- De asemenea, puteți utiliza vbscript funcții de bibliotecă pentru a stocați rezultatele într-un fișier xls sau text pentru raportarea în afara UFT.
Cum se utilizează Reporter.ReportEvent: Exemple practice
Cunoașterea sintaxei este una; vizualizarea ei în interiorul unui script real este ceea ce face ca cele patru constante de stare să funcționeze corect. Exemplul de mai jos încadrează o verificare într-o instrucțiune If…Then…Else, apoi raportează o reușită sau un eșec cu Reporter.ReportEvent, astfel încât rezultatul să apară în arborele de rezultate exact acolo unde se așteaptă un recenzent.
If Browser("Guru99 Demo").Page("Guru99 Demo").WebButton("Login").Exist(5) Then Reporter.ReportEvent micPass, "Login button check", "Login button was found on the page" Else Reporter.ReportEvent micFail, "Login button check", "Login button was not found on the page" End If
Aceasta reflectă modelul prezentat în GuruLui 99 Instrucțiuni condiționale VBScript tutorial, unde un bloc If…Then…Else alege între două rezultate; singura diferență aici este că fiecare ramură apelează și Reporter.ReportEvent pentru a înregistra rezultatul.
Utilizare microfonTerminat pentru un pas pur informativ și microfonAvertisment când ceva pare neobișnuit, dar nu ar trebui să eșueze complet rularea. Următorul fragment înregistrează un pas de introducere a datelor ca Terminat, apoi marchează un răspuns lent ca Avertisment și atașează o captură de ecran folosind argumentul opțional ImageFilePath.
Reporter.ReportEvent micDone, "Enter search text", "Typed 'UFT tutorial' into the search box" errorImage = "C:\Results\SearchDelay.png" Browser("Guru99 Demo").CaptureBitmap errorImage, True Reporter.ReportEvent micWarning, "Search response time", "Results took longer than 5 seconds to load", errorImage
A pastra NumePasRaport scurt și menține Detalii specifică despre rezultatul real. Un recenzent care scanează sute de pași înregistrați după o rulare peste noapte eșuată ar trebui să poată spune ce s-a întâmplat fără a deschide scriptul în sine, iar un model de denumire consistent pentru fiecare acțiune face ca această scanare să fie mult mai rapidă.
Echipele care apelează ReportEvent din mai multe scripturi mută adesea această logică într-o funcție VBScript partajată, cum ar fi LogStep(stare, nume, detalii), astfel încât fiecare script produce un arbore de rezultate consistent fără a repeta același bloc If…Then.
Proprietăți obiect Reporter: Filtru, CaleReportare și StareExecutare
Reporter.ReportEvent nu este singurul membru al obiectului Reporter. Trei proprietăți suplimentare oferă control suplimentar asupra conținutului rezultatelor și a locului în care se află. UFT le stochează și apar frecvent în framework-urile de automatizare a producției.
| PROPRIETATE | SCOP | UTILIZARE TIPICĂ |
|---|---|---|
| Filtru | Controlează tipurile de evenimente care sunt scrise în rezultate | Reporter.Filter = rfEnableErrorsAndWarnings ascunde pașii trecuți pe o rulare lungă |
| Raportează calea | Numai citire; returnează folderul în care sunt stocate rezultatele rulării curente | resultsFolder = Reporter.ReportPath |
| Stare de rulare | Numai citire; returnează starea curentă de succes/eșec a rulării de până acum | Dacă Reporter.RunStatus = micFail, atunci acțiunea de ieșire |
Reporter.Filter acceptă patru valori: 0 sau rfEnableAll afișează fiecare eveniment și este valoarea implicită; 1 sau rfEnableErrorsAndWarnings ascunde pașii trecuți; 2 sau rfEnableErrorsOnly ascunde atât pașii trecuți, cât și avertismentele; și 3 sau rfDisableAll dezactivează complet înregistrarea în jurnal a rezultatelor. Bifarea Reporter.RunStatus în timpul scriptului permite unui test să își ramifice propria logică, de exemplu, să sară peste...ping pașii rămași dintr-o acțiune odată ce un pas anterior a eșuat deja.
Deoarece ReportPath și RunStatus sunt doar pentru citire, nu le puteți atribui o valoare; utilizați-le pentru a citi informații despre rularea curentă, de exemplu, scriind calea folderului cu rezultate într-un fișier jurnal la începutul unui script sau scurtcircuitând o acțiune lungă după o eroare fatală. Citirea acestor proprietăți adaugă o suprasarcină neglijabilă, așa că este sigur să verificați Reporter.RunStatus după fiecare pas major dintr-o suită lungă de regresie, fără a încetini rularea în vreun mod vizibil.
Cele mai bune practici pentru Reporter.ReportEvent în UFT
Câteva obiceiuri mențin raportarea personalizată utilă, în loc să fie zgomotoasă.
- Rezervați micFail pentru eșecuri reale: Fiecare apel micFail schimbă Reporter.RunStatus, așa că utilizarea sa pentru probleme cosmetice ascunde defectele reale mai târziu în aceeași rulare.
- Scrieți ReportStepName ca un rezultat așteptat: Un recenzent ar trebui să înțeleagă verificarea doar din numele pasului, fără a citi coloana Detalii.
- Faceți capturi de ecran doar în caz de eșec: Transmiterea ImageFilePath la fiecare pas umple rapid folderul cu rezultate și încetinește execuția, fără prea multe beneficii.
- Filtrare rulări zgomotoase: Setați Reporter.Filter la rfEnableErrorsAndWarnings pentru rulările programate sau CI, astfel încât pașii trecuți să nu ascundă erorile importante.
- Centralizează logica: Încadrați apelurile Reporter.ReportEvent într-un fișier reutilizabil acțiune sau o bibliotecă de funcții, astfel încât fiecare script din suită să înregistreze rezultatele în același mod.
- Export pentru cititorii fără cunoștințe tehnice: Combinați fișierul results.xml cu un XSL personalizat atunci când părțile interesate din afara echipei de asigurare a calității trebuie să revizuiască rezultatele fără a le deschide. UFT.

