TestNg साक्षात्कार प्रश्न और उत्तर की अत्यधिक महत्वपूर्ण 43+ सूची

इस ट्यूटोरियल में हम इसके विस्तृत सेट के बारे में चर्चा करने जा रहे हैं क्रिटिकल टेस्टएनजी साक्षात्कार और सवालों का जवाब देता है और कठिनाई स्तर के आधार पर वितरित किया जाता है, जहां आप टेस्टनेग पर खुद को जल्दी से बेहतर ढंग से लैस कर सकते हैं और किसी भी को साफ करने में सक्षम होना चाहिए TestNg साक्षात्कार प्रश्न और उत्तर गोल.

Testng साक्षात्कार प्रश्नों के ये सेट निम्न मॉड्यूल या सेट में वितरित किए जाते हैं:

TestNg साक्षात्कार प्रश्न और उत्तर
TestNg साक्षात्कार प्रश्न और उत्तर

TestNg साक्षात्कार प्रश्न - मूल

TestNg साक्षात्कार प्रश्न - मध्यवर्ती

TestNg साक्षात्कार प्रश्न - अग्रिम

साक्षात्कार साक्षात्कार प्रश्न और उत्तर || 1 सेट करें

TestNG क्या है?

TestNg मूल रूप से "का प्रतिनिधित्व करता हैपरीक्षण अगली पीढ़ी“एक इकाई परीक्षण ढाँचा है जो अपनी कार्यक्षमता के साथ विभिन्न एनोटेशन प्रदान करके परीक्षण स्वचालन और स्वचालन लिपियों के प्रवाह और क्रम को नियंत्रित करता है।

TestNg के क्या फायदे हैं?

            ए। Testng की विभिन्न टिप्पणियों के माध्यम से, आप बेहतर दृष्टिकोण में स्वचालन और परीक्षण निष्पादन के प्रवाह और आदेश को नियंत्रित कर सकते हैं।

            B. टेस्ट क्लास या टेस्ट स्क्रिप्ट तरीके समानांतर निष्पादन TestNg के साथ प्राप्त किया जा सकता है।

           C. टेस्टनग को विभिन्न बिल्ड टूल्स जैसे मावेन, ग्रैडल के साथ आसानी से एकीकृत किया जा सकता है। साथ ही, इसे JICkins जैसे CICD टूल्स के साथ एकीकृत किया जा सकता है।

           D. TestNG विवरण HTML रिपोर्टिंग सुविधा प्रदान करता है और आसानी से अन्य टेस्ट रिपोर्टिंग प्लेटफ़ॉर्म जैसे Allure, Extent Report with TestNN श्रोताओं के साथ एकीकृत किया जाता है।

          ई। सभी परीक्षणों को testng.xml फ़ाइल द्वारा ट्रिगर किया जा सकता है जहां आप टेस्ट क्लास / टेस्ट / टेस्ट पैकेज नाम का उल्लेख कर सकते हैं।

          F. डेटा चालित परीक्षण TestNg DataProvider एनोटेशन के साथ किया जा सकता है। इसके अलावा, पैरामीटर टेस्ट टेस्ट Testng.xml के माध्यम से भी किया जा सकता है, जैसे कि क्रॉस ब्राउज़र परीक्षण करते समय, आप विभिन्न परीक्षणों के लिए अलग-अलग ब्राउज़रों को पैरामीटर कर सकते हैं। यह फीचर TestNG के साथ डेटा ड्रिवेन फ्रेमवर्क बनाने में मदद करता है।

         जी। TestNg शामिल करने और विशेषता को शामिल करने के साथ tesngNg.xml से परीक्षण के एक सेट को शामिल / बाहर करने का एक तरीका प्रदान करता है।

         एच। TestNg के साथ, आप परीक्षण के बीच में अपने परीक्षण और निर्भरता इंजेक्शन समूह कर सकते हैं।

         I. TestNg कई श्रोताओं को प्रदान करता है जिनके साथ आप बहुत सारी चीजें प्राप्त कर सकते हैं जैसे आप कस्टम रिपोर्टिंग (IReporter), विभिन्न उपकरणों के साथ एकीकरण (ITestListener) कर सकते हैं, TestNG टेस्ट एनोटेशन के व्यवहार को रनटाइम में AAnotationTransformer और कई और अधिक के साथ बदल सकते हैं।

        जे। आप विशिष्ट परीक्षण को छोड़ सकते हैं, अपने परीक्षण क्रम को प्राथमिकता दे सकते हैं, टेस्टनेग टेस्ट एनोटेशन के साथ एक समयबद्ध परीक्षण बना सकते हैं।

        K. आप Assert statement लिखने के लिए TestNg के साथ Hard Assertion के साथ-साथ Soft Assertion का भी उपयोग कर सकते हैं।

        L. TestNg, प्रत्येक परीक्षण के निष्पादन के बाद TestNG-fail.xml उत्पन्न करता है, इसलिए आप अपनी असफल परीक्षण लिपियों को पुनः प्राप्त करने के लिए वही उत्पन्न TestNG-fail.xml कर सकते हैं।

       M. TestNg विभिन्न टेस्ट एनोटेशन प्रदान करता है जैसे @BeforeMethod, @AfterMethod, @BeforeTest, @ afterTest। @।इससे पहले,@AfterSuite।

       एन। आप TestNg के साथ अपेक्षित अपवाद टेस्ट चला सकते हैं।

       O. आप टेस्ट के IretryAnalyzer के साथ असफल परीक्षण को फिर से कर सकते हैं 

