Reporter.ReportEvent in UFT/QTP उदाहरण के साथ

⚡ स्मार्ट सारांश

Reporter.ReportEvent in UFT/QTP यह स्क्रिप्ट micPass, micFail, micDone और micWarning स्टेटस कॉन्स्टेंट का उपयोग करके कस्टम पास, फेल, वार्निंग और सूचनात्मक संदेशों को सीधे रन रिजल्ट्स व्यूअर में भेजती है, जिससे परीक्षकों को यह समझने में आसान और चरण-दर-चरण रिकॉर्ड मिलता है कि स्वचालित स्क्रिप्ट ने वास्तव में क्या किया।

  • 🎯 परिभाषा: Reporter.ReportEvent एक कस्टम स्थिति और संदेश लिखता है। UFT परिणामों का वृक्ष, अंतर्निहित चेकपॉइंट से स्वतंत्र।
  • 🧩 सिंटेक्स: यह विधि EventStatus, ReportStepName, Details और एक वैकल्पिक ImageFilePath को इसी क्रम में लेती है।
  • 🚦 स्थिति स्थिरांक: micPass, micFail, micDone और micWarning में से प्रत्येक चरण का रंग निर्धारित करता है और यह भी निर्धारित करता है कि रन की स्थिति बदलती है या नहीं।
  • 🖼️ स्क्रीनशॉट: किसी असफल चरण में छवि संलग्न करने के लिए कैप्चर किए गए बिटमैप पथ को चौथे तर्क के रूप में पास करें।
  • ⚙️ गुण: Reporter.Filter, Reporter.ReportPath और Reporter.RunStatus यह नियंत्रित करने की सुविधा प्रदान करते हैं कि क्या लॉग किया जाएगा और परिणाम कहाँ सहेजे जाएंगे।
  • 🧪 उदाहरण: ReportEvent को एक If…Then चेक के अंदर रखें ताकि प्रत्येक चरण वास्तविक परिणाम से सफलता या असफलता की रिपोर्ट करे।
  • 🚫 छनन: CI रन के दौरान Reporter.Filter को rfEnableErrorsAndWarnings पर सेट करें ताकि पास किए गए चरण वास्तविक विफलताओं को छिपा न दें।
  • 📊 कस्टम रिपोर्ट: परिणामों को हितधारकों की अपेक्षा के अनुरूप प्रस्तुत करने के लिए results.xml को XSL या VBScript लाइब्रेरी के साथ संयोजित करें।

Reporter.ReportEvent क्या है? UFT/QTP?

रिपोर्टर.रिपोर्टइवेंट यह एक मानक विधि है जो इसमें अंतर्निहित है। UFT/QTP (अब बेचा जाता है) OpenText/माइक्रो फोकस UFT पहला तरीका यह है कि यह सीधे टेस्ट रिजल्ट विंडो में एक कस्टम, आसानी से पढ़ा जा सकने वाला मैसेज लिखता है। बिल्ट-इन चेकपॉइंट्स द्वारा जनरेट किए जाने वाले ऑटोमैटिक पास या फेल निर्णयों के विपरीत, ReportEvent कॉल टेस्टर को यह तय करने की सुविधा देता है कि क्या लॉग किया जाएगा, कब और कैसे लेबल किया जाएगा।

इस HP QTP ट्यूटोरियल यह फ़ंक्शन के उपयोग को दर्शाता है रिपोर्टर.रिपोर्टइवेंट और परिणाम स्वरूपणट्यूटोरियल में आपसे एक छोटी स्क्रिप्ट बनाने के लिए कहा गया है, और उस स्क्रिप्टिंग अभ्यास को पूरा करना ही वास्तविक समय में परिणामों के ट्री में कस्टम रिपोर्टिंग अपडेट देखने का सबसे तेज़ तरीका है।

क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो

ऑटोमेशन में Reporter.ReportEvent का महत्व सबसे अधिक होता है क्योंकि स्क्रिप्ट आमतौर पर बिना किसी हस्तक्षेप के, निर्धारित समय पर या CI/CD पाइपलाइन के भीतर चलती है। रन रिजल्ट फाइल ही एकमात्र रिकॉर्ड होती है जिससे पता चलता है कि क्या हुआ था, इसलिए यदि कोई स्टेप चुपचाप विफल हो जाता है या बिना किसी स्पष्टीकरण के सफलतापूर्वक पूरा हो जाता है, तो बाद में डिबगिंग करना बहुत मुश्किल हो जाता है। किसी महत्वपूर्ण क्रिया के बाद स्पष्ट रूप से ReportEvent कॉल जोड़ने से रिजल्ट ट्री एक पठनीय, चरण-दर-चरण ऑडिट ट्रेल में बदल जाता है जिसे परीक्षक, डेवलपर या प्रबंधक स्क्रिप्ट खोले बिना ही देख सकते हैं।

यह ऑब्जेक्ट चेकपॉइंट से अलग है, जो UFT यह स्वचालित रूप से उत्पन्न होता है और अपने डिफ़ॉल्ट चरण नाम का उपयोग करके रिपोर्ट करता है। Reporter.ReportEvent आपको व्यावसायिक रूप से सार्थक भाषा, जैसे "ऑर्डर पुष्टिकरण प्रदर्शित हुआ" को संलग्न करने की अनुमति देता है, बजाय एक सामान्य "WebEdit ऑब्जेक्ट पर चेक प्वाइंट पास" के, जिसे अंतिम रिपोर्ट में गैर-तकनीकी हितधारक के लिए पढ़ना कहीं अधिक आसान है। यह विधि उसी तरह काम करती है चाहे स्क्रिप्ट किसी वेब पेज को लक्षित करे या किसी अन्य वेब पेज को। Windows रिपोर्टर एक वैश्विक ऑब्जेक्ट है, न कि किसी एक परीक्षण ऑब्जेक्ट की प्रॉपर्टी, इसलिए इसे डेस्कटॉप एप्लिकेशन या मेनफ्रेम टर्मिनल के रूप में उपयोग किया जा सकता है।

Guru99 की UFT/QTP यह श्रृंखला इस विधि को ठीक बाद में कवर करती है। यदि, अन्यथा और अस्तित्व कथनक्योंकि अधिकांश Reporter.ReportEvent कॉल एक सशर्त ब्लॉक के अंदर होते हैं जो यह तय करता है कि परिणाम को micPass या micFail के रूप में रिपोर्ट किया जाना चाहिए या नहीं।

Reporter.ReportEvent सिंटैक्स और EventStatus मान

आप का उपयोग कर सकते हैं रिपोर्टर.रिपोर्टइवेंट माइक्रोफोकस में कस्टम परीक्षण चरणों की रिपोर्ट करने के लिए UFTयह विधि परीक्षण परिणामों का ट्री प्रस्तुत करती है। यह विधि तीन अनिवार्य तर्क और एक वैकल्पिक तर्क को एक निश्चित क्रम में स्वीकार करती है, जैसा कि नीचे दिखाया गया है।

Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]

इवेंटस्टेटस यह चरण के लिए प्रदर्शित आइकन और रंग को सेट करता है और समग्र रन स्थिति को उलट सकता है; रिपोर्टस्टेपनाम यह टेस्ट रिजल्ट ट्री में दिखाई देने वाला संक्षिप्त लेबल है, जिसे आमतौर पर अपेक्षित परिणाम के रूप में लिखा जाता है; विवरण इसमें विस्तृत विवरण होता है, आमतौर पर प्राप्त वास्तविक परिणाम; और वैकल्पिक छवि फ़ाइल पथ यह स्क्रिप्ट में पहले लिए गए स्क्रीनशॉट को उस विशिष्ट चरण से जोड़ता है।

