सेलेनियम में TestNG श्रोता: ITestListener & ITestResult उदाहरण

विषय - सूची:

Anonim

दो मुख्य श्रोता हैं।

  1. वेबड्राइवर श्रोताओं
  2. TestNG श्रोताओं

इस ट्यूटोरियल में, हम Testng श्रोताओं पर चर्चा करेंगे। यहाँ आप जानेंगे-

  • TestNG में श्रोताओं क्या है?
  • TestNG में श्रोताओं के प्रकार
  • परीक्षण परिदृश्य:
  • TestNG श्रोता बनाने के लिए कदम
  • कई वर्गों के लिए श्रोता का उपयोग।

TestNG में श्रोताओं क्या है?

श्रोता को ऐसे इंटरफ़ेस के रूप में परिभाषित किया गया है जो डिफ़ॉल्ट TestNG के व्यवहार को संशोधित करता है। जैसा कि नाम सेलेनियम लिपि में परिभाषित घटना को श्रोता "सुन" बताते हैं और उसी के अनुसार व्यवहार करते हैं। इसका उपयोग सेलेनियम में श्रोताओं के इंटरफेस को लागू करने के लिए किया जाता है। यह TestNG रिपोर्ट या लॉग को कस्टमाइज़ करने की अनुमति देता है। कई प्रकार के TestNG श्रोता उपलब्ध हैं।

TestNG में श्रोताओं के प्रकार

कई प्रकार के श्रोता हैं जो आपको TestNG के व्यवहार को बदलने की अनुमति देते हैं।

नीचे कुछ TestNG श्रोता हैं:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. IConfigurable,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener।

उपरोक्त इंटरफ़ेस को TestNG श्रोता कहा जाता है। लॉग इन उत्पन्न करने या TestNG रिपोर्ट को अनुकूलित करने के लिए इन इंटरफेस का उपयोग सेलेनियम में किया जाता है।

इस ट्यूटोरियल में, हम ITestListener को कार्यान्वित करेंगे।

ITestListener के निम्नलिखित तरीके हैं

  • ऑनस्टार्ट- किसी भी टेस्ट के शुरू होने पर ऑनस्टार्ट विधि को कहा जाता है।
  • onTestSuccess- onTestSuccess विधि को किसी भी टेस्ट की सफलता पर कहा जाता है।
  • onTestFailure- onTestFailure मेथड को किसी टेस्ट की विफलता पर कहा जाता है।
  • onTestSkipped- onTestSkipped मेथड को किसी टेस्ट के स्किप होने पर कहा जाता है।
  • onTestFailedButWithinSuccessPercentage- विधि कहा जाता है कि हर बार टेस्ट विफल रहता है, लेकिन सफलता प्रतिशत के भीतर है।
  • onFinish- सभी परीक्षण निष्पादित होने के बाद onFishish विधि को कहा जाता है।

परीक्षण परिदृश्य:

इस परीक्षा परिदृश्य में, हम लॉगिन प्रक्रिया को स्वचालित करेंगे और 'इटेस्टलिस्ट' लागू करेंगे।

  1. फ़ायरफ़ॉक्स लॉन्च करें और "http://demo.guru99.com/V4/" साइट खोलें
  1. आवेदन में लॉगिन करें।

TestNG श्रोता बनाने के लिए कदम

उपरोक्त परीक्षण परिदृश्य के लिए, हम श्रोता को लागू करेंगे।

चरण 1) "ITestListener" को लागू करने वाली "लिस्टेनटेस्ट" श्रेणी बनाएँ। नीचे दिए गए स्क्रीन पर दिखाए गए अनुसार माउस को रेडलाइन टेक्स्ट पर ले जाएँ, और एक्लिप्स आपको 2 त्वरित सुधार सुझाएगा:

बस "असूचीबद्ध तरीके जोड़ें" पर क्लिक करें। एक कोड के लिए कई अनिमित तरीके (बिना निकाय) जोड़े जाते हैं। नीचे देखें-