तुम कैसे हो TestNg परीक्षण स्क्रिप्ट को ट्रिगर और निष्पादित करें?

आप TestNg टेस्ट स्क्रिप्ट को कई तरीकों से चला सकते हैं: 

      ए टेस्ट क्लास पर राइट क्लिक करें और "रन के रूप में" और "टेस्टनेग टेस्ट" का विकल्प चुनें।

      B. फ़ाइल पर testng.xml और दाईं ओर बनाएँ और xml फ़ाइल चलाएँ।

      C. यदि आप निर्माण उपकरण जैसे मावेन / ग्रैडल के साथ testNg.xml को एकीकृत करते हैं, तो आप मावेन या ग्रैडल से भी भाग सकते हैं।

      डी। यदि बिल्ड टूल जैसे मावेन / ग्रेड को CICD के साथ एकीकृत किया जाता है, तो आप CICD, यानी जेनकिंस से चला सकते हैं।

उपलब्ध है कि Testng एनोटेशन राज्य?

आमतौर पर इस्तेमाल किए जाने वाले Testng टेस्ट एनोटेशन हैं:

@BeforeSuite

@ आफ्टरसाइट

@ सबसे पहले

@ बाद में

@कक्षा से पहले

@कक्षा के बाद

@BeforeMethod

@ आफ्टरमेथोड

@ बिफोरग्रुप्स

@ बाद के समूह

@परीक्षा

TestNg एनोटेशन निष्पादन अनुक्रम का उल्लेख करें?

टेस्ट निष्पादन के दृष्टिकोण से, सभी उपलब्ध टेस्टनॉग एनोटेशन के लिए नीचे अनुक्रम है:

पूर्वनिर्धारण एनोटेशन:

@BeforeSuite

@ सबसे पहले

@कक्षा से पहले

@BeforeMethod

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

@परीक्षा

पोस्टकंडिशन एनोटेशन: 

@ आफ्टरसाइट

@ बाद में

@कक्षा के बाद

@ आफ्टरमेथोड

परीक्षण स्क्रिप्ट के लिए परीक्षण निष्पादन को अक्षम कैसे करें?

आप सक्षम की गई विशेषता का उपयोग कर सकते हैं, यह नीचे दिए गए @Test एनोटेशन विशेषता के झूठे के बराबर है:

@Test(enabled = false)
public void logout(){
   System.out.println("Sample Test");
}

आप TestNG xml में श्रोताओं को कैसे निर्दिष्ट कर सकते हैं?

आप श्रोताओं का उल्लेख करने के लिए टेस्स xml फ़ाइल का उपयोग कर सकते हैं, नीचे दिए गए दृष्टिकोण में परीक्षण स्क्रिप्ट निष्पादन के भाग के रूप में उपयोग किया जा सकता है:

        

        

...

TestNg में टाइमआउट टेस्ट क्या है?

इस स्थिति में, "टाइमआउट परीक्षण" का अर्थ है, यदि परीक्षण स्क्रिप्ट निष्पादित करने के लिए निर्दिष्ट समय अवधि की तुलना में अधिक समय लेती है, तो testng परीक्षण को निरस्त कर देगा और असफल परीक्षण के रूप में चिह्नित करेगा।

@Test(timeOut = 6000) // this time in mulliseconds
public void testShouldPass() throws InterruptedException {
   Thread.sleep(2000);
}

TestNG के साथ Expected Exception टेस्ट कैसे प्राप्त करें?

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

@Test(expectedExceptions = ArithmeticException.class)
public void TestDivision() {
   int i = 1 / 0;
}

 उपरोक्त परीक्षण विधि पारित की जाएगी क्योंकि यह TestNG द्वारा अपेक्षित अपवाद को फेंकता है।

@BeforeTest और # @ FirstMethod एनोटेशन के बीच क्या अंतर है?

प्रत्येक परीक्षण से पहले @BeforeTest को एक बार निष्पादित किया जाता है टैग testng.xml फ़ाइल में उल्लेख किया गया है 

@BeforeMethod को प्रत्येक परीक्षण स्क्रिप्ट विधि से पहले निष्पादित किया जाता है।