मूल्य स्थिर परिणामों पर प्रभाव रन की स्थिति पर प्रभाव
0 माइकपास परिणाम ट्री में चरण को पास के रूप में दिखाया गया है। कोई बदलाव नहीं; परीक्षा उत्तीर्ण के रूप में जारी है।
1 माइकफेल परिणाम ट्री में चरण को विफल के रूप में दिखाया गया है। कुल रन स्थिति विफल में बदल जाती है
2 माइकडन चरण को सूचनात्मक संदेश के रूप में दिखाया गया है। उत्तीर्ण/अनुत्तीर्ण स्थिति में कोई परिवर्तन नहीं।
3 माइक चेतावनी यह चरण चेतावनी के रूप में दिखाया गया है। उत्तीर्ण/अनुत्तीर्ण स्थिति में कोई परिवर्तन नहीं।

प्रत्येक स्थिरांक को उसके नाम के बजाय उसके संख्यात्मक मान के रूप में भी पास किया जा सकता है, इसलिए रिपोर्टर.रिपोर्टइवेंट 1, “चरण”, “विवरण” बिल्कुल इसी तरह व्यवहार करता है Reporter.ReportEvent micFail, “Step”, “Detail”किसी स्क्रिप्ट में नामित स्थिरांक का उपयोग करना आसान होता है, जिसे बाद में कोई अन्य परीक्षक बनाए रखेगा।

एक स्क्रिप्ट में आमतौर पर एक ही एक्शन के अंदर कई ReportEvent कॉल शामिल होते हैं: एक्शन शुरू होने से पहले एक micDone एंट्री, कुंजी जांच के लिए एक micPass या micFail एंट्री, और रास्ते में देखी गई किसी भी असामान्य चीज़ के लिए अतिरिक्त micWarning एंट्री।

  • जब टेस्ट केस ऑटोमेशन टूल्स का उपयोग करके चलाए जाते हैं, तो कुछ उपयोगकर्ताओं के लिए मूल टेस्ट परिणामों को समझना मुश्किल हो सकता है। आप इसका उपयोग कर सकते हैं। अपनी पसंद के अनुसार परीक्षण परिणाम प्रस्तुत करने वाली XSL फ़ाइल बनाने के लिए results.xml फ़ाइल का उपयोग करें।.
  • आप भी उपयोग कर सकते हैं VBScript है लाइब्रेरी फ़ंक्शन परिणामों को एक XLS या टेक्स्ट फ़ाइल में सहेजें। बाहर रिपोर्टिंग के लिए UFT.

Reporter.ReportEvent का उपयोग कैसे करें: व्यावहारिक उदाहरण

सिंटैक्स जानना एक बात है; इसे वास्तविक स्क्रिप्ट में देखना ही इन चारों स्टेटस कॉन्स्टेंट्स को प्रभावी ढंग से समझने में मदद करता है। नीचे दिए गए उदाहरण में, एक चेक को If…Then…Else स्टेटमेंट के अंदर रखा गया है, और फिर Reporter.ReportEvent का उपयोग करके पास या फेल की रिपोर्ट दी गई है, ताकि परिणाम Results ट्री में ठीक उसी जगह दिखाई दे जहाँ समीक्षक को इसकी अपेक्षा होती है।

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

यह दिखाए गए पैटर्न को प्रतिबिंबित करता है। Guru99 की VBScript सशर्त कथन यह ट्यूटोरियल, जिसमें एक If…Then…Else ब्लॉक दो परिणामों में से एक का चयन करता है; यहाँ एकमात्र अंतर यह है कि प्रत्येक शाखा परिणाम को लॉग करने के लिए Reporter.ReportEvent को भी कॉल करती है।

उपयोग माइकडन एक ऐसे चरण के लिए जो पूरी तरह से सूचनात्मक है, और माइक चेतावनी जब कुछ असामान्य प्रतीत होता है लेकिन रन को पूरी तरह से विफल नहीं करना चाहिए। अगला स्निपेट डेटा-एंट्री चरण को पूर्ण के रूप में लॉग करता है, फिर धीमी प्रतिक्रिया को चेतावनी के रूप में चिह्नित करता है और वैकल्पिक 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

