TestNG आपको अपनी परियोजना के अंदर परीक्षण विधियों, परीक्षण कक्षाओं और परीक्षण मामलों को चलाने में सक्षम बनाता है। समानांतर निष्पादन करके, हम 'निष्पादन समय' को कम कर सकते हैं क्योंकि परीक्षण शुरू किए जाते हैं और विभिन्न थ्रेड्स में एक साथ निष्पादित होते हैं।
यहां हम देखेंगे कि TestNG का उपयोग करके कई कक्षाएं (उर्फ अलग-अलग सुइट) कैसे चलाएं।
चरण 1) परीक्षण निष्पादित करने के लिए TestNG.xml फ़ाइल बनाना
ऐसा करने के लिए नीचे दिए गए चरणों का पालन करें।
- ग्रहण में एक नई परियोजना बनाएँ
- परियोजनाओं में दो पैकेज बनाएँ (उन्हें com.suite1 और com.suite2 के रूप में नाम दें)
- प्रत्येक पैकेज में एक क्लास बनाएं (उन्हें Flipkart.java और Snapdeal.java के रूप में नाम दें) और संबंधित कक्षाओं में नीचे दिए गए कोड को कॉपी करें
- अपनी परियोजना में एक नई फ़ाइल बनाएं और उसे testng.xml नाम दें (सुनिश्चित करें कि आपने ग्रहण के लिए परीक्षण प्लगइन स्थापित किया है, यहां उपलब्ध निर्देश)। Testng.xml में सभी कॉन्फ़िगरेशन (क्लासनाम, टेस्टनाम और सूटनाम शामिल हैं।
Flipkart.java
पैकेज com.suite1;आयात java.util.concurrent.TimeUnit;आयात org.openqa.selenium.Alert;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.WebElement;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.openqa.selenium.interactions.Actions;आयात org.testng.annotations.AfterClass;आयात org.testng.annotations.BeforeClass;आयात org.testng.annotations.Test;सार्वजनिक वर्ग फ्लिपकार्ट {WebDriver ड्राइवर = नया FirefoxDriver ();स्ट्रिंग उपयोगकर्ता नाम = ""; // अपना उपयोगकर्ता नाम और पासवार्ड बदलेंस्ट्रिंग पासवर्ड = "";// यह विधि फ्लिपकार्ट URL को नेविगेट करने के लिए है@कक्षा से पहलेसार्वजनिक शून्य init () {Driver.manage ()। window ()। मैक्सिमम ();Driver.manage ()। टाइमआउट ()। निहितार्थ (60, TimeUnit.SECONDS);Driver.navigate (); से ("https://www.flipkart.com");}// फ्लिपकार्ट में लॉग इन करने के लिए@परीक्षासार्वजनिक शून्य लॉगिन () {Driver.findElement (By.partialLinkText ("लॉगिन"))। क्लिक करें ();ड्राइवरBy.cssSelector ("। Fk-input.login-form-input.user-email")).sendKeys (उपयोगकर्ता नाम);ड्राइवरBy.cssSelector ("। Fk-input.login-form-input.user-pwd").sendKeys (पासवर्ड);ड्राइवर।}// उत्पाद के लिए खोजें@परीक्षासार्वजनिक शून्य खोजDriver.findElement (By.id ("fk-top-search-box"))। sendKeys ("मोटो जी 3");ड्राइवरBy.cssSelector ("खोज-बार-सबमिट -fk-font-13.fk-font-bold")).click ();// खोज परिणामों में पहले आइटम का चयन करेंस्ट्रिंग css = ".gd-row.browse-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";Driver.findElement (By.cssSelector (css)); क्लिक करें ();}@परीक्षासार्वजनिक शून्य खरीदेंड्राइवरBy.cssSelector ("। Btn-express-checkout.btn-big.current").click ();ड्राइवर।अलर्ट a = driver.switchTo ()। Alert ();a.accept ();}@परीक्षासार्वजनिक शून्य लॉगआउट () {क्रियाएँ s = नए क्रिया (ड्राइवर);WebElement उपयोगकर्ता = driver.findElement (By.partialLinkText (उपयोगकर्ता नाम));s.moveToElement (उपयोगकर्ता) .build ()। प्रदर्शन ();Driver.findElement (By.linkText ("लॉगआउट"))। क्लिक करें ();}@क्लास के बादसार्वजनिक शून्य छोड़ () {Driver.close ();}}
SnapDeal.java
पैकेज com.suite2;आयात java.util.concurrent.TimeUnit;आयात org.openqa.selenium.Alert;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.WebElement;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.openqa.selenium.interactions.Actions;आयात org.testng.annotations.AfterClass;आयात org.testng.annotations.BeforeClass;आयात org.testng.annotations.Test;सार्वजनिक वर्ग स्नैपडील {WebDriver ड्राइवर = नया FirefoxDriver ();स्ट्रिंग उपयोगकर्ता नाम = ""; // अपना उपयोगकर्ता नाम और पासवार्ड बदलेंस्ट्रिंग पासवर्ड = "";स्ट्रिंग पिनकोड = "";// यह विधि स्नैपडील URL को नेविगेट करने के लिए है@कक्षा से पहलेसार्वजनिक शून्य init () {Driver.manage ()। window ()। मैक्सिमम ();Driver.manage ()। टाइमआउट ()। निहितार्थ (60, TimeUnit.SECONDS);Driver.navigate (); से ("https://www.snapdeal.com");}// फ्लिपकार्ट में लॉग इन करने के लिए@परीक्षासार्वजनिक शून्य लॉगिन () {Driver.findElement (By.xpath ("// बटन [पाठ () = 'लॉगिन']") पर क्लिक करें ();Driver.switchTo ()। फ्रेम ("loginIframe");ड्राइवर.click ();Driver.findElement (By.id ("j_username"))। sendKeys (उपयोगकर्ता नाम);Driver.findElement (By.id ("j_password_login"))। SendKeys (पासवर्ड);ड्राइवर।Driver.switchTo ()। DefaultContent ();}// उत्पाद के लिए खोजें@परीक्षासार्वजनिक शून्य खोजड्राइवर।.sendKeys ("iphone 6s");ड्राइवर।// खोज परिणामों में पहले आइटम का चयन करेंस्ट्रिंग css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";Driver.findElement (By.cssSelector (css)); क्लिक करें ();}@परीक्षासार्वजनिक शून्य खरीदेंDriver.findElement (By.xpath ("// li [समाहित है (पाठ), 'सिल्वर')]")) क्लिक करें ();Driver.findElement (By.id ("पिनकोड-चेक"))। sendKeys (पिनकोड);Driver.findElement (By.id ("buy-button-id"))। click ();Driver.findElement (By.cssSelector ("i [title = 'Delete Item']"))) क्लिक करें ();अलर्ट a = driver.switchTo ()। Alert ();a.accept ();}@परीक्षासार्वजनिक शून्य लॉगआउट () {Driver.findElement (By.linkText (अब "START SHOPPING अब")) क्लिक करें ();क्रियाएँ s = नए क्रिया (ड्राइवर);WebElement उपयोगकर्ता = driver.findElement (By.cssSelector ("। Sd-icon.sd-icon-user"));s.moveToElement (उपयोगकर्ता) .build ()। प्रदर्शन ();Driver.findElement (By.linkText ("लॉगआउट"))। क्लिक करें ();}@क्लास के बादसार्वजनिक शून्य छोड़ () {Driver.close ();}}
TestNg.xml
<सुइट थ्रेड-काउंट = "1" क्रिया = "1" नाम = "जीमेल सूट" एनोटेशन = "जेडीके" समानांतर = "परीक्षण"><परीक्षण नाम = "फ्लिपकार्ट"><कक्षाएं><वर्ग नाम = "com.suite1.Flipkart" /> कक्षाएं> परीक्षण><परीक्षण नाम = "Myntra"><कक्षाएं><वर्ग नाम = "com.suite2.SnapDeal" /> कक्षाएं> परीक्षण> सूट>
अंतिम परियोजना संरचना नीचे दी गई है,
चरण 2) TestNG में समानांतर निष्पादन
ऊपर दिखाए गए अनुसार xml फ़ाइल बनाने के बाद, अगले चरण में, हम समानांतर परीक्षण को निष्पादित करेंगे। नीचे कोड है।
1) थ्रेड-काउंट : इसका उपयोग समानांतर स्क्रिप्ट के लिए किया जाता है, संख्या स्क्रिप्ट के आधार पर। यह समानांतर या अनुक्रमिक क्रम में निष्पादित होगा।
2) क्रिया : इसका उपयोग कंसोल में निष्पादन विवरण को लॉग करने के लिए किया जाता है। मान 1-10 होना चाहिए। कंसोल विंडो में लॉग विवरण अधिक विस्तृत और स्पष्ट हो जाएगा क्योंकि आप testng.xml कॉन्फ़िगरेशन फ़ाइल में वर्बोज़ विशेषता का मान बढ़ाते हैं।
3) नाम : सुइट का नाम। यहाँ यह "जीमेल सूट" है
4) समानांतर : स्क्रिप्ट को समानांतर चलाने के लिए, मूल्य परीक्षण / कक्षाएं / तरीके / सूट हो सकते हैं। डिफ़ॉल्ट मान कोई नहीं है
Testng.xml पर राइट क्लिक करें और परीक्षण के रूप में रन का चयन करें, एक बार सफल होने पर आप सभी परिणाम देखेंगे
जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलेगा।
आउटपुट:
1) testng.xml में दिए गए सूट का नाम
2) testng.xml में दिए गए परीक्षण का नाम
3) testng.xml में दिए गए वर्ग का नाम
4) .java फ़ाइल में @Test के साथ एनोटेट विधि नाम
इसी तरह, यह स्नैप डील के लिए टेस्ट सूट भी निष्पादित करेगा।
निष्कर्ष:
यहां हमने ऊपर के उदाहरण में देखा है कि समानांतर परीक्षण को निष्पादित करने के लिए Testng का उपयोग कैसे करें। TestNG एकल कॉन्फ़िगरेशन फ़ाइल (XML) में समानांतर में कई परीक्षण निष्पादित करने का विकल्प देता है।