Testng.xml फ़ाइल का उपयोग करने का क्या फायदा है?

Testng.xml फ़ाइल के साथ, आप एकल testng xml फ़ाइल में एकल परीक्षण सूट या कई परीक्षण सूट के साथ निष्पादन के प्रवाह को नियंत्रित कर सकते हैं। कुछ महत्वपूर्ण विशेषताएं हैं:

A. testng.xml फ़ाइल हमें परीक्षण विधियों और परीक्षण समूह निष्पादन को बाहर करने और शामिल करने की अनुमति देती है।

B. आप testng.xml के माध्यम से परीक्षण डेटा / पैरामीटर पास कर सकते हैं।

C. आप परीक्षण विधियों और परीक्षण विधियों के एक समूह के बीच निर्भरता जोड़ सकते हैं

D. आप परीक्षण मामलों को प्राथमिकता दे सकते हैं।

ई। परीक्षण मामलों के समानांतर परीक्षण निष्पादन हासिल किया जाता है।

F. आप अलग-अलग testng श्रोताओं को लागू कर सकते हैं और testng.xml में उन लोगों का उल्लेख करके उनका उपयोग कर सकते हैं।

जी। यदि आप अपना सुइट testng.xml के साथ चलाते हैं, तो आप केवल प्रत्येक निष्पादन के बाद TestNG-fail -xml उत्पन्न करके अगले पुनरावृत्ति के लिए परीक्षण विफल कर देंगे।

एच। आप परीक्षण के विशिष्ट समूहों का उपयोग कर चला सकते हैं TestNG xml का टैग।

TestNG का उपयोग करके आप कितने प्रकार की निर्भरता प्राप्त कर सकते हैं?

TestNG के साथ हम दो प्रकार की निर्भरताएं प्राप्त कर सकते हैं: 

A. निर्भरताएँ: 

इस निर्भरऑनमेथोड्स विशेषता का उपयोग करके, आप यह परिभाषित कर रहे हैं कि कौन सी परीक्षा पद्धति अन्य परीक्षण विधियों पर निर्भर होगी, इसलिए यदि निर्भर विधि विफल है या नहीं चलती है, तो आश्रित परीक्षा पद्धति भी नहीं चलेगी।

@Test
public void loginUserProfile() {
   System.out.println("Login user ");
}
@Test(dependsOnMethods = "loginUserProfile")
public void logOutPage_user() {
   System.out.println("Logout page for User");
}

 यहाँ logOutPage_user परीक्षण विधि है, जो कि LoginUserProfile परीक्षण के सफल निष्पादन के बाद चलेगी।

B. भरोसेमंद समूह: 

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

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

@Test(groups="AtestGroupName")
public void testcaseOne()
{
   System.out.println("testcaseOne in process");
}
@Test(groups="AtestGroupName")
public void testcaseTwo()
{
   System.out.println("testcaseTwo in process");
}
@Test(dependsOnGroups="AtestGroupName")
public void testcaseThree()
{
   System.out.println("testcaseThree in process");
}

साक्षात्कार साक्षात्कार प्रश्न और उत्तर || 2 सेट करें

TestNG में मंगलाचरण से क्या अभिप्राय है?

मंगलाचरण एक परीक्षण एनोटेशन विशेषता है जिसके द्वारा आप एक एकल निष्पादन में परीक्षण विधि निष्पादित की जाने वाली पुनरावृत्ति की संख्या को परिभाषित कर सकते हैं। 

@Test(invocationCount = 2)
public void testOfInvCount() {
   System.out.println("Invocation count test in progress");
}

 उपरोक्त परीक्षण दो बार निष्पादित करेगा क्योंकि मंगलाचरण 2 के रूप में उल्लिखित है।

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

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

TestNG श्रोताओं की मदद से, हम परीक्षण स्क्रिप्ट निष्पादन और उनकी स्थिति के कारण ट्रिगर की गई किसी भिन्न घटना को सुनकर बहुत सारे रन टाइम क्रिया कर सकते हैं, या हम रिपोर्टिंग कर सकते हैं। इसके अलावा, हम TestNg एनोटेशन के कार्यान्वयन को बदल सकते हैं।

TestNg में @Factory और @Dataprovider एनोटेशन के बीच अंतर का उल्लेख करें?

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

@ कार्य: यह एक परीक्षण वर्ग के अंदर मौजूद सभी परीक्षण विधियों को कक्षा के अलग-अलग और कई उदाहरणों का उपयोग करके निष्पादित किया जाएगा।

लॉग जनरेशन के लिए TestNG रिपोर्टर क्लास का उपयोग कैसे करें?

आप रिपोर्टर वर्ग का उपयोग करके विवरण और डेटा लॉग कर सकते हैं, और ये लॉग टेस्टएनजी द्वारा उत्पन्न रिपोर्ट द्वारा कैप्चर किए जाएंगे

रिपोर्टर.लॉग ("लॉगिंग संदेश");

TestNG में अपवाद हैंडलिंग कैसे करें?

आप @test एनोटेशन के साथ अपेक्षित अपवाद नामक विशेषता में अपेक्षित अपवाद का उल्लेख कर सकते हैं; इस मामले में, तब TestNg पास के रूप में परीक्षण को चिह्नित करेगा।

@ टेस्ट (अपेक्षित एक्सप्रेशन = नंबरफ़ॉर्मटैसेप्शन.क्लास)

TestNg XML के माध्यम से निर्भरता इंजेक्शन कैसे प्राप्त करें?

TestNG हमें TestNG XML फ़ाइल के माध्यम से परीक्षणों के विभिन्न समूहों के बीच निर्भरता को इंजेक्ट करने की अनुमति देता है। जिसके माध्यम से हम एक समूह की दूसरे पर निर्भरता रख सकते हैं।

TestNG के लिए विभिन्न दावे दृष्टिकोण क्या हैं?

हम TestNg के साथ दो प्रकार के अभिकथन का उपयोग कर सकते हैं। 

मुलायम जोर देता है

कड़ी मेहनत करता है 

TestNG के साथ आमतौर पर उपयोग किए जाने वाले कुछ सिद्धांतों का उल्लेख करें 

TestNG में व्यापक रूप से उपयोग किए जाने वाले कुछ तरीके:

  • मुखर (बूलियन वास्तविक, बूलियन अपेक्षित)
  • मुखर (वास्तविक स्ट्रिंग, स्ट्रिंग अपेक्षित)
  • अभिकथन (स्ट्रिंग वास्तविक परिणाम, स्ट्रिंग अपेक्षित परिणाम, स्ट्रिंग संदेश)
  • मुखर (स्थिति)
  • मुखर (स्थिति)
  • मुखर (स्थिति, संदेश)
  • जोर (स्थिति, संदेश)

TestNG में मुखरता से आप क्या समझते हैं?

अपेक्षित परीक्षा परिणामों के संबंध में वास्तविक परीक्षा परिणामों को मान्य करने के लिए एक दावा किया जाता है। TestNg में, हम नरम अभिकर्मक के कठिन मुखर का उपयोग कर सकते हैं। 

TestNg में हार्ड मुखर और नरम मुखर के बीच अंतर

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

जबकि दूसरी ओर शीतल मुखर सभी अभिकथन बिंदुओं को मान्य करने पर विचार करता है, चाहे किसी भी दावे में कोई असफलता हो। इसका मतलब है कि यदि कोई दावा विफल हो जाता है, तो परीक्षण निष्पादन समाप्त नहीं होता है।

TestNg में सॉफ्ट असेस्मेंट कैसे लिखें 

कोड के नीचे का टुकड़ा TestNG में नरम दावे को लिखने का दृष्टिकोण देता है

 @Test
   public void assertion() {
   SoftAssert softAssertion = new SoftAssert();
   //Assertion 1 
   softAssertion.assertEquals("exp", "act");
   //Assertion 2 
   softAssertion.assertEquals(123, 123);
   //Assertion 3 
   softAssertion.assertEquals("actual Value", "expected value");
   // At the end considering all the assertion values
   softAssertion.assertAll();
}

TestNG समूहों में नियमित अभिव्यक्ति का उपयोग कैसे करें?

TestNG में एक नियमित अभिव्यक्ति का उपयोग उन समूहों को निष्पादित करने के लिए किया जा सकता है जिनके नामकरण में समान पैटर्न है। 

उदाहरण के लिए, यदि आप नाम के अनुसार "testX" से शुरू होने वाले सभी समूहों को चलाना चाहते हैं, तो आप TestNG XML फ़ाइल में टेस्टएक्स के रूप में नियमित अभिव्यक्ति का उपयोग कर सकते हैं।

साक्षात्कार साक्षात्कार प्रश्न और उत्तर || 3 सेट करें

आप परीक्षण निष्पादन चक्र से एक समूह को कैसे बाहर करते हैं?

आप Testng xml फ़ाइल में नीचे दिए गए तरीके से परीक्षण मामले के एक समूह को बाहर करने के लिए बहिष्कृत टैग का उपयोग कर सकते हैं 

    

        

        

    

डिफ़ॉल्ट रूप से TestNG में उत्पन्न रिपोर्ट के प्रकार क्या हैं?

TestNG निष्पादन के बाद दो प्रकार की रिपोर्टें बनाता है, जो हैं:

  • अनुपलब्ध रिपोर्ट
  • सूचकांक रिपोर्ट

TestNG टेस्ट सूट और TestNG टेस्ट के बीच अंतर का उल्लेख करें?

TestNG टेस्ट सूट टेस्ट क्लासेस और टेस्ट मेथड्स का संग्रह है जिसे एक साथ और साथ ही TestNG XML फ़ाइल से समानांतर रूप से चलाया जा सकता है। 

दूसरी ओर, TestNG परीक्षण विधि एक एकल परीक्षण केस फ़ाइल या परीक्षण विधि है।

थ्रेडपूलसाइज विशेषता का उपयोग क्या है @Test एनोटेशन के साथ 

थ्रेडपूलसाइज़ विशेषता के माध्यम से हम थ्रेडथोड को कई उपलब्ध थ्रेड्स के माध्यम से निष्पादित करने के लिए संख्या द्वारा विशिष्ट उल्लेख आकार के साथ एक थ्रेड पूल को परिभाषित कर सकते हैं।

यदि आह्वान का उल्लेख नहीं किया जा रहा है, तो विशेषता को अनदेखा किया जा रहा है।

 @Test(threadPoolSize = 3) 
   public void testCaseOne(){
      System.out.println("testCaseOne in process");
   }

उपरोक्त परीक्षण विधि में, टेस्टकैसेन को तीन अलग-अलग थ्रेड से मंगाया जाएगा।

हमेशा गुण क्या करता है?

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

विभिन्न श्रोता जो उपलब्ध हैं, वे क्या हैं?

आईटेस्ट लिस्टनर

आईरिपोर्टर 

ISuiteListener

आईएनोटेशनट्रांसफॉर्मर 

IAnnotationTransformer2

IHookable 

IInvokedMethodListener 

IMethodइंटरसेप्टर 

TestNG प्राथमिकता के लिए डिफ़ॉल्ट मान क्या है?

TestNG प्राथमिकता में डिफ़ॉल्ट मान शून्य है।

ऑटो रीट्री मेकेनिज्म का उपयोग करके टेस्टनैग फेल्ड टेस्ट को फिर से कैसे चलाया जाए?

TestNg एक इंटरफ़ेस प्रदान करता है जिसे कहा जाता है आईरेट्री विश्लेषक श्रोता जो आप इंटरफ़ेस ऑटो को कार्यान्वित कर सकते हैं, टेस्टेनग.एक्सएमएल फ़ाइल में कक्षा का उल्लेख करके अपनी असफल परीक्षण स्क्रिप्ट को फिर से चला सकते हैं, यहाँ उसी को लागू करने के लिए नीचे दिया गया कोड है:

TestNg Auto Retry विफल टेस्ट
Testng साक्षात्कार प्रश्न और उत्तर- TestNg रिट्री टेस्ट स्क्रिप्ट

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

दृष्टिकोण दो: ऑटो रीट्री मैकेनिज्म का उपयोग करके टेस्टनग असफल टेस्ट को फिर से कैसे चलाया जाए

नीचे दिए गए दृष्टिकोण में आप 2 कक्षाएं बना सकते हैं अर्थात एक है पुनः प्रयास करें जहां आप परीक्षण विफलताओं के मामले में पुनरावृत्ति की संख्या को नियंत्रित करने के तर्क को रख सकते हैं जो इंटरफ़ेस Testng को लागू करेगा आईरेट्री विश्लेषक.

एक अन्य वर्ग मूल रूप से है जो एक अन्य इंटरफ़ेस श्रोता IAnnotationTransformer को लागू करेगा और विधि को लागू करेगा परिणत जो आंतरिक रूप से पिछली कक्षा (यानी पुनः प्रयास करें)

public class Retry implements IRetryAnalyzer {

    int retryCounter = 0;
    
    // The maximum number of failed execution 
    int autoRetryLimit = 2;

    @Override
    public boolean retry(ITestResult iTestResult) {
        if (retryCounter < autoRetryLimit) {
            retryCounter++;
            return true;
        }
        return false;
    }
}

public class CognitiveRetry implements IAnnotationTransformer {


    public void transform(ITestAnnotation annotation, Class testClass, Constructor testCons, Method tMethod){
        IRetryAnalyzer retryAnalyzer=annotation.getRetryAnalyzer();
        if(retryAnalyzer==null){
            annotation.setRetryAnalyzer(Retry.class);
        }
    }
}

और अंत में जोड़ें Testng.xml फ़ाइल के लिए श्रोता में CognitiveRetry वर्ग।

<listeners>
    <listener class-name= "com.lambdageeks.cognitiveRetryUtils.CognitiveRetry"/>
</listeners>

TestNG itestlistener कार्यान्वयन कैसे प्राप्त करें?

ITestListener TestNg में एक इंटरफ़ेस है जिसमें कई विधियाँ हैं (एक इंटरफ़ेस के बाद से इसे लागू किया गया है) जिसे एक वर्ग द्वारा लागू किया जा सकता है। प्रत्येक विधि विशिष्ट कार्यात्मकताओं या परिदृश्यों का प्रतिनिधित्व करती है, इसलिए आपकी आवश्यकता के आधार पर आप उन विधियों को लागू कर सकते हैं।

एक उदाहरण के लिए ऑन टेस्टविफलता एक ऐसी विधि है जिसे आप कार्यान्वित कर सकते हैं जहाँ आप कोई भी कार्यविधि करना चाहते हैं जबकि कोई भी परीक्षण विधि विफल हो जाती है, तो आप किसी भी परीक्षण विधि के विफल होने की स्थिति में स्क्रीनशॉट को कैप्चर करना चाहते हैं, ताकि आप अंदर लिखी विधि को लिख सकें। ऑन टेस्टविफलता , और जैसा कि ITestListener एक इंटरफ़ेस है इसलिए testNg घटनाओं (परीक्षण विफलताओं) पर सुनता रहेगा और जब भी परीक्षण विफलताओं को देखता है तो आपका स्क्रीनशॉट कैप्चर हो जाएगा।

जब भी आप स्क्रिप्ट का परीक्षण करते हैं, तो कैप्चरिंग स्क्रीनशॉट का कार्यान्वयन विफलताओं का सामना करता है:

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;

public class CustomListerners implements ITestListener {

    WebDriver driver=null;
    String filePath = "D:\\LambdaGeeks\\SCREENSHOTS";
    @Override
    public void onTestFailure(ITestResult result) {
        String testMethodName=String.valueOf(result.getName()).trim();
        ITestContext testContext = result.getTestContext();
        WebDriver driver = (WebDriver)testContext.getAttribute("driver");
        captureTheScreenShot(testMethodName, driver);
    }

    public void captureTheScreenShot(String methodName, WebDriver driver) {
        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        /*
        Each screenshots will get saved with along with the test Name to have better correlation
         */
        try {
            FileUtils.copyFile(scrFile, new File(filePath+methodName+".jpg"));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void onFinish(ITestContext context) {}

    public void onTestStart(ITestResult result) {   }

    public void onTestSuccess(ITestResult result) {   }

    public void onTestSkipped(ITestResult result) {   }

    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {   }

    public void onStart(ITestContext context) {   }

}

और आपको इस वर्ग को testng.xml फ़ाइल में श्रोता टैग में जोड़ने की आवश्यकता है जैसे हमने पिछले प्रश्न में किया था।

अंडकोष iAnnotationtransformer कैसे लागू करें?

TestNg IAnnotationTransformer के रूप में नामित एक इंटरफ़ेस प्रदान करता है जो "रूपांतरण" नामक एक विधि प्रदान करता है जिसे आप लागू कर सकते हैं और TestNG द्वारा रनटाइम में चालू किया जाएगा, इस कार्यान्वयन का उपयोग परीक्षण वर्ग और परीक्षण विधियों के परीक्षण एनोटेशन व्यवहार को संशोधित करने के लिए किया जाता है

नीचे के खंड में हम देखेंगे कि हम ऐसा कैसे कर सकते हैं

public class TestClassAnnotations {

    @Test(alwaysRun = true,dependsOnMethods = "testMethodB")
    public void testMethodA() {
        System.out.println("--- Customizing the runtime behavious with ITestAnnotation ---");
    }

    @Test
    public void testMethodB() {
        System.out.println("--- Second TestMethods ---");
        Assert.fail();
    }

}

डिफ़ॉल्ट रूप से यदि हम उपरोक्त कोड चलाते हैं तो केवल एक विधि निष्पादित होगी जो testMethodA है और एक अन्य विधि testMethodB विफल हो जाएगी क्योंकि हम Assert.fail () विधि द्वारा इसे जानबूझकर विफल कर रहे हैं।

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

CustomAnnotationTransformers का कार्यान्वयन यहाँ जाता है:

public class CustomAnnotationTransformers implements IAnnotationTransformer {

    public boolean isTestRunning(ITestAnnotation iTestAnnotation) {
        if (iTestAnnotation.getAlwaysRun()) {
            return true;
        }
        return false;
    }


    public void transform(ITestAnnotation annotations, Class testClasses, Constructor testConstructors, Method testMethods) {

        if (isTestRunning(annotations)) {
            annotations.setEnabled(false);

        }

    }

}

यहां श्रोता को हमें परीक्षण में जोड़ने की आवश्यकता है। xml फ़ाइल

<listeners>
    <listener class-name= "com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

अंडकोष कैसे लागू करें iinvokedmethodlistener?

यदि आप एक ऐसी सुविधा को लागू करना चाहते हैं, जहां टेस्टनेग के प्रत्येक टेस्ट विधि से पहले और बाद में कुछ निश्चित पद्धति को क्रियान्वित किया जाएगा, तो उस सुविधा को testng द्वारा लागू किया जा सकता है IInvokedMethodListener श्रोता

 

यहाँ सुविधाओं को लागू करने के लिए कोड स्निपेट है:

package com.lambdageeks;

import org.testng.IInvokedMethod;
import org.testng.IInvokedMethodListener;
import org.testng.ITestResult;


public class CustomAnnotationTransformers implements IInvokedMethodListener {

    public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {

        System.out.println(" ::: Before Method from IInvokedMethodListener is Triggered for the Test Method named as :  " + method.getTestMethod().getMethodName() + " ::: ");
    }

    public void afterInvocation(IInvokedMethod method, ITestResult testResult) {

        System.out.println(" :::: After Method from IInvokedMethodListener is Triggered for the Test Method named as :  " + method.getTestMethod().getMethodName() + " ::: ");

    }
}

यहाँ सुविधा का परीक्षण करने के लिए टेस्ट क्लास है:

public class TestClassAnnotations {

    @Test(alwaysRun = true)
    public void testMethoddummy() {
        System.out.println("--- This is a test Method , testing the feature of IInvokedMethodListener Testng Listener  ---");

    }

}

आपको TestNG iinvokedmethodlistener को Testng.xml में श्रोता टैग में हमेशा की तरह उल्लेख करना होगा

<listeners>
    <listener class-name="com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

निष्पादन का आउटपुट इस तरह दिखेगा:

::: IInvokedMethodListener से विधि से पहले परीक्षण विधि के लिए ट्रिगर किया गया है जिसका नाम है: testMethoddummy :::

- यह एक परीक्षण विधि है, IInvokedMethodListener Testng श्रोता की सुविधा का परीक्षण -

 :::: IInvokedMethodListener से विधि के बाद परीक्षण विधि के लिए ट्रिगर किया गया है जिसका नाम है: testMethoddummy :::

TestNG में डेटा प्रदाताओं को कैसे लागू किया जाए?

हम नीचे दिए गए दृष्टिकोण में TestNg का उपयोग करके DataProvider को लागू कर सकते हैं:

public class DataProviderDemo {

    @DataProvider(name = "dpName")
    public Object[][] dataProvidersMethodName() {
        return new Object[][]{{"Lambda"}, {"Geeks"}};
    }

    @Test(dataProvider = "dpName")
    public void dataproviderDummyTestMethod(String dataValues) {
        System.out.println("The Data Params with data provider examples : : " + dataValues);
    }
}

यदि हम टेस्ट पद्धति की प्राथमिकता निर्धारित नहीं करते हैं, तो टेस्टएनजीजी में किस क्रम में परीक्षण निष्पादित किए जाते हैं?

TestmethodName के अल्फाबेटिकल ऑर्डर के क्रम में परीक्षण निष्पादित किए जाते हैं।

 

जैसे नीचे दिए गए कोड स्निपेट में:

public class SequenceTest {

    @Test()
    public void geeks() {
        System.out.println("Sequence Test , Method ran :geeks ");
    }

    @Test()
    public void lambda() {
        System.out.println("Sequence Test , Method ran : lambda ");
    }

    @Test()
    public void abc() {
        System.out.println("Sequence Test , Method ran :abc");
    }
}

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

अनुक्रम परीक्षण, विधि भागा: abc

अनुक्रम परीक्षण, विधि भागा: geeks

अनुक्रम परीक्षण, विधि भागा: लंबोदर

 

समानांतर में अपनी टेस्ट स्क्रिप्ट कैसे चलाएं?

आप TestNg XML फ़ाइल का उपयोग करके अपनी टेस्ट स्क्रिप्ट चला सकते हैं समानांतर = "विधियाँ" थ्रेड-काउंट = "2 thread, यहाँ 2 समानांतर मामलों को निष्पादित किया जाएगा, यदि आप समानांतर में अधिक थ्रेड निष्पादित करना चाहते हैं।

<suite name="DummyTest" parallel="methods" thread-count="2" >

<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>  

GRADLE बिल्ड टूल के साथ TestNg को कैसे एकीकृत करें?

आप अलग-अलग तरीकों से टेस्टेल सूट को रनले में चला सकते हैं:

ग्रैडल का उपयोग करके TestNg Group को कैसे चलाया जाए: आप build.gradle फ़ाइल में उल्लेख कर सकते हैं एक टास्क बना सकते हैं useTestNG () और परीक्षण समूहों को चलाते समय नीचे दिए गए विवरणों का उल्लेख करें।

TestNg साक्षात्कार प्रश्न और उत्तर की अत्यधिक महत्वपूर्ण 43+ सूची
TestNg साक्षात्कार और स्नातक के साथ उत्तर TestNg

TestNg लाइब्रेरी का उपयोग करके रिपोर्ट जनरेट करने के लिए ग्रैडल के साथ Testng डिफ़ॉल्ट श्रोता को कैसे चलाएं

TestNg साक्षात्कार प्रश्न और उत्तर- ग्रेडल डिफॉल्ट श्रोताओं के साथ टेस्ट करें
TestNg साक्षात्कार प्रश्न और उत्तर- ग्रेडल डिफॉल्ट श्रोताओं के साथ टेस्ट करें

यदि आप कस्टम श्रोता का उपयोग करना चाहते हैं तो आप निम्न दृष्टिकोण में इसका उल्लेख कर सकते हैं:

टेस्टनेग साक्षात्कार प्रश्न और उत्तर- टेस्टेल कस्टम ग्रेडर के साथ श्रोता
टेस्टनेग साक्षात्कार प्रश्न और उत्तर- टेस्टेल कस्टम ग्रेडर के साथ श्रोता

कमांड प्रॉम्प्ट का उपयोग करके Testng Runner xml फ़ाइल कैसे चलाएं?

आप कमांड प्रॉम्प्ट से रनर xml फ़ाइल को चलाने के लिए TestNg Downloaded स्थान का उपयोग कर सकते हैं और org.testng.TestNg.testNgRunner.xml का उल्लेख कर सकते हैं।

java -cp "/opt/testng-7.1.jar:bin" org.testng.TestNG testngRunner.xml

मावेन के साथ TestNg XML को कैसे एकीकृत करें?

आप प्लगइन नाम के उपयोग के साथ टेस्टेन को मावेन के साथ एकीकृत कर सकते हैं maven-Surefire-plugin जहाँ आप कॉन्फ़िगरेशन का उपयोग कर testNgrunner.xml फ़ाइल चलाने के लिए कॉन्फ़िगर कर सकते हैं:

TestNg साक्षात्कार प्रश्न और उत्तर की अत्यधिक महत्वपूर्ण 43+ सूची
TestNg साक्षात्कार प्रश्न और उत्तर- TestNg-Maven-Surefire एकीकरण

आप TestNg और Maven का उपयोग करके TestNg टेस्ट पैरामीटर कैसे निर्दिष्ट कर सकते हैं?

आप नीचे फैशन में TestNg.XML फ़ाइल के साथ मावेन श्योरफेयर प्लगइन का उपयोग करके टेस्ट पैरामीटर निर्दिष्ट कर सकते हैं

TestNg साक्षात्कार प्रश्न और उत्तर की अत्यधिक महत्वपूर्ण 43+ सूची
TestNg साक्षात्कार प्रश्न और उत्तर-परीक्षण पैरामीटर

निष्कर्ष: इसके साथ हम सभी महत्वपूर्ण और महत्वपूर्ण की सूची को समाप्त करते हैं TestNg साक्षात्कार प्रश्न और उत्तर , TestNg पर बेहतर पकड़ पाने के लिए आप इसके माध्यम से जा सकते हैं TestNg पर संपूर्ण प्रलेखन.

इस बारे में और जानने के लिए संपूर्ण सेलेनियम ट्यूटोरियल आप यहां देख सकते हैं।

देबर्घ्य के बारे में

TestNg साक्षात्कार प्रश्न और उत्तर की अत्यधिक महत्वपूर्ण 43+ सूचीस्वंय देवबर्घ्य रॉय, मैं एक इंजीनियरिंग शाखा हूं, जो 5 कंपनी और एक ओपन सोर्स योगदानकर्ता के साथ काम कर रही है, जिसके पास विभिन्न टेक्नोलॉजी स्टैक में 12 साल का अनुभव / विशेषज्ञता है।
मैंने जावा, सी #, पायथन, ग्रूवी, यूआई ऑटोमेशन (सेलेनियम), मोबाइल ऑटोमेशन (एपियम), एपीआई/बैकएंड ऑटोमेशन, परफॉर्मेंस इंजीनियरिंग (जेएमटर, टिड्डी), सुरक्षा ऑटोमेशन (मोबएसएफ, ओडब्ल्यूएएसपी, काली लिनक्स) जैसी विभिन्न तकनीकों के साथ काम किया है। , एस्ट्रा, जैप आदि), आरपीए, प्रोसेस इंजीनियरिंग ऑटोमेशन, मेनफ्रेम ऑटोमेशन, स्प्रिंगबूट के साथ बैक एंड डेवलपमेंट, काफ्का, रेडिस, रैबिटएमक्यू, ईएलके स्टैक, ग्रेलॉग, जेनकिंस और क्लाउड टेक्नोलॉजीज, देवओप्स आदि में भी अनुभव है।
मैं अपनी पत्नी के साथ बैंगलोर, भारत में रहता हूं और ब्लॉगिंग, संगीत, गिटार बजाने का शौक रखता हूं और मेरे जीवन का दर्शन सभी के लिए शिक्षा है जिसने लैम्ब्डागीक्स को जन्म दिया। आइए लिंक्ड-इन पर कनेक्ट करें - https://www.linkedin.com/in/debarghya-roy/

एक टिप्पणी छोड़ दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड चिन्हित हैं *

en English
X