Reporter.ReportEvent in UFT/QTP met Voorbeeld
⚡ Slimme samenvatting
Reporter.ReportEvent in UFT/QTP Verstuurt aangepaste berichten over geslaagde, mislukte, waarschuwingen en informatie rechtstreeks naar de Run Results Viewer met behulp van de statusconstanten micPass, micFail, micDone en micWarning, waardoor testers een leesbaar, stapsgewijs overzicht krijgen van wat een geautomatiseerd script daadwerkelijk heeft gedaan.
Wat is Reporter.ReportEvent in UFT/QTP?
Reporter.ReportEvent is een standaardmethode die is ingebouwd in UFT/QTP (nu verkocht als OpenText/Micro Focus UFT Een daarvan is dat er een aangepast, leesbaar bericht rechtstreeks in het testresultatenvenster wordt weergegeven. In tegenstelling tot de automatische 'geslaagd' of 'mislukt'-oordelen die ingebouwde checkpoints genereren, kan de tester met een ReportEvent-aanroep zelf bepalen wat er precies wordt gelogd, wanneer en hoe het moet worden gelabeld.
In deze HP QTP zelfstudie demonstreert het gebruik van de functie Reporter.ReportEvent en Resultaten opmaakIn deze handleiding wordt u gevraagd een kort script te schrijven. Het voltooien van deze scriptopdracht is de snelste manier om te zien hoe aangepaste rapportages de resultatenstructuur in realtime bijwerken.
Klik hier als de video niet toegankelijk is
Reporter.ReportEvent is vooral belangrijk bij automatisering, omdat een script meestal onbeheerd, volgens een schema of binnen een CI/CD-pipeline wordt uitgevoerd. Het uitvoerbestand is dan het enige bewijs van wat er is gebeurd, dus een stap die stilzwijgend mislukt of zonder uitleg slaagt, maakt debuggen achteraf veel moeilijker. Door na een kritieke actie een expliciete ReportEvent-aanroep toe te voegen, wordt de resultatenstructuur een leesbaar, stapsgewijs auditspoor dat een tester, ontwikkelaar of manager kan raadplegen zonder het script zelf te hoeven openen.
Dit is anders dan een objectcontrolepunt, dat UFT genereert automatisch en rapporteert met behulp van de standaard stapnaam. Reporter.ReportEvent daarentegen stelt u in staat om zakelijk relevante taal toe te voegen, zoals 'Orderbevestiging weergegeven' in plaats van een generieke 'Check Point Pass op WebEdit-object', wat veel gemakkelijker te lezen is voor een niet-technische belanghebbende in het uiteindelijke rapport. De methode werkt op dezelfde manier, ongeacht of het script gericht is op een webpagina, een Windows desktopapplicatie of een mainframe-terminal, aangezien Reporter een globaal object is en geen eigenschap van een specifiek testobject.
Guru99's UFT/QTP Deze serie behandelt deze methode direct daarna. If-, Else- en Exists-instructies, omdat de meeste Reporter.ReportEvent-aanroepen zich binnen een voorwaardelijk blok bevinden dat bepaalt of de uitkomst als micPass of micFail moet worden gerapporteerd.
Syntaxis en EventStatus-waarden van Reporter.ReportEvent
Je kunt gebruiken Reporter.ReportEvent om aangepaste teststappen te rapporteren in Micro Focus UFTDe testresultatenboom van 's. De methode accepteert drie verplichte argumenten en één optioneel argument, in een vaste volgorde, zoals hieronder weergegeven.
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]
Gebeurtenisstatus Hiermee kunt u het pictogram en de kleur instellen die voor de stap worden weergegeven en de algehele uitvoeringsstatus omkeren; RapportStapnaam is het korte label dat in de testresultatenboom verschijnt, meestal geschreven als het verwachte resultaat; Details Bevat de uitgebreidere beschrijving, doorgaans het daadwerkelijk waargenomen resultaat; en de optionele Afbeeldingsbestandspad Voegt een eerder in het script gemaakte schermafbeelding toe aan die specifieke stap.
| WAARDE | CONSTANTE | EFFECT OP DE RESULTATEN | EFFECT OP DE UITVOERINGSSTATUS |
|---|---|---|---|
| 0 | micPass | De stap wordt in de resultatenboom weergegeven als 'Pass'. | Geen verandering; de test blijft geslaagd. |
| 1 | microfoonfout | De stap wordt in de resultatenboom weergegeven als 'Mislukt'. | De algehele status van de run verandert in Mislukt. |
| 2 | microfoonKlaar | De stap wordt weergegeven als een informatiemelding. | Geen wijziging in de status Geslaagd/Niet geslaagd |
| 3 | microfoonwaarschuwing | De stap wordt weergegeven als een waarschuwing. | Geen wijziging in de status Geslaagd/Niet geslaagd |
Elke constante kan ook als numerieke waarde worden doorgegeven in plaats van als naam, dus Reporter.ReportEvent 1, “Stap”, “Detail” gedraagt zich precies zoals Reporter.ReportEvent micFail, “Stap”, “Detail”Het gebruik van een benoemde constante is gemakkelijker te lezen in een script dat later door een andere tester zal worden onderhouden.
Een script bevat doorgaans meerdere ReportEvent-aanroepen binnen één actie: een micDone-vermelding voordat een actie begint, een micPass- of micFail-vermelding voor de toetscontrole en extra micWarning-vermeldingen voor alles wat onderweg ongebruikelijk is.
- Wanneer testcases worden uitgevoerd met behulp van automatiseringstools, kan het voor sommige gebruikers lastig zijn om de ruwe testresultaten te begrijpen. U kunt gebruikmaken van Met results.xml kunt u een XSL-bestand maken dat de testresultaten presenteert zoals u dat wilt..
- U kunt ook gebruik maken van VBScript bibliotheekfuncties om Sla de resultaten op in een XLS- of tekstbestand. voor het rapporteren buiten UFT.
Hoe Reporter.ReportEvent te gebruiken: praktische voorbeelden
De syntax kennen is één ding; het zien ervan in een echt script zorgt ervoor dat de vier statusconstanten op hun plaats vallen. Het onderstaande voorbeeld plaatst een controle in een If…Then…Else-structuur en rapporteert vervolgens een geslaagd of mislukt resultaat met Reporter.ReportEvent, zodat de uitkomst in de resultatenboom precies verschijnt waar een reviewer die verwacht.
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
Dit weerspiegelt het patroon dat wordt getoond in Guru99's VBScript-voorwaardelijke instructies In deze tutorial wordt met een If…Then…Else-blok gekozen tussen twee uitkomsten; het enige verschil is dat elke tak ook Reporter.ReportEvent aanroept om het resultaat te loggen.
Gebruik microfoonKlaar voor een stap die puur informatief is, en microfoonwaarschuwing Wanneer iets ongebruikelijk lijkt, maar de uitvoering niet direct mag mislukken. Het volgende codefragment registreert een gegevensinvoerstap als 'Klaar', markeert een trage reactie als 'Waarschuwing' en voegt een schermafbeelding toe met behulp van het optionele argument 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
Houden RapportStapnaam Kort en bondig houden Details Het is belangrijk om het daadwerkelijke resultaat nauwkeurig weer te geven. Een reviewer die honderden gelogde stappen scant na een mislukte nachtelijke run, moet kunnen zien wat er is gebeurd zonder het script zelf te openen. Een consistente naamgeving voor elke actie maakt die scan bovendien veel sneller.
Teams die ReportEvent vanuit meerdere scripts aanroepen, verplaatsen deze logica vaak naar een gedeelde VBScript-functie, zoals LogStep(status, naam, details), zodat elk script een consistente resultatenstructuur produceert zonder hetzelfde If…Then-blok te herhalen.
Eigenschappen van het Reporter-object: Filter, ReportPath en RunStatus
Reporter.ReportEvent is niet het enige lid van het Reporter-object. Drie extra eigenschappen bieden meer controle over de inhoud van de resultaten en waar deze worden weergegeven. UFT Ze worden opgeslagen en duiken regelmatig op in frameworks voor productieautomatisering.
| EIGENDOM | DOEL | TYPISCH GEBRUIK |
|---|---|---|
| Filter | Hiermee wordt bepaald welke gebeurtenistypen in de resultaten worden opgenomen. | Reporter.Filter = rfEnableErrorsAndWarnings verbergt voltooide stappen in een lange run. |
| Rapportpad | Alleen-lezen; retourneert de map waarin de resultaten van de huidige run zijn opgeslagen. | resultatenmap = Rapporteur.Rapportpad |
| RunStatus | Alleen-lezen; geeft de huidige status (geslaagd/mislukt) van de uitvoering tot nu toe weer. | Als Reporter.RunStatus = micFail is, dan de actie afsluiten |
Reporter.Filter accepteert vier waarden: 0 of rfEnableAll toont alle gebeurtenissen en is de standaardwaarde; 1 of rfEnableErrorsAndWarnings verbergt voltooide stappen; 2 of rfEnableErrorsOnly verbergt zowel voltooide stappen als waarschuwingen; en 3 of rfDisableAll schakelt het loggen van resultaten volledig uit. Door Reporter.RunStatus halverwege een script te controleren, kan een test zijn eigen logica volgen, bijvoorbeeld door stappen over te slaan.ping De resterende stappen in een actie nadat een eerdere stap al is mislukt.
Omdat ReportPath en RunStatus alleen-lezen zijn, kunt u er geen waarde aan toewijzen; gebruik ze om informatie over de huidige uitvoering te lezen, bijvoorbeeld om het pad naar de resultatenmap naar een logbestand te schrijven aan het begin van een script, of om een langdurige actie af te breken na een fatale fout. Het lezen van deze eigenschappen voegt verwaarloosbare overhead toe, dus u kunt Reporter.RunStatus veilig controleren na elke belangrijke stap in een lange regressietestsuite zonder de uitvoering merkbaar te vertragen.
Beste werkwijzen voor Reporter.ReportEvent in UFT
Een paar gewoontes zorgen ervoor dat aangepaste rapportages nuttig blijven in plaats van ruis te veroorzaken.
- Reserveer micFail voor echte storingen: Elke micFail-oproep wijzigt Reporter.RunStatus, dus het gebruik ervan voor cosmetische problemen maskeert echte defecten later in dezelfde run.
- Schrijf ReportStepName als een verwacht resultaat: Een beoordelaar moet de controle kunnen afleiden uit de naam van de stap, zonder de kolom 'Details' te hoeven lezen.
- Maak alleen schermafbeeldingen bij een fout: Het bij elke stap doorgeven van ImageFilePath zorgt ervoor dat de resultatenmap snel vol raakt en vertraagt het proces, zonder veel voordeel.
- Ruisende runs filteren: Stel Reporter.Filter in op rfEnableErrorsAndWarnings voor geplande of CI-runs, zodat geslaagde stappen de belangrijke fouten niet maskeren.
- Centraliseer de logica: Wikkel de Reporter.ReportEvent-aanroepen in een herbruikbare container. actie of een functiebibliotheek, zodat elk script in de suite de resultaten op dezelfde manier vastlegt.
- Exporteer voor niet-technische lezers: Combineer results.xml met een aangepaste XSL wanneer belanghebbenden buiten het QA-team de resultaten moeten kunnen bekijken zonder het bestand te openen. UFT.