रखना रिपोर्टस्टेपनाम संक्षिप्त रखें और रखें विवरण वास्तविक परिणाम के बारे में सटीक जानकारी। असफल रात्रिकालीन परीक्षण के बाद सैकड़ों लॉग किए गए चरणों की जांच करने वाला समीक्षक स्क्रिप्ट खोले बिना ही यह बता पाने में सक्षम होना चाहिए कि क्या हुआ था, और प्रत्येक क्रिया में एक समान नामकरण पैटर्न उस जांच को बहुत तेज़ बनाता है।

जो टीमें कई स्क्रिप्ट से ReportEvent को कॉल करती हैं, वे अक्सर इस लॉजिक को एक साझा VBScript फ़ंक्शन में ले जाती हैं, जैसे कि LogStep(status, name, details), ताकि प्रत्येक स्क्रिप्ट एक ही If…Then ब्लॉक को दोहराए बिना एक सुसंगत परिणाम ट्री उत्पन्न करे।

रिपोर्टर ऑब्जेक्ट गुणधर्म: फ़िल्टर, रिपोर्टपाथ और रनस्टेटस

Reporter.ReportEvent, Reporter ऑब्जेक्ट का एकमात्र सदस्य नहीं है। तीन अतिरिक्त गुण परिणामों में क्या शामिल होगा और कहाँ होगा, इस पर अतिरिक्त नियंत्रण प्रदान करते हैं। UFT यह उन्हें संग्रहित करता है, और वे उत्पादन स्वचालन फ्रेमवर्क में अक्सर दिखाई देते हैं।

संपत्ति प्रयोजन सामान्य उपयोग
फ़िल्टर यह नियंत्रित करता है कि किन इवेंट प्रकारों को परिणामों में लिखा जाएगा। Reporter.Filter = rfEnableErrorsAndWarnings लंबी प्रक्रिया में बीते हुए चरणों को छुपाता है
रिपोर्ट पथ केवल पढ़ने योग्य; यह उस फ़ोल्डर को लौटाता है जहाँ वर्तमान रन के परिणाम संग्रहीत हैं। परिणाम फ़ोल्डर = रिपोर्टर.रिपोर्टपाथ
रनस्टेटस केवल पढ़ने योग्य; अब तक के रन की वर्तमान पास/फेल स्थिति लौटाता है यदि Reporter.RunStatus = micFail है तो Exit Action

Reporter.Filter चार मान स्वीकार करता है: 0 या rfEnableAll सभी इवेंट दिखाता है और यह डिफ़ॉल्ट मान है; 1 या rfEnableErrorsAndWarnings पास किए गए चरणों को छुपाता है; 2 या rfEnableErrorsOnly पास किए गए चरणों और चेतावनियों दोनों को छुपाता है; और 3 या rfDisableAll परिणाम लॉगिंग को पूरी तरह से बंद कर देता है। स्क्रिप्ट के बीच में Reporter.RunStatus की जाँच करने से एक परीक्षण शाखा अपना स्वयं का लॉजिक बना सकती है, उदाहरण के लिए स्किप करना।ping किसी क्रिया के पहले चरण के विफल हो जाने के बाद बचे हुए चरण।

ReportPath और RunStatus केवल पढ़ने योग्य (read-only) प्रॉपर्टी हैं, इसलिए आप इन्हें कोई मान नहीं दे सकते; इनका उपयोग वर्तमान रन के बारे में जानकारी पढ़ने के लिए करें, उदाहरण के लिए स्क्रिप्ट की शुरुआत में परिणाम फ़ोल्डर पथ को लॉग फ़ाइल में लिखना, या किसी गंभीर विफलता के बाद किसी लंबी प्रक्रिया को रोकना। इन प्रॉपर्टी को पढ़ने से बहुत कम ओवरहेड बढ़ता है, इसलिए किसी लंबी रिग्रेशन प्रक्रिया में हर मुख्य चरण के बाद Reporter.RunStatus की जाँच करना सुरक्षित है, इससे रन की गति पर कोई खास असर नहीं पड़ता।

Reporter.ReportEvent के लिए सर्वोत्तम अभ्यास UFT

