TestNG एक टेस्टिंग फ्रेमवर्क है जो विभिन्न प्रकार के टेस्ट डिजाइन जैसे कि यूनिट, फंक्शनल, एंड टू एंड, यूआई और इंटीग्रेशन टेस्ट को कवर करता है।
आप एक या एक से अधिक पैकेज चला सकते हैं (यहां पैकेज का मतलब उचित डायरेक्टर फॉर्मेट में कक्षाओं के समूह को एनकैप्सुलेट करना है) XML बनाकर और इसे मावेन के माध्यम से चला सकते हैं।
इस ट्यूटोरियल में, आप सीखेंगे-
- उदाहरण के साथ TestNG समूह
- पर्यावरण चर में मावेन और जावा पथ सेट करें (विंडोज़ उपयोगकर्ता के लिए)
- एक्सएमएल का परिचय और एक्सएमएल फाइलें कैसे बनाएं
- ग्रुपिंग के बजाय एक अन्य तंत्र "एक्सएमएल" या "एक्सएमएल" टेस्ट एक्सएमएल में शामिल है
- XML फ़ाइल (वीडियो डेमो) का उपयोग करके कोड कैसे चलाएं
उदाहरण के साथ TestNG समूह
जब हम Testng में समूहों का उपयोग करते हैं,
- हम अलग-अलग वर्गों (कार्यक्षमता के आधार पर) में अलग से परीक्षण विधियों को परिभाषित नहीं करना चाहते हैं
- उसी समय कुछ परीक्षण मामलों को अनदेखा करना (निष्पादित नहीं करना) चाहते हैं जैसे कि वे कोड में मौजूद नहीं हैं।
- इसलिए इसे पूरा करने के लिए हमें उन्हें समूह में लाना होगा। यह TestNG में समर्थित "शामिल" और "बहिष्कृत" तंत्र का उपयोग करके किया जाता है।
नीचे दिए गए उदाहरण में, हमने XML फ़ाइल में समूहों का उपयोग करने का सिंटैक्स दिखाया है।
@ टेस्ट (समूह = {"बॉन्डिंग", "strong_ties"})
यहां हम 2 समूह नामों का उपयोग कर रहे हैं जैसे "बॉन्डिंग" और "strong_ties" (ये तार्किक नाम हैं जिन्हें अपनी इच्छा के अनुसार बदला जा सकता है)।
<समूह> टैग XML में समूहों की शुरुआत को परिभाषित करता है।
परीक्षण वर्गों से उल्लेखित समूह को चुनने के लिए अपने XML को अनुकूलित करें। नीचे उल्लेख किया गया है कि XML फ़ाइल में समूहों को कैसे घोषित किया जाए इसका सिंटैक्स है
<समूह><रन><नाम = "बॉन्डिंग" /> शामिल करें रन> समूह>
तो, आइए मान लेते हैं कि एक कक्षा में 10 परीक्षण विधियाँ हैं।
उनमें से,
- 6 तरीकों को "बॉन्डिंग" समूह में टैग किया गया है और
- 4 "strong_ties" समूह में हैं
आगे बढ़ते हुए, हम जावा आधारित मावन परियोजना में XML फ़ाइलों का उपयोग करने वाले समूहों के उपयोग को प्रदर्शित करने के लिए मावेन / जावा पथ सेट करने और ग्रहण आईडीई का उपयोग करने जा रहे हैं।
पर्यावरण चर में मावेन और जावा पथ सेट करें (विंडोज़ उपयोगकर्ता के लिए)
कृपया https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html देखें
https://www.guru99.com/install-java.html
एक्सएमएल का परिचय और एक्सएमएल फाइलें कैसे बनाएं
- मावेन ढांचे में एक्सएमएल (एक्सटेंसिबल मार्कअप लैंग्वेज) फ़ाइल में एक या अधिक परीक्षणों की जानकारी होती है और इसे टैग <सूट> द्वारा परिभाषित किया जाता है ।
- XML में परीक्षण की जानकारी टैग <परीक्षण> द्वारा दर्शाई गई है और इसमें एक या अधिक TestNG कक्षाएं हो सकती हैं।
- एक जावा वर्ग जिसमें परीक्षण विधियों के ऊपर @ सबसे अधिक एनोटेशन होता है, टेस्टएनजी विधियों के रूप में परिभाषित किया गया है।
एक कार्यशील TestNG xml के निर्माण के लिए <सूट>, <परीक्षण> और <वर्ग> जैसे कई टैग्स का उपयोग अनुक्रम में किया जाता है
- पहला <सूट> टैग है, जो एक तार्किक नाम रखता है जो पूर्ण जानकारी को परिभाषित करता है TestNG ने निष्पादन रिपोर्ट उत्पन्न की।
- दूसरा है <परीक्षण नाम = "गुरु 99 स्मोक टेस्ट डेमो">, ध्यान दें कि यह तार्किक नाम है जो परीक्षण निष्पादन रिपोर्ट जैसे पास, फेल, टेस्ट मामलों को छोड़ और निष्पादन और समूह की जानकारी के लिए कुल समय जैसी अन्य जानकारी रखता है।
- तीसरा है
, com.group.guru99 पैकेज का उपयोग किया जाता है, और टेस्ट क्लास का नाम TC_Class1 है।
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"?><सूट का नाम = " सूट "><परीक्षण नाम = " गुरु 99 धूम्रपान परीक्षण डेमो "><समूह><रन><नाम = "strong_ties" /> शामिल करें रन> समूह><कक्षाएं><वर्ग नाम = " com.group.guru99.TC_Class1 " /> कक्षाएं> परीक्षण> सूट>
हम आगामी वीडियो के लिए इस XML का उपयोग नीचे की ओर करेंगे।
ग्रुपिंग के बजाय एक अन्य तंत्र "एक्सएमएल" या टेस्ट एक्सएमएल में "शामिल" है
मान लीजिए कि आप समूह तंत्र के उपयोग को जटिल मान रहे हैं, तो testNG XML एक परीक्षण को बाहर करने / शामिल करने के लिए कार्यक्षमता की सुविधा प्रदान करता है।
टैग छोड़ें: टैग के लिए सिंटैक्स टैग <बहिष्कृत नाम = "$ {TEST_CASE_NAME}" /> टैग शामिल करें : टैग शामिल करने के लिए सिंटैक्स <शामिल नाम = "$ {TEST_CASE_NAME}" />
नोट: हम एक बार में कई परीक्षण मामलों को शामिल / बाहर कर सकते हैं, और यह समूहों के साथ भी काम करता है।
XML फ़ाइल (वीडियो डेमो) का उपयोग करके कोड कैसे चलाएं
समूह के साथ जावा कोड और एक्सएमएल की व्याख्या , एक्सएमएल में टैग को बाहर करना और शामिल करना।
- परिदृश्य : गुरु 99 डेमो बैंकिंग साइट लॉन्च करें, लॉगिन के बाद कुछ चीज़ों को सत्यापित करें, इसके बाद क्रेडेंशियल्स डालें और लॉग इन करते समय एप्लिकेशन पर कुछ नई चीज़ों को पुनः सत्यापित करें।
नोट : प्रत्येक चरण जिसे आप कोड करते हैं, उसे अलग-अलग विधियों में घोषित किया जाना चाहिए, लेकिन निष्पादित होने पर, यह XML फ़ाइल में प्रविष्टियों के आधार पर परीक्षण विधियों को निष्पादित करेगा।
विधि 1 : ब्राउज़र शुरू करें और URL लॉन्च करें (tc01LaunchURL ())
विधि 2 : लॉग इन पेज हेडिंग सत्यापित करें (tc02VerifyLaunchPage ())
विधि 3 : लॉगिन फ़ॉर्म पर उपयोगकर्ता नाम और पासवर्ड दर्ज करें (tc03EnterCredentials ())
विधि 4 : उपयोगकर्ता डैशबोर्ड पर प्रबंधक ID की उपस्थिति सत्यापित करें (tc04VerifyLoggedInPage ())
विधि 5 : उपयोगकर्ता डैशबोर्ड पर कुछ और लिंक सत्यापित करें (tc05VerifyHyperlinks ())
हमारे परिदृश्य के लिए कोड:
पैकेज com.group.guru99;आयात java.util.concurrent.TimeUnit;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.testng.Assert;आयात org.testng.annotations.Test;सार्वजनिक वर्ग TC_Class1 {सार्वजनिक स्थिर अंतिम WebDriver webDriver = नया FirefoxDriver () ;;स्ट्रिंग लॉन्चपेजेजिंग = "// h3 [पाठ () = 'गुरु99 बैंक']";अंतिम स्ट्रिंग userName_element = "// input [@ name = 'uid']", password_element = "// इनपुट [@ नाम = 'पासवर्ड']"।signIn_element = "// input [@ name = 'btnLogin']";अंतिम स्ट्रिंग userName_value = "mngr28642", password_value = "ydAnate";अंतिम स्ट्रिंग मैनेजरआईडी = "// td [समाहित है (पाठ) (, 'मंगर आईडी')]";अंतिम स्ट्रिंग newCustomer = "//a J.@href='addcustomerpage.php ']", fundTransfer = "//a did@href='FundTransInput.php']";/ *** यह परीक्षण मामला वेबड्राइवर को इनिशियलाइज़ करेगा* /@ टेस्ट (समूह = {"बॉन्डिंग", "strong_ties"})सार्वजनिक शून्य tc01LaunchURL () {webDriver.manage ()। window ()। मैक्सिमम ();webDriver.manage ()। टाइमआउट ()। निहितार्थ (20, TimeUnit.SECDDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** लॉगिन पेज पर हेडिंग की उपस्थिति की जांच करेंगे* /@ टेस्ट (समूह = {"बॉन्डिंग"})सार्वजनिक शून्य tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHdingding))) isisisplayed ()।"होम पेज हेडिंग प्रदर्शित नहीं होती है");System.out.println ("होम पेज हेडिंग प्रदर्शित होती है");}/ *** यह परीक्षण मामला उपयोगकर्ता नाम, पासवर्ड दर्ज करेगा और फिर क्लिक करेगा* साइन इन करें बटन* /@ टेस्ट (समूह = {"बॉन्डिंग", "strong_ties"})सार्वजनिक शून्य tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element))। sendKeys (userName_value);webDriver.findElement (By.xpath (password_element))। sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element))। क्लिक करें ();}/ *** यह परीक्षण मामला डैशबोर्ड पर मंगेतर की आईडी उपस्थिति को सत्यापित करेगा* /@ टेस्ट (समूह = {"strong_ties"})सार्वजनिक शून्य tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID))। IsDisplayed ())"प्रबंधक आईडी लेबल प्रदर्शित नहीं होता है");System.out.println ("Manger Id लेबल प्रदर्शित होता है");}/ *** यह परीक्षण मामला नए ग्राहक लिंक की उपस्थिति की जांच करेगा* और वामपंथी पैनल में फंडट्रांसफर लिंक* /@ टेस्ट (समूह = {"बॉन्डिंग"})सार्वजनिक शून्य tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer))) isEnabled () है।"नए ग्राहक हाइपरलिंक प्रदर्शित नहीं है");System.out.println ("नया ग्राहक हाइपरलिंक प्रदर्शित होता है");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)) isEnabled ()।"फंड ट्रांसफर हाइपरलिंक प्रदर्शित नहीं है");System.out.println ("फंड ट्रांसफर हाइपरलिंक प्रदर्शित होता है");}}
कृपया ध्यान दें: क्रेडेंशियल केवल 20 दिनों के लिए मान्य हैं, इसलिए यदि आप अपने स्थानीय मशीन पर कोड चलाने की कोशिश कर रहे हैं, तो आपको अमान्य क्रेडेंशियल त्रुटि का सामना करना पड़ सकता है। कृपया अपनी लॉगिन क्रेडेंशियल उत्पन्न करने के लिए नीचे दिए गए चरणों को खोजें:
- Http://www.demo.guru99.com लॉन्च करें
- बॉक्स में अपनी ईमेल आईडी डालें।
- दर्ज करें पर क्लिक करें और स्क्रीन पर अपना लॉगिन विवरण देखें।
कोड की व्याख्या:
जैसा कि ऊपर उल्लेख किया गया है, हमने स्वतंत्र तरीकों में प्रत्येक कार्रवाई करने के लिए 5 परीक्षण मामले बनाए हैं।
आप यह देख सकते हैं कि प्रत्येक विधि में, हमने इसमें कुछ मान रखने वाले एक समूह पैरामीटर को संबद्ध किया है।
मूल रूप से, ये विभेदी समूहों के नाम हैं, जैसे "strong_ties" और "बॉन्डिंग"।
- पहले और तीसरे तरीकों को "बॉन्डिंग", "strong_ties" को टैग किया जाता है, जिसका अर्थ है कि अगर XML को किसी भी समूह में अपडेट किया जाता है, तो यह टेस्ट केस चलेगा।
- दूसरी विधि केवल "बॉन्डिंग" समूह को टैग की गई है इसका मतलब है कि अगर XML को बॉन्डिंग समूह के साथ अपडेट किया गया है। केवल उसी स्थिति में यह परीक्षण केस चलेगा।
- चौथा टेस्ट केस strong_ties समूह को टैग किया गया है, जिसका अर्थ है कि यह परीक्षण केस केवल तभी चलेगा जब XML को strong_ties समूह नाम के साथ अपडेट किया गया हो।
- अंतिम लेकिन कम से कम पांचवें परीक्षण का मामला संबंध समूह से जुड़ा नहीं है, जिसका अर्थ है कि यह परीक्षण मामला केवल तभी चलेगा जब XML को बंधन समूह के नाम के साथ अपडेट किया गया हो।
तो कुल मिलाकर, हमारे पास 4 परिदृश्य हैं;
- हम समूह के नाम के बावजूद सभी परीक्षण मामलों को चलाना चाहते हैं। इस स्थिति में, हम समूह टैग को एक्सएमएल चलाने से हटा देंगे।
- हम परीक्षण मामले को कुछ परीक्षण चलाना चाहते हैं जो केवल समूहों में से किसी से संबंधित हैं, जैसे कि strong_ties या संबंध
- कृपया संदर्भ:
- इस वीडियो में, समूह पैरामीटर को XML चलाने से टिप्पणी दी गई है। इसलिए, आप देखेंगे कि सभी परीक्षण मामलों को निष्पादित किया गया था।
- वीडियो जारी रखने के लिए, अब हमने XML में समूह का नाम शामिल किया है, आप केवल उस समूह के लिए विशिष्ट परीक्षण मामलों को देख सकते हैं जो केवल चल रहा है।
- हम परीक्षण मामले को बाहर करने के लिए बहिष्करण तंत्र का उपयोग कर रहे हैं:
- कृपया संदर्भ
- आप देखते हैं कि हमने XML चलाने में उनका नाम लिखकर कुछ टेस्ट केस (tc02) को बाहर कर दिया है। अंतिम परिणाम में उल्लेखित परीक्षण मामले नहीं चले।
- अंतिम, हम परीक्षण मामलों को शामिल करने के लिए परीक्षण तंत्र को शामिल कर रहे हैं (tc01LaunchURL, tc03EnterCredentials और tc05VerifyHyperlinks)
- कृपया संदर्भ
- इस वीडियो में, आप देखेंगे कि परीक्षण के मामले जो एक्सएमएल में उल्लिखित हैं, केवल परीक्षण निष्पादन के दौरान चल रहे हैं।
कृपया उल्लेखित URL से कोड डाउनलोड करें, इसमें सभी प्रकार के testXML शामिल होंगे:
उपरोक्त कोड डाउनलोड करें
निष्कर्ष
हमने मावेन परियोजना में एक्सएमएल का उपयोग करके परीक्षण मामलों को चलाने के लिए अपेक्षाकृत नया तरीका सीखा है।
हमने TestNG पर एक संक्षिप्त परिचय प्रदान करके शुरुआत की और समूहों के पूर्ण तकनीकी विनिर्देश के साथ जारी रखा, बाहर रखा और शामिल किया।