पैकेज श्रोता_Demo;आयात org.testng.ITestContext;आयात org.testng.ITestListener;आयात org.testng.ITestResult;सार्वजनिक वर्ग श्रोता{{@ ऑवरराइडसार्वजनिक शून्य// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य onStart (ITestContext arg0) {// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य onTestFailure (ITestResult arg0) {// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य onTestSkipped (ITestResult arg0) {// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य onTestStart (ITestResult arg0) {// TODO ऑटो-जनरेट विधि ठूंठ}@ ऑवरराइडसार्वजनिक शून्य onTestSuccess (ITestResult arg0) {// TODO ऑटो-जनरेट विधि ठूंठ}}

आइए 'श्रोता वर्ग' को संशोधित करें। विशेष रूप से, हम निम्नलिखित विधियों को संशोधित करेंगे-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, आदि।

संशोधन सरल है। हम सिर्फ टेस्ट का नाम प्रिंट करते हैं।

कंसोल में लॉग बनाए जाते हैं। उपयोगकर्ता के लिए यह समझना आसान है कि कौन सी परीक्षा पास है, विफल है, और स्थिति को छोड़ें।

संशोधन के बाद, कोड ऐसा दिखता है-

पैकेज श्रोता_Demo;आयात org.testng.ITestContext;आयात org.testng.ITestListener;आयात org.testng.ITestResult;सार्वजनिक वर्ग श्रोता{{@ ऑवरराइडसार्वजनिक शून्य{{}@ ऑवरराइडसार्वजनिक शून्य onStart (ITestContext परिणाम){{}@ ऑवरराइडसार्वजनिक शून्य{{}// जब टेस्ट केस फेल हो जाता है, तो यह विधि कहलाती है।@ ऑवरराइडसार्वजनिक शून्य onTestFailure (ITestResult परिणाम){{System.out.println ("असफल हुए टेस्टकेस का नाम है: + Result.getName ());}// जब टेस्ट केस स्किप हो जाता है, तो यह विधि कहलाती है।@ ऑवरराइडसार्वजनिक शून्य{{System.out.println ("टेस्टकेस का नाम स्किप्ड है: + Result.getName ());}// जब टेस्ट केस शुरू हो जाता है, तो यह विधि कहलाती है।@ ऑवरराइडसार्वजनिक शून्य onTestStart (ITestResult परिणाम){{System.out.println (Result.getName () + "परीक्षण मामला शुरू हुआ");}// जब टेस्ट केस पास हो जाता है, तो यह विधि कहलाती है।@ ऑवरराइडसार्वजनिक शून्य onTestSuccess (ITestResult परिणाम){{System.out.println ("उत्तीर्ण किए गए टेस्टकेस का नाम है: + Result.getName ());}}

चरण 2) लॉगिन प्रक्रिया स्वचालन के लिए एक और वर्ग "टेस्टकेस" बनाएं। सेलेनियम स्वचालित रूप से लॉगिन करने के लिए इस 'टेस्टकेस' को निष्पादित करेगा।

पैकेज श्रोता_Demo;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.testng.Assert;आयात org.testng.annotations.Listeners;आयात org.testng.annotations.Test;सार्वजनिक श्रेणी के टेस्ट {WebDriver ड्राइवर = नया FirefoxDriver ();// श्रोताओं को सत्यापित करने के लिए पास होने के लिए टेस्ट।@परीक्षासार्वजनिक शून्य लॉगिन (){{Driver.get ("http://demo.guru99.com/V4/");Driver.findElement (By.name ("uid"))। sendKeys ("mngr34926");Driver.findElement (By.name ("पासवर्ड")। sendKeys ("amUpenu");Driver.findElement (By.name ("btnLogin"))। क्लिक करें ();}// श्रोता सत्यापित करने के लिए इस परीक्षा में असफल रहा।@परीक्षासार्वजनिक शून्य TestToFail (){{System.out.println ("परीक्षण में विफल रहने के लिए यह तरीका");Assert.assertTrue (झूठी);}}

चरण 3) इसके बाद, इस श्रोता को हमारे नियमित प्रोजेक्ट क्लास अर्थात "टेस्टकेस" में लागू करें। वर्ग और इंटरफ़ेस से जुड़ने के दो अलग-अलग तरीके हैं।

पहला तरीका श्रोताओं के एनोटेशन (@ लिस्ट्रेन) का उपयोग करना है जैसा कि नीचे दिखाया गया है:

@ लिस्टर्स 

हम इसे क्लास "टेस्टकेस" में उपयोग करते हैं जैसा कि नीचे दिखाया गया है।

तो अंत में वर्ग "टेस्टकेस" श्रोता एनोटेशन का उपयोग करने के बाद दिखता है:

पैकेज श्रोता_Demo;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.testng.Assert;आयात org.testng.annotations.Listeners;आयात org.testng.annotations.Test;@ लिस्टर्ससार्वजनिक श्रेणी के टेस्ट {WebDriver ड्राइवर = नया FirefoxDriver ();// श्रोताओं को सत्यापित करने के लिए पास होने के लिए टेस्ट।@परीक्षासार्वजनिक शून्य लॉगिन (){{Driver.get ("http://demo.guru99.com/V4/");Driver.findElement (By.name ("uid"))। sendKeys ("mngr34926");Driver.findElement (By.name ("पासवर्ड")। sendKeys ("amUpenu");Driver.findElement (By.id ("")) क्लिक करें ();}// सत्यापित श्रोता के रूप में इस परीक्षा को विफल कर दिया।@परीक्षासार्वजनिक शून्य TestToFail (){{System.out.println ("परीक्षण में विफल रहने के लिए यह तरीका");Assert.assertTrue (झूठी);}}

परियोजना की संरचना इस प्रकार है:

चरण 4): "TestCases" वर्ग निष्पादित करें। क्लास में "लिस्टेनटेस्ट" के तरीकों को @ टेस्ट के रूप में एनोटेट किए गए तरीकों के व्यवहार के अनुसार स्वचालित रूप से कहा जाता है।

चरण 5): कंसोल पर प्रदर्शित होने वाले आउटपुट को सत्यापित करें।

'TestCases' का आउटपुट इस तरह दिखेगा:

[TestNG] रनिंग:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-e ग्रहण - 1058076918 \ testng-customsuite.xmlलॉगइन टेस्ट केस शुरूउत्तीर्ण किए गए टेस्टकेस का नाम है: लॉगिनTestToFail परीक्षण मामला शुरू हुआपरीक्षण करने की यह विधि विफल हैटेस्टकेस विफल होने का नाम है: TestToFailPASSED: लॉगिन करेंविफल: TestToFailjava.lang.AssertionError: अपेक्षित [सत्य] लेकिन पाया गया [झूठा] 

कई वर्गों के लिए श्रोता का उपयोग।

यदि परियोजना में कई वर्ग हैं जो श्रोताओं को उनमें से हर एक से जोड़कर बोझिल और त्रुटि प्रवण हो सकते हैं।

ऐसे मामलों में, हम एक testng.xml बना सकते हैं और एक्सएमएल में श्रोता टैग जोड़ सकते हैं।

यह श्रोता आपके पास मौजूद कक्षाओं की संख्या के बावजूद परीक्षण सूट में लागू किया जाता है। जब आप यह XML फ़ाइल चलाते हैं, तो श्रोता उल्लिखित सभी वर्गों पर काम करेंगे। आप किसी भी श्रोता वर्ग की घोषणा कर सकते हैं।

सारांश:

सेलेनियम वेबड्राइवर में श्रोताओं को लॉग जेनरेट करने या TestNG रिपोर्ट को अनुकूलित करने की आवश्यकता होती है।

  • श्रोताओं के कई प्रकार हैं और आवश्यकताओं के अनुसार उनका उपयोग किया जा सकता है।
  • श्रोता एक सेलेनियम वेब ड्राइवर स्क्रिप्ट में उपयोग किए जाने वाले इंटरफेस हैं
  • सेलेनियम में श्रोता के उपयोग का प्रदर्शन किया
  • कई वर्गों के लिए श्रोताओं को लागू किया