कुछ आदतें कस्टम रिपोर्टिंग को शोरगुल भरा होने के बजाय उपयोगी बनाए रखती हैं।

  • micFail का उपयोग केवल वास्तविक विफलताओं के लिए करें: प्रत्येक micFail कॉल Reporter.RunStatus को बदल देता है, इसलिए इसका उपयोग दिखावटी समस्याओं के लिए करने से उसी रन में बाद में वास्तविक दोष छिप जाते हैं।
  • ReportStepName को अपेक्षित परिणाम की तरह लिखें: समीक्षक को विवरण कॉलम पढ़े बिना, केवल चरण के नाम से ही जांच को समझ लेना चाहिए।
  • स्क्रीनशॉट केवल विफलता की स्थिति में ही कैप्चर करें: प्रत्येक चरण में ImageFilePath को पास करने से परिणाम फ़ोल्डर जल्दी भर जाता है और इससे प्रक्रिया धीमी हो जाती है, जिसका लाभ बहुत कम होता है।
  • शोरगुल वाले रन को फ़िल्टर करें: निर्धारित या CI रन के लिए Reporter.Filter को rfEnableErrorsAndWarnings पर सेट करें ताकि पास किए गए चरण महत्वपूर्ण विफलताओं को छिपा न दें।
  • तर्क को केंद्रीकृत करें: Reporter.ReportEvent कॉल को एक पुन: प्रयोज्य कार्य या फंक्शन लाइब्रेरी का उपयोग करें ताकि सूट में मौजूद प्रत्येक स्क्रिप्ट परिणामों को एक ही तरीके से लॉग करे।
  • गैर-तकनीकी पाठकों के लिए निर्यात करें: जब QA टीम के बाहर के हितधारकों को फ़ाइल खोले बिना परिणामों की समीक्षा करने की आवश्यकता हो, तो results.xml को एक कस्टम XSL के साथ संयोजित करें। UFT.

अक्सर पूछे जाने वाले प्रश्न

ReportEvent, परिणामों के ट्री में सादा पाठ लिखता है। ReportHTMLEvent, उपलब्ध है। UFT 12.52, चरण के नाम और विवरण में HTML स्वीकार करता है ताकि आप रन परिणाम व्यूअर में टेक्स्ट को बोल्ड, रंगीन या फ़ॉर्मेट कर सकें।

नहीं। केवल micFail ही समग्र रन स्थिति को Fail में बदलता है। micDone और micWarning दोनों ही जानकारी के लिए Results ट्री में एक चरण लिखते हैं, लेकिन चेतावनी दर्ज होने के बावजूद भी परीक्षण Passed के रूप में समाप्त हो सकता है।

हाँ। किसी ऑब्जेक्ट के CaptureBitmap मेथड का उपयोग करके एक बिटमैप कैप्चर करें, उसे एक फ़ाइल में सेव करें, और उस फ़ाइल पाथ को वैकल्पिक चौथे ImageFilePath आर्गुमेंट के रूप में पास करें। UFT उस चरण के लिए कैप्चर किए गए डेटा फलक में छवि प्रदर्शित होती है।

जी हां। एआई कोडिंग सहायक किसी जांच के सरल भाषा विवरण से If…Then और ReportEvent का मूल कोड तैयार कर सकते हैं, और उन स्क्रिप्ट्स को चिह्नित कर सकते हैं जो micFail का दुरुपयोग करती हैं या Details को छोड़ देती हैं। परीक्षक को फिर भी यह पुष्टि करनी चाहिए कि लॉग की गई स्थिति वास्तविक परिणाम से मेल खाती है।

एआई-आधारित ऑब्जर्वेबिलिटी टूल रन का सारांश प्रस्तुत कर सकते हैं और विसंगतियों को स्वचालित रूप से उजागर कर सकते हैं, लेकिन Reporter.ReportEvent अभी भी सटीक, डेवलपर-नियंत्रित चरण नाम और स्थिति प्रदान करता है जो इन टूल को डेटा प्रदान करते हैं। अधिकांश टीमें एक को दूसरे से बदलने के बजाय दोनों का एक साथ उपयोग करती हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: