सेलेनियम वेबड्राइवर: टेस्ट केस मैनेजमेंट एंड रिपोर्ट जनरेशन के लिए टेस्टएनजी



यह सेलेनियम वेबड्राइवर ट्यूटोरियल आपको टेस्ट मामलों के प्रबंधन और विस्तृत रिपोर्ट रिपोर्ट बनाने के लिए सेलेनियम के साथ टेस्टएनजी का उपयोग करने की आवश्यकता को समझने में मदद करेगा।

पिछले ब्लॉग में, मैंने आपको अपना पहला सेलेनियम वेबड्राइवर टेस्ट चलाने का तरीका सिखाया। इस ब्लॉग में, मैं उन्नत सेलेनियम वेबड्राइवर अवधारणाओं को कवर करूंगा। मैंने पहले ही काफी बार उल्लेख किया है कि सेलेनियम वेबड्राइवर के पास परीक्षण प्रबंधन और परीक्षण रिपोर्ट पीढ़ी के संबंध में सीमाएँ हैं। तो क्या विकल्प है? सेलेनियम के रूप में लोकप्रिय एक टूल में निश्चित रूप से वर्कअराउंड अधिकार होना चाहिए? बिलकुल यह करता है! हम इस सीमा को हरा देने के लिए सेलेनियम और TestNG के संयोजन का उपयोग कर सकते हैं और यही इस ब्लॉग की चर्चा का विषय होगा।

शुरुआती के लिए Microsoft sql सर्वर ट्यूटोरियल

मामले में, आप सेलेनियम के लिए नए हैं, और बुनियादी अवधारणाओं का परिचय चाहते हैं, आप अपनी यात्रा यहाँ से शुरू कर सकते हैं: ? हालांकि, अन्य लोग इस ब्लॉग से सेलेनियम के लिए टेस्टएनजी के साथ शुरुआत कर सकते हैं।आपको यह भी पता होना चाहिए कि संगठन सक्रिय रूप से पेशेवरों के लिए शिकार कर रहे हैं , यह सॉफ्टवेयर परीक्षकों के लिए मास्टर करने के लिए एक महत्वपूर्ण कौशल बना रहा है।





दुनिया भर के सॉफ्टवेयर डेवलपर्स इस बात पर एकमत होंगे कि परीक्षण के मामलों में कोड लिखना उनके डिबगिंग समय का एक अच्छा हिस्सा बचाता है। क्यों? ऐसा इसलिए है क्योंकि परीक्षण के मामले मजबूत और त्रुटि मुक्त कोड बनाने में मदद करते हैं। इससे ऐसा कैसे होता है? पूरे कोड को छोटे परीक्षण के मामलों में तोड़कर, और फिर इन परीक्षा मामलों में से प्रत्येक का मूल्यांकन करके शर्तों को पारित / विफल करने के लिए, हम त्रुटि-मुक्त कोड बना सकते हैं। चूंकि सेलेनियम परीक्षण मामलों में कोड के निष्पादन का समर्थन नहीं करता है, हमें उसी के लिए टेस्टएनजी का उपयोग करना होगा। यह वह जगह है जहाँ TestNG सेलेनियम ढांचे में फिट बैठता है।

TestNG के लिए खड़ा है अगली पीढ़ी का परीक्षण करें और यह JUnit और NUnit से प्रेरित एक ओपन-सोर्स टेस्ट ऑटोमेशन फ्रेमवर्क है। ठीक है, न केवल प्रेरित, बल्कि उन दो रूपरेखाओं का उन्नयन। तो आप पूछ सकते हैं कि यहां अपग्रेड क्या है?TestNG के साथ उन्नयन यह है कि, यह अतिरिक्त कार्यक्षमता प्रदान करता है जैसे: परीक्षण एनोटेशन, समूहीकरण, प्राथमिकता, मानकीकरण और कोड में तकनीक अनुक्रमण जो पहले संभव नहीं था।



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

testng - सेलेनियम वेबड्राइवर

तो, TestNG को काम कैसे मिलता है? इस प्रश्न का उत्तर दिया जाएगाइस सेलेनियम वेबड्राइवर ट्यूटोरियल ब्लॉग के अगले भाग में, जहाँ मैं चर्चा करूँगा कि TestNG का उपयोग करके विभिन्न परीक्षण मामलों को कैसे प्रबंधित किया जाए।



सेलेनियम वेबड्राइवर टेस्टएनजी के साथ

परीक्षण मामलों को निम्न तरीकों से परिभाषित और प्रबंधित किया जा सकता है:

  1. टेस्ट एनोटेशन
  2. प्राथमिकता
  3. टेस्ट मामलों को अक्षम करना
  4. विधि निर्भरता
  5. समूह बनाना
  6. जोर लगाना
  7. रिपोर्ट पीढ़ी

मुझे समझाने की शुरुआत करेंइन कार्यों में से प्रत्येक।

टेस्ट एनोटेशन

सबसे पहले, अपने आप से यह प्रश्न पूछें: हमें एनोटेशन का उपयोग करने की आवश्यकता क्यों है? हम उनका उपयोग कब कर सकते हैं? अगली विधि को निष्पादित करने के लिए सेलेनियम में एनोटेशन का उपयोग किया जाता है। टेस्ट कोड में हर विधि से पहले टेस्ट एनोटेशन को परिभाषित किया गया है। यदि कोई विधि एनोटेशन के साथ उपसर्ग नहीं करती है, तो उस पद्धति को अनदेखा किया जाएगा और परीक्षण कोड के हिस्से के रूप में निष्पादित नहीं किया जाएगा। उन्हें परिभाषित करने के लिए, तरीकों को केवल, के साथ एनोटेट करने की आवश्यकता है @परीक्षा ‘ उदाहरण के लिए नीचे दिए गए कोड स्निपेट को देखें।

package testng import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeClass आयात ऑर्गैजनेट आयात करें। .BeforeMethod import org.testng.annotations .est public class TestAnnotations {@Test public void myTestMethod () {System.out.println ('इनसाइड मेथड: - myTestMethod') WebDriver Driver = new FirefoxDriver () driver.get ('http:' //www.seleniumframework.com/P Practiceform/ ') स्ट्रिंग शीर्षक = driver.getTitle () System.out.println (शीर्षक) ड्राइवर.quit ()} @BeforeMethod सार्वजनिक शून्य से पहले () {System.out.println (' यह) कोड के टुकड़े को विधि से पहले निष्पादित किया जाता है: - myTestMethod ') System.setProperty (' webdriver.gecko.driver ',' C: UsersVardhanworkspaceSeleniumProjectfilesckododver.exe ')} @AfterMethod जनता की व्यर्थता afterMethod () {Systemoutprint ” कोड को विधि के बाद निष्पादित किया जाता है: - myTestMethod ')} @BeforeClass public void beforeClass () {Syste m.out.println ('वर्ग के निष्पादित होने से पहले इस कोड के टुकड़े को निष्पादित किया जाता है')} @AfterClass public void afterClass () {System.out.println ('इस कोड को कोड को निष्पादित होने के बाद निष्पादित किया जाता है')} }

उपरोक्त कोड में, आपने देखा होगा कि मैंने 'मुख्य' पद्धति को परिभाषित नहीं किया है। हालाँकि, मेरे पास 5 अन्य विधियाँ हैं। वे ‘myTestMethod’, eth odMethod ’,‘ afterMethod ’, and beforeClass’ और Cl afterClass ’हैं। इसके अलावा, कोड में विधियों की परिभाषा के क्रम पर ध्यान दें क्योंकि वे इसी क्रम में निष्पादित नहीं किए जाएंगे।

विधि 'myTestMethod' के साथ एनोटेट किया गया है @परीक्षा , और यह मुख्य विधि या कोड का टुकड़ा है जिसे निष्पादित किया जाना है। इस विधि को निष्पादित करने से पहले और बाद में अन्य एनोटेट विधियों को निष्पादित किया जाएगा। चूंकि 'पहले मैथोड' के साथ एनोटेट किया गया है @BeforeMethod T myTestMethod ’निष्पादित होने से पहले इसे निष्पादित किया जाएगा। इसी तरह, with afterMethod ’को एनोटेट किया जाता है @AfterMethod , और इस प्रकार इसे 'myTestMethod' के बाद निष्पादित किया जाएगा।

हालाँकि, 'पहले से क्लिक करें' को एनोटेट किया गया है @कक्षा से पहले , जिसका अर्थ है कि यह वर्ग द्वारा निष्पादित होने से पहले ही निष्पादित किया जाएगा। हमारे वर्ग का नाम यहाँ है TestAnnotations , और इस तरह कक्षा के निष्पादित होने से पहले, ass पहले क्लॉस ’के अंदर कोड का टुकड़ा निष्पादित हो जाएगा। इसी तरह, 'afterClass' को एनोटेट किया जाता है @AfterMethod , और इस तरह कक्षा के बाद निष्पादित किया जाएगा TestAnnotations निष्पादित किया जाता है।

यदि आपको अभी भी निष्पादन के आदेश के बारे में भ्रम है, तो नीचे दिए गए स्निपेट निश्चित रूप से आपकी मदद करेंगे।

1. पहले से देखें 2. पहले से पहले 3. पहले से तैयार 4. पहले से काम करें। 5 टेस्ट। 6 के बाद। 7 के बाद। बाद में 8. सबसे बाद में।

उपरोक्त कोड का आउटपुट होगा:

कोड के इस टुकड़े को कक्षा निष्पादित होने से पहले निष्पादित किया जाता है। इस कोड के कोड को विधि से पहले निष्पादित किया जाता है: - myTestMethod अंदर की विधि: - myTestMethod 1493192682118 geckodriver INFO सुनकर 127.0.0.1:13676 1493192682713 mozprofile :: प्रोफ़ाइल INFO पथ उपयोगकर्ता का उपयोग कर रहा है। .wGcwvwXkl2y 1493192682729 geckodriver :: marionette INFO प्रारंभ ब्राउज़र C: प्रोग्राम फाइल्स (x86) Mozilla Firefoxirefox.exe 1493192682729 geckodriver :: marionette INFO कनेक्टिंग टू दी मैरियनेट ऑन लोकलहोस्ट: 59792 [GPU 6152] WNNN] /moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/chrome/common/ipc_channel_win.cc, लाइन 346 1419192688316 मैरियनट इन्फो 28 पोर्ट 2017 पर 26792 अप्रैल, 2017 1:14:49 PM ऑर्गन सुन रहा है। openqa.selenium.remote.ProtocolHandshake createSession INFO: पता लगाई गई बोली: W3C जावास्क्रिप्ट त्रुटि: http://t.dtscout.com/i/?l=http%3A%2F%2FFwww.seleniumframework.com%2FP प्रैक्टिशनफॉर्म%2F&j=, लाइन 1: TypeError: document.getElementsByTagNa मुझे (...) [0] अपरिभाषित सेलेनियम फ्रेमवर्क है प्रैक्टिसफॉर्म 1493192695134 मैरियनट इन्फो नए कनेक्शन अब स्वीकार नहीं किए जाएंगे 26 अप्रैल, 2017 1:14:57 अपराह्न। org org.openqa.selenium.os.UnixProcess SEVERE को नष्ट करें: PID 6724 प्रक्रिया को मारने में असमर्थ इस कोड का टुकड़ा विधि के बाद निष्पादित किया जाता है: - myTestMethod वर्ग निष्पादित होने के बाद इस कोड के टुकड़े को निष्पादित किया जाता है: myTestMethod ===================================== ============ डिफ़ॉल्ट परीक्षण टेस्ट चलते हैं: 1, विफलताएं: 0, कौशल: 0 ======================== ==================================================== ==================== डिफ़ॉल्ट सूट कुल परीक्षण चलाते हैं: 1, विफलताएं: 0, कौशल: 0 =============== ================================

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

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

मैंने अपने कोड में केवल 5 विभिन्न एनोटेशन का उपयोग किया है। लेकिन कई और एनोटेशन हैं जिनका उपयोग अगली विधि को निष्पादित करने के लिए नियंत्रित करने के लिए किया जा सकता है। एनोटेशन की पूरी सूची में बताया गया हैतालिकाके नीचे:

@BeforeSuite - विधि एनोटेट के साथ @BeforeSuite इससे पहले कि सूट में सभी परीक्षण चला चुके हैं।

@ आफ्टरसाइट - विधि एनोटेट के साथ @ आफ्टरसाइट सुइट में सभी परीक्षण चलने के बाद चलेगा।

@ सबसे पहले - विधि एनोटेट के साथ @ सबसे पहले कक्षा से संबंधित किसी भी परीक्षण विधि के चलने से पहले चलेगा।

@ बाद में - विधि एनोटेट के साथ @ बाद में एक कक्षा से संबंधित सभी परीक्षण विधियों के चलने के बाद चलेगा।

@BeforeGroup - विधि एनोटेट के साथ @BeforeGroup प्रत्येक समूह चलाने से पहले चलेगा।

बादशाह ने अपाचे हडूप के लिए प्रमाणित व्यवस्थापक बनाया

@ आफ्टरग्रुप - विधि एनोटेट के साथ @ आफ्टरग्रुप हर समूह चलाने के बाद चलेगा।

@कक्षा से पहले - विधि एनोटेट के साथ @कक्षा से पहले वर्तमान कक्षा में पहली परीक्षा विधि लागू होने से पहले एक बार चलेगी।

@क्लास के बाद - विधि एनोटेट के साथ @क्लास के बाद वर्तमान कक्षा में सभी परीक्षण विधियों के चलने के बाद एक बार चलेंगे।

@BeforeMethod - विधि एनोटेट के साथ @BeforeMethod एक कक्षा के अंदर किसी भी परीक्षण विधि के चलने से पहले चलेगा।

@AfterMethod - विधि एनोटेट के साथ @AfterMethod एक कक्षा के अंदर प्रत्येक परीक्षण विधि के चलने के बाद चलेगा।

@परीक्षा - विधि एनोटेट के साथ @परीक्षा पूरे कार्यक्रम में मुख्य परीक्षण विधि है। इस विधि के इर्द-गिर्द अन्य एनोटेट विधियों का निष्पादन किया जाएगा।

TestNG रिपोर्ट का स्क्रीनशॉट हैनीचे प्रस्तुत है: -

प्राथमिकता

हमने इस बारे में बात की कि कैसे विभिन्न तरीकों को परिभाषित किया जा सकता है जैसे कि वे चारों ओर निष्पादित होते हैं @परीक्षा तरीका। लेकिन, अगर आपके पास एक से अधिक हैं @परीक्षा विधि और आप उनके बीच निष्पादन आदेश को परिभाषित करना चाहते हैं?

उस मामले में, हम कर सकते हैंपीएनोटेट किए गए परीक्षण के मामलों को एक नंबर निर्दिष्ट करके उन्हें पहचानना। संख्या जितनी कम होगी, प्राथमिकता उतनी अधिक होगी। परीक्षण मामलों को परिभाषित करते समय प्राथमिकता को मापदंडों के रूप में सौंपा जा सकता है। लेकिन, यदि कोई प्राथमिकता नहीं दी गई है, तो एनोटेट परीक्षण विधियों को परीक्षणों के वर्णानुक्रम के अनुसार निष्पादित किया जाएगा। नीचे के टुकड़े में परीक्षण एनोटेशन के मापदंडों को देखेंकोड।

@ टेस्ट (प्राथमिकता = 2) सार्वजनिक स्थैतिक शून्य FirstTest () {system.out.println ('यह प्रायोरिटी # 2' के कारण टेस्ट केस नंबर दो है)} @ टेस्ट (प्राथमिकता = 1) सार्वजनिक स्थैतिक शून्य सेकंड () { system.out.println ('यह प्रायोरिटी # 1' की वजह से टेस्ट केस नंबर एक है)} @Test public static void FinalTest () {system.out.println ('यह फाइनल टेस्ट केस है क्योंकि कोई प्रायोरिटी नहीं है' )}

टेस्ट मामलों को अक्षम करना

मुझे आपको कुछ और दिलचस्प दिखाते हैं। क्या होगा यदि आपके पास एक लाख लाइनें फैली हुई हैं, जिसमें सैकड़ों परीक्षण मामले शामिल हैं, और आप केवल एक परीक्षण विधि को अक्षम करना चाहते हैं? आपको इसके बजाय कोड के किसी भी हिस्से को हटाने की आवश्यकता नहीं है, हम बस उस परीक्षण विधि को निष्क्रिय कर सकते हैं।

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

@ टेस्ट (प्राथमिकता = 2, सक्षम = सत्य) सार्वजनिक स्थैतिक शून्य FirstTest () {system.out.println ('यह प्राथमिकता # 2 के कारण टेस्ट केस नंबर दो है)} @ टेस्ट (प्राथमिकता = 1, सक्षम = सत्य) ) सार्वजनिक स्थैतिक शून्य SecondTest () {system.out.println ('प्राथमिकता # 1' के कारण यह टेस्ट केस नंबर एक है)} @Test (सक्षम = गलत) सार्वजनिक स्थैतिक शून्य SkippedTest () {system.out.println ( 'यह स्केप्ड टेस्ट केस है क्योंकि यह अक्षम कर दिया गया है')} @ टेस्ट (सक्षम = सत्य) सार्वजनिक स्टेटिक शून्य फ़ाइनलेस्ट () {system.out.println ('यह अंतिम टेस्ट केस है, जो सक्षम है और इसमें कोई समानता नहीं है) '}

विधि निर्भरता

अब अगर आपके पास ऐसी स्थिति है, जिसमें आप चाहते हैं कि कोड का एक टुकड़ा तभी निष्पादित किया जाए जब यह किसी शर्त को पूरा करता है या केवल यदि कोई विशेष विधि सफलतापूर्वक निष्पादित होती है, तो हम इसका उपयोग करके कर सकते हैं निर्भरऑनमेथोड ()। यह मूल रूप से विधि निर्भरता की स्थिति है जहां एक विधि को किसी अन्य विधि के आधार पर निष्पादित किया जाएगा। अगर हम अतिरिक्त रूप से सेट करते हैं हमेशा दौड़ें सत्य के लिए विशेषता, फिर विधि के आधार पर असफल / पास की स्थिति के बावजूद विधि निष्पादित की जाएगी। नीचे दिए गए कोड स्निपेट में कोड देखें।

@Test सार्वजनिक स्थैतिक शून्य FirstTest () {system.out.println ('यह निष्पादित होने वाला पहला टेस्ट केस है)}} @Test (निर्भरताMethods = {' FirstTest '}) सार्वजनिक स्थैतिक शून्य SecondTest () {system.out। Println ('यह निष्पादित किया जाने वाला दूसरा टेस्ट केस है) यह एक आश्रित विधि है')} @Test (dependOnMethods = {'SecondTest'}) सार्वजनिक स्थैतिक शून्य फ़ाइनलेस्ट () {system .out.println ('यह अंतिम टेस्ट है केस इसे वैसे भी अंजाम दिया जाएगा। ')}

अब, यह हमें परीक्षण में एक और महत्वपूर्ण पहलू पर ले जाता हैएनोटेशन जो है समूह बनाना

समूह बनाना

अब तक आपको पता होना चाहिए कि कोड में हमारे परीक्षण मामले के हिस्से के रूप में कई विधियां होंगी। बता दें कि 100 परीक्षण मामले हैं लेकिन, हम अपने अगले परीक्षण में केवल 20 परीक्षण मामलों को निष्पादित करना चाहते हैं। क्या आपको लगता है कि हम ऐसा कर सकते हैं? जरूर हम कर सकते हैं।

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

@Test (समूह = {'MyGroup')) सार्वजनिक स्थैतिक शून्य FirstTest () {system.out.println ('यह समूह का एक हिस्सा है: MyGroup')} @Test (समूह = {'MyGroup') सार्वजनिक स्थैतिक void SecondTest () {system.out.println ('यह भी ग्रुप का एक हिस्सा है: MyGroup')} @Test public static void ThirdTest () {system.out.println ('लेकिन, यह इसका हिस्सा नहीं है समूह: MyGroup ')}

TestNG जोर

यह अब हमें TestNG के अगले विषय पर ले जाता है जो कि अभिकथन है। जैसा कि नाम से पता चलता है, परख को पास / असफल स्थिति को परीक्षण निर्धारित करने के लिए परीक्षण विधियों में उपयोग किया जा सकता है। किसी कथन की सही / गलत स्थिति के आधार पर, परीक्षण पास / असफल हो जाएंगे।

नीचे दिए गए कोड में मैंने 3 परीक्षण विधियों को शामिल किया है, जिसमें पहली और तीसरी विधियों में एक पास स्थिति है और दूसरी विधि में एक विफल स्थिति होगी। अपने लिए कोड देखें।

पैकेज testng import org.testng.annotations.Test import org.testng.annotations.BeforeMethod import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.Assert import org.testng.annotations.After सार्वजनिक वर्ग के दावे {@BeforeMethod सार्वजनिक शून्य से पहले Method () {System.setProperty ('webdriver.gecko.driver', 'C: UsersVardhanworkspaceSelenoxProjectfilesgeckodriver.exe')} सार्वजनिक बूल isEqual (int। b) ) {वापसी सही} और {{झूठा}} @ सार्वजनिक सार्वजनिक परीक्षण testEquality1 () {Assert.assertEquals (सच, isEqual (10, 10)) System.out.println ('यह एक पास की शर्त है')} @ सबसे सार्वजनिक void testEquality2 () {Assert.assertEquals (true, isEqual (10, 11)) System.out.println ('यह एक विफल स्थिति है')} @Test public void getTlele () {WebDriver driver = new FirefoxDriver () ड्राइवर। get ('https://www.gmail.com') स्ट्रिंग शीर्षक = driver.getTitle () Assert.assertEquals (शीर्षक, 'Gmail') System.out.println ('यह फिर से एक पास की स्थिति है)}} }

जब आप उस रिपोर्ट को देखते हैं जो इस निष्पादन के बाद उत्पन्न होती है, तो आप देखेंगे कि तीन परीक्षणों में से, एक असफल और दो उत्तीर्ण हुए। ध्यान देने के लिए एक और महत्वपूर्ण बिंदु यह है कि जब कोई अभिक्रिया विफल हो जाती है, तो उस परीक्षण में अन्य कमांड / कोड की लाइनें छोड़ दी जाएंगी। केवल जब दावा सफल होता है, तो कोड की अगली पंक्ति को उस परीक्षण में निष्पादित किया जाएगा। नीचे दिए गए आउटपुट को देखें system.out.println केवल पहले और तीसरे तरीकों के लिए निष्पादित किया गया है।

1493277977348 geckodriver INFO सुनकर 127.0.0.1:47035 1493277977993 mozprofile :: प्रोफ़ाइल INFO प्रोफ़ाइल पथ का उपयोग कर रहा है C: UsersVardhanAppDataLocalTemp https://ust_mozprofile.Z7X9uFdKODvi/ckroverblover.com/luberverbloverblover.com/bloverblover/blog/blog-bout/blog-run-b&hl=hi&hl=hi पर क्लिक करें। लोकलहोस्ट पर मैरियंट से कनेक्ट करना: 50758 [GPU 6920] चेतावनी: पाइप त्रुटि: 109: फ़ाइल c: / build / moz2_slave / m-rel-w32-00000000000000000000 / बिल्ड / src / ipc / क्रोमियम / src / chrome / common / ipc_channel_win। cc, लाइन 346 1493277981742 Marionette INFO पोर्ट 50758 अप्रैल 27, 2017 12:56:22 अपराह्न बजे। org org .openqa.selenium.remote.ProtocolHandshake क्रिएशन सत्र सुने पर सुनना: बोली जाने वाली बोली: W3C यह फिर से पास होने की स्थिति है। getTitle PASSED: testEquality1 FAILED: testEquality2 java.lang.AssertionError: अपेक्षित [असत्य] लेकिन org.testng.Assert.fail (Assert.java:93) पर [सच] पाया गया। org.testng.Assert.failNotEquals (Assertava) 512) org.testng.Assert.assertE पर qualsImpl (Assert.java:134) org.testng.Assert.assertEquals (Assert.java:115) org.testng.Assert.assertEquals (Assert.java 304) org.testng.Assert.assertEquals (Assert.java) पर। : 314) testng.Assertions.testEquality2 (Assertions.java:38) पर sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल विधि) sun.reflect.NativeMethodAccessorImpl.invoke (अज्ञात स्रोत) sun.reflect.Deleg.Datinggating पर। स्रोत) java.lang.reflect.Method.invoke (अज्ञात स्रोत) पर org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108, org.testng.internal.Invoker.invokeMethod (Invoker.java:661 पर) org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) org.testng.internal.Invoker.invokeTestMethods (Invoker.java.1193) org.testng.internal.TestMethodWorker.invokeTestMethods (TestMatod पर) ) org.testng.internal .estMethodWorker.run (TestMethodWorker.java:109) org.testng.TestRunner.pStreetRun (TestRunner.java .744) org.testng.TestRu पर org.testng.SuiteRunner.runSequentially (SuiteRunner.java:602) org.testng.SuiteRunner.runTest (SuiteRunner.java:380) org.testng.SuiteRunner.runSequentially (SuiteRunner.java:375) org.testng.SuiteRunner पर जाएं। .Java: 340) org.testng.SuiteRunner.run (SuiteRunner.java:289) org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) org.testng.SuiteRunnerWorker.run (सुइट) में org.testng.TestNG.runSuitesSequentially (TestNG.java:1301) org.testng.TestNG.runSuitesLocally (TestNG.java.1226) org.testng.TestNG.runSuites (TestNG.java:114444) पर। TestNG.run (TestNG.java:1115) org.testng.remote.AbbridRemoteTestNG.run (AbstractRemoteTestNG.java:132) org.estng.remote.RemoteTestNG.initAndRun (RemoteTestNG.jj.j2) पर क्लिक करें। .RemoteTestNG.main (RemoteTestNG.java:76) ========================================== ======== डिफ़ॉल्ट परीक्षण टेस्ट चलते हैं: 3, विफलताएं: 1, स्किप: 0 ============================ ====================================================== ================ डिफ़ॉल्ट सूट कुल परीक्षण चलते हैं: 3, विफलताएं: 1, स्किप: 0 ===================================== ============

तो, यह परीक्षण केस प्रबंधन से संबंधित अवधारणाओं का अंत है। हम एक और विषय के साथ रह गए हैं, और वह है रिपोर्ट जनरेशन। रिपोर्ट जनरेशन इस सेलेनियम वेबड्राइवर ट्यूटोरियल का अंतिम विषय है क्योंकि सभी के बाद ही रिपोर्ट तैयार की जा सकती हैपरीक्षण निष्पादित किए जाते हैं।

स्ट्रिंग स्प्लिट मल्टीपल डेलिमिटर जावा

रिपोर्ट पीढ़ी

सबसे महत्वपूर्ण बात जो आपको ध्यान देने की जरूरत है, वह यह है कि रिपोर्ट केवल एक .xml फ़ाइल के माध्यम से उत्पन्न होगी। इसका मतलब है, यह एक विधि हो, या यह एक वर्ग हो, या यह एक समूह हो जिसे आप परीक्षण करना चाहते हैं, उन्हें सभी को .xml फ़ाइल में निर्दिष्ट करना होगा।

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

 

पहली पंक्ति XML दस्तावेज़ प्रकार की परिभाषा है। यह सभी परीक्षण रिपोर्टों के लिए मानक और अनिवार्य है। लेकिन, अन्य पंक्तियाँ बहुत आत्म व्याख्यात्मक हैं। मैंने सूट, टेस्ट, क्लास और क्लास के लिए खुले टैग्स का इस्तेमाल किया है। क्लासेस टैग में इसके अंदर एक या अधिक वर्ग हो सकते हैं। इस प्रकार, इसका उपयोग किया जा सकता है यदि हम एक रिपोर्ट उत्पन्न करना चाहते हैं जहां हम कई वर्गों का परीक्षण कर रहे हैं। यह उन डेवलपर्स के लिए विशेष रूप से आसान है जो कोड के लंबे टुकड़े का परीक्षण करना चाहते हैं।

वैसे भी हमारी रिपोर्ट पर वापस आते हुए, आप उन टैग्स को खोलने के बाद प्रत्येक सूट या परीक्षण या वर्ग का नाम दे सकते हैं और अपने द्वारा खोले गए प्रत्येक टैग को बंद करना याद रख सकते हैं। मैंने अपने सुइट का नाम दिया है TestNGs के रूप में परीक्षण नाम परीक्षा व्याख्याएँ और वर्ग नाम के रूप में testng.TestAnnotations। ध्यान दें कि वर्ग का नाम प्रारूप में है ' packagename.classname '

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

यदि आप HTML रिपोर्ट (इंडेक्स रिपोर्ट या उपलब्ध अनुपलब्ध रिपोर्ट) देखना चाहते हैं, तो आप जा सकते हैं परीक्षण-उत्पादन आपके कार्यक्षेत्र में प्रोजेक्ट निर्देशिका के अंदर फ़ोल्डर। उन पर क्लिक करके, आप बाद के बिंदुओं पर भी रिपोर्ट देख सकते हैं। नीचे उनके स्क्रीनशॉट हैं।

सूचकांक रिपोर्ट : -

अनुपलब्ध रिपोर्ट : -

तो यह हमें इस सेलेनियम वेबड्राइवर ट्यूटोरियल ब्लॉग के अंत में लाता है। यह आपके लिए ग्रहण समाप्ति का समय है, विभिन्न सेलेनियम पैकेज स्थापित करें, TestNG स्थापित करें और अपने परीक्षण मामलों को लिखने के साथ आरंभ करें।

आप इस ब्लॉग में बताए गए विभिन्न अवधारणाओं के प्रदर्शन को देखने के लिए नीचे सेलेनियम वेबड्राइवर ट्यूटोरियल वीडियो देख सकते हैं।

सेलेनियम प्रशिक्षण | सेलेनियम के लिए TestNG फ्रेमवर्क | Edureka

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

यदि आप सेलेनियम सीखना चाहते हैं और परीक्षण डोमेन में अपना कैरियर बनाना चाहते हैं, तो हमारे इंटरैक्टिव, लाइव-ऑनलाइन की जांच करें यहाँ, यह आपके सीखने की अवधि में मार्गदर्शन करने के लिए 24 * 7 समर्थन के साथ आता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और हम आपके पास वापस आ जाएंगे।