TestNG श्रोतागण Selenium
दो मुख्य श्रोता हैं।
- वेबड्राइवर श्रोता
- TestNG श्रोताओं
इस ट्यूटोरियल में हम चर्चा करेंगे टेस्टिंग श्रोताओं।
श्रोता क्या है? TestNG?
श्रोता को इंटरफ़ेस के रूप में परिभाषित किया जाता है जो डिफ़ॉल्ट को संशोधित करता है TestNG'का व्यवहार। जैसा कि नाम से पता चलता है कि श्रोता सेलेनियम स्क्रिप्ट में परिभाषित इवेंट को "सुनते" हैं और उसके अनुसार व्यवहार करते हैं। इसका उपयोग सेलेनियम में श्रोता इंटरफ़ेस को लागू करके किया जाता है। यह कस्टमाइज़ करने की अनुमति देता है TestNG रिपोर्ट या लॉग। कई प्रकार के होते हैं TestNG श्रोता उपलब्ध हैं.
श्रोताओं के प्रकार TestNG
कई प्रकार के श्रोता हैं जो आपको बदलने की अनुमति देते हैं TestNG'का व्यवहार.
नीचे कुछ उदाहरण दिए गए हैं TestNG श्रोताओं:
- आईएनोटेशनट्रांसफॉर्मर,
- Iएनोटेशनट्रांसफॉर्मर2 ,
- Iकॉन्फ़िगरेबल,
- आईकॉन्फ़िगरेशन श्रोता,
- IExecutionListener,
- आईहुकेबल,
- IInvokedMethodListener ,
- IInvokedMethodListener2,
- आईमेथडइंटरसेप्टर,
- आईरिपोर्टर,
- ISuiteListener,
- आईटेस्टलिसनर.
उपरोक्त इंटरफ़ेस को कहा जाता है TestNG श्रोता। इन इंटरफेस का उपयोग सेलेनियम में लॉग उत्पन्न करने या अनुकूलित करने के लिए किया जाता है TestNG रिपोर्ट.
इस ट्यूटोरियल में, हम ITestListener को कार्यान्वित करेंगे।
ITestListener में निम्नलिखित विधियाँ हैं
- ऑनस्टार्ट- जब कोई भी टेस्ट शुरू होता है तो OnStart विधि को कॉल किया जाता है।
- onTestSuccess- किसी भी टेस्ट की सफलता पर onTestSuccess विधि को बुलाया जाता है।
- onTestFailure- किसी भी टेस्ट के असफल होने पर onTestFailure विधि को बुलाया जाता है।
- onTestSkipped- किसी भी टेस्ट को छोड़ देने पर onTestSkipped विधि को कॉल किया जाता है।
- onTestFailedButWithinSuccessPercentage- विधि को हर बार बुलाया जाता है जब परीक्षण विफल हो जाता है लेकिन सफलता प्रतिशत के भीतर होता है।
- परसमाप्त- सभी टेस्ट निष्पादित होने के बाद onFinish विधि को बुलाया जाता है।
परिदृश्य का परीक्षण करें
इस परीक्षण परिदृश्य में, हम लॉगिन प्रक्रिया को स्वचालित करेंगे और 'ItestListener' को कार्यान्वित करेंगे।
- लांच Firefox और साइट खोलें https://demo.guru99.com/V4/
- एप्लीकेशन में लॉगइन करें.
बनाने के लिए कदम TestNG श्रोता
उपरोक्त परीक्षण परिदृश्य के लिए, हम श्रोता को कार्यान्वित करेंगे।
चरण 1) क्लास “ListenerTest” बनाएँ जो 'ITestListener' को लागू करता है। माउस को रेडलाइन टेक्स्ट पर ले जाएँ, और Eclipse नीचे दी गई स्क्रीन में दिखाए अनुसार आपको 2 त्वरित समाधान सुझाए जाएंगे:
बस “अप्रयुक्त विधियों को जोड़ें” पर क्लिक करें। कोड में कई अप्रयुक्त विधियाँ (बिना बॉडी के) जोड़ी जाती हैं। नीचे देखें-
package Listener_Demo;
import org.testng.ITestContext ;
import org.testng.ITestListener ;
import org.testng.ITestResult ;
public class ListenerTest implements ITestListener
{
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailure(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSuccess(ITestResult arg0) {
// TODO Auto-generated method stub
}
}
आइए 'ListenerTest' क्लास को संशोधित करें। विशेष रूप से, हम निम्नलिखित विधियों को संशोधित करेंगे-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
संशोधन सरल है। हम सिर्फ टेस्ट का नाम प्रिंट करते हैं।
लॉग कंसोल में बनाए जाते हैं। उपयोगकर्ता के लिए यह समझना आसान है कि कौन सा परीक्षण पास, फेल और स्किप स्थिति में है।
संशोधन के बाद, कोड इस प्रकार दिखेगा-
package Listener_Demo;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class ListenerTest implements ITestListener
{
@Override
public void onFinish(ITestContext Result)
{
}
@Override
public void onStart(ITestContext Result)
{
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult Result)
{
}
// When Test case get failed, this method is called.
@Override
public void onTestFailure(ITestResult Result)
{
System.out.println("The name of the testcase failed is :"+Result.getName());
}
// When Test case get Skipped, this method is called.
@Override
public void onTestSkipped(ITestResult Result)
{
System.out.println("The name of the testcase Skipped is :"+Result.getName());
}
// When Test case get Started, this method is called.
@Override
public void onTestStart(ITestResult Result)
{
System.out.println(Result.getName()+" test case started");
}
// When Test case get passed, this method is called.
@Override
public void onTestSuccess(ITestResult Result)
{
System.out.println("The name of the testcase passed is :"+Result.getName());
}
}
चरण 2) लॉगिन प्रक्रिया स्वचालन के लिए एक और क्लास “TestCases” बनाएं। Selenium स्वचालित रूप से लॉगिन करने के लिए यह 'TestCases' निष्पादित करेगा।
package Listener_Demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Listeners;
Import org.testng.annotations.Test;
public class TestCases {
WebDriver driver= new FirefoxDriver();
// Test to pass as to verify listeners .
@Test
public void Login()
{
driver.get("https://demo.guru99.com/V4/");
driver.findElement(By.name("uid")).sendKeys("mngr34926");
driver.findElement(By.name("password")).sendKeys("amUpenu");
driver.findElement(By.name("btnLogin")).click();
}
// Forcefully failed this test as to verify listener.
@Test
public void TestToFail()
{
System.out.println("This method to test fail");
Assert.assertTrue(false);
}
}
चरण 3) इसके बाद, इस श्रोता को हमारे नियमित प्रोजेक्ट क्लास यानी “TestCases” में लागू करें। क्लास और इंटरफ़ेस से कनेक्ट करने के दो अलग-अलग तरीके हैं।
पहला तरीका श्रोता एनोटेशन (@Listeners) का उपयोग करना है जैसा कि नीचे दिखाया गया है:
@Listeners(Listener_Demo.ListenerTest.class)
हम इसका प्रयोग “TestCases” क्लास में करते हैं जैसा कि नीचे दिखाया गया है।
तो अंत में श्रोता एनोटेशन का उपयोग करने के बाद वर्ग ” TestCases ” इस तरह दिखता है:
package Listener_Demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners(Listener_Demo.ListenerTest.class)
public class TestCases {
WebDriver driver= new FirefoxDriver();
//Test to pass as to verify listeners.
@Test
public void Login()
{
driver.get("https://demo.guru99.com/V4/");
driver.findElement(By.name("uid")).sendKeys("mngr34926");
driver.findElement(By.name("password")).sendKeys("amUpenu");
driver.findElement(By.id("")).click();
}
//Forcefully failed this test as verify listener.
@Test
public void TestToFail()
{
System.out.println("This method to test fail");
Assert.assertTrue(false);
}
}
परियोजना संरचना इस प्रकार है:
चरण 4): “TestCases ” क्लास को निष्पादित करें। क्लास “ListenerTest ” में विधियों को @Test के रूप में एनोटेट की गई विधियों के व्यवहार के अनुसार स्वचालित रूप से बुलाया जाता है।
चरण 5): कंसोल पर प्रदर्शित लॉग आउटपुट को सत्यापित करें।
'TestCases' का आउटपुट इस प्रकार दिखाई देगा:
[TestNG] Running: C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml Login Test Case started The name of the testcase passed is:Login TestToFail test case started This method to test fail The name of the testcase failed is:TestToFail PASSED: Login FAILED: TestToFail java.lang.AssertionError: expected [true] but found [false]
एकाधिक कक्षाओं के लिए श्रोता का उपयोग.
यदि परियोजना में कई क्लास हैं तो उनमें से प्रत्येक में श्रोता जोड़ना बोझिल और त्रुटि प्रवण हो सकता है।
ऐसे मामलों में, हम testng.xml बना सकते हैं और XML में श्रोता टैग जोड़ सकते हैं।
यह श्रोता पूरे टेस्ट सूट में लागू किया जाता है, चाहे आपके पास कितनी भी क्लास हों। जब आप इस XML फ़ाइल को चलाते हैं, तो श्रोता उल्लिखित सभी क्लास पर काम करेंगे। आप किसी भी संख्या में श्रोता वर्ग की घोषणा भी कर सकते हैं।
सारांश
श्रोताओं को लॉग उत्पन्न करने या अनुकूलित करने की आवश्यकता होती है TestNG में रिपोर्ट Selenium वेबड्राइवर.
- श्रोता कई प्रकार के होते हैं और उनका उपयोग आवश्यकतानुसार किया जा सकता है।
- श्रोता सेलेनियम वेब ड्राइवर स्क्रिप्ट में उपयोग किए जाने वाले इंटरफेस हैं
- श्रोता के उपयोग का प्रदर्शन किया Selenium
- कई कक्षाओं के लिए श्रोताओं को कार्यान्वित किया गया







