assertions selenium using junit
दावों पर यह सेलेनियम ट्यूटोरियल समझाता है कि सेलेनियम में क्या दावे हैं और विभिन्न प्रकार के दावे और दावे के तरीकों का उपयोग जूनिट और टेस्टएनजी फ्रेमवर्क में किया गया है:
सफेद बॉक्स परीक्षण उदाहरण परीक्षण मामलों
परख का उपयोग परीक्षण के मामले को मान्य करने के लिए किया जाता है और हमें यह समझने में मदद करता है कि क्या कोई परीक्षण मामला पास या विफल हो गया है। यदि किसी आवेदन का वास्तविक परिणाम अपेक्षित परिणाम के साथ मेल खाता है, तो दावे को पूरा किया जाना माना जाता है।
सेलेनियम का उपयोग करते हुए वेब एप्लिकेशन को स्वचालित करते समय, हमें यह सत्यापित करने के लिए हमारे परीक्षणों को मान्य करने की आवश्यकता है कि वे अपेक्षित रूप से काम कर रहे हैं या नहीं(यह है, अगर एक परीक्षा मामला परिणाम पास है / विफल)।
=> यहां सेलेनियम शुरुआती गाइड पर एक नज़र डालें।
एक परीक्षण मामले को केवल तभी माना जाता है जब सभी दावे पूरे हो गए हों। सेलेनियम में सिद्धांतों को जूनिट और टेस्टएनजी फ्रेमवर्क के पूर्व-परिभाषित तरीकों द्वारा नियंत्रित किया जा सकता है, जिसे इस लेख में विस्तार से बताया जाएगा।
आप क्या सीखेंगे:
- सेलेनियम में जोर
- सेलेनियम में जोर के प्रकार
- जूनित अभिकथन विधियाँ
- TestNG Assert Methods
- परख के लिए नमूना कार्यक्रम
- निष्कर्ष
सेलेनियम में जोर
परीक्षण मामलों में विभिन्न प्रकार के सत्यापन करने के लिए अभिकथनों का उपयोग किया जाता है, जो बदले में हमें यह तय करने में मदद करता है कि क्या परीक्षण का मामला पास हुआ है या विफल रहा है। डब्ल्यूई एक परीक्षा को सफल मानता है यदि वह बिना किसी अपवाद के चलती है।
दावे पर वीडियो ट्यूटोरियल
सेलेनियम में जोर के प्रकार
सेलेनियम में दो प्रकार के दावे हैं और वर्गीकरण इस बात पर निर्भर करता है कि किसी शर्त के पारित होने या विफल होने के बाद अभिकथन कैसे व्यवहार करता है।
यहां, हम दो प्रकार के अभिकथनों पर चर्चा करेंगे सेलेनियम :
- कठिन कथनों
- शीतल आश्वासन
नमूने के लिए यहां क्लिक करें परीक्षण के मामलों परख के लिए।
# 1) कठिन दावे (या बस दावे)
जब तक जोर देने की शर्त पूरी नहीं हो जाती, तब तक एक कठोर दावा अमल में नहीं आता है।
जब भी एक जोर की शर्त को पूरा नहीं किया गया है तो कठिन दावे आम तौर पर एक त्रुटि को फेंक देते हैं। जब एक कठिन दावा की स्थिति विफल हो जाती है तो परीक्षण मामले को तुरंत असफल के रूप में चिह्नित किया जाएगा।
इस तरह के दावे का उपयोग करने का एक परिदृश्य यह है कि, जब आप सत्यापित करना चाहते हैं कि क्या आपने सही तरीके से लॉग इन किया है और यदि आपने सफल लॉगिन नहीं किया है तो परीक्षण को विफल कर दें, क्योंकि आगे की स्थिति में आगे बढ़ने का कोई मतलब नहीं है (यदि लॉगिन) स्वयं विफल हो जाता है।
आइए यहां एक और उदाहरण प्रस्तुत करते हैं:
एक वेबपेज के शीर्षक को मुखर करने के लिए एक परीक्षण मामले पर विचार करें।
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir”); @BeforeTest public void SetDriver(){ //Mention the location of ChromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
उदाहरण में,, एक्चुअलटील ’चर ऑटोमेशन से शीर्षक पाठ को धारण करेगा। Data ExpectedTitle ’में अपेक्षित स्ट्रिंग डेटा होता है। यदि दोनों पाठ समान हैं, तो Assert.assertEquals () सत्यापित करता है। उपरोक्त परीक्षण मामला पास होगा और निष्पादन की अगली पंक्ति तक जारी रहेगा क्योंकि वास्तविक पाठ और प्रत्याशित पाठ समान हैं।
कंसोल:
जोर दिया।
PASSED: VerifyTitle
असफल होने पर एक ही परीक्षा का मामला एक अपवाद को फेंक देगा और उस उदाहरण पर निष्पादन को रोक देगा।
अब, हम एक्सपेक्टेड टाइटल को गलत में बदल दें।
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ //Mention the location of chromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Welcome to Amazon”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
कंसोल:
java.lang.AssertionError:अपेक्षित (अमेज़न में आपका स्वागत है)लेकिन अपाया (Amazon.com: इलेक्ट्रॉनिक्स, परिधान, कंप्यूटर, किताबें, डीवीडी और अधिक के लिए ऑनलाइन शॉपिंग)
कंसोल से, हम देख सकते हैं कि प्रिंट स्टेटमेंट को छोड़ दिया गया था (System.out.println) क्योंकि असिस्टर स्टेटमेंट में विफलता का सामना करना पड़ा था और इसने एक अपवाद को फेंक दिया था।
# 2) नरम आश्वासन
परीक्षण के निष्पादन के अगले चरण के साथ एक नरम अभिक्रिया जारी रहती है, भले ही अभिकथन की स्थिति पूरी न हुई हो।
शीतल अभिकथन एक प्रकार का सिद्धांत है जो अपवाद को तब तक स्वचालित रूप से नहीं फेंकता है जब तक कि इसके लिए कहा नहीं जाता है। यह उपयोगी है यदि आप एक फॉर्म में कई सत्यापन कर रहे हैं, जिसमें से केवल कुछ सत्यापन सीधे परीक्षण की स्थिति तय करने पर प्रभाव डालते हैं।
यहां, हम एक वर्ग का उपयोग करते हैं, जिसे सॉफ्टएसरटर कहा जाता है और विधि assertAll () को निष्पादन के दौरान पकड़े गए सभी अपवादों को फेंकने के लिए कहा जाता है। जब सॉफ्टएसरटर का उपयोग किया जाता है, तो यह दावा करता है और यदि कोई अपवाद पाया जाता है, तो इसे तुरंत नहीं फेंका जाता है, बल्कि यह तब तक जारी रहता है जब तक कि हम पकड़े गए सभी अपवादों को फेंकने के लिए विधि को सिद्धांत () नहीं कहते।
प्रत्येक परीक्षण मामले के लिए wise सॉफ्टएसेर्स क्लास ’की विभिन्न वस्तुओं का उपयोग करना बुद्धिमानी है।
पृष्ठ के शीर्षक को मुखर करने के लिए परीक्षण मामले पर विचार करें
नीचे दिए गए उदाहरण में, दो अलग-अलग परीक्षण मामलों में उपयोग किए जाने के लिए below सॉफ्टएसेर्स क्लास ’की दो वस्तुएँ बनाई गई हैं।
public class LearnAssertionsSoft { WebDriver driver; //Object of Class SoftAssert is created to use its methods SoftAssert softassert = new SoftAssert(); SoftAssert softassert2 = new SoftAssert(); //current project workspace String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created - Chrome browser is opened driver.manage().window().maximize(); } //Soft Assertion example - with a failure test case example @Test public void verifyTitle(){ driver.get('https://amazon.in'); String ActualTitle = driver.getTitle(); System.out.println('Actual Title :'+ActualTitle); String ExpectedTitle = 'cameras, books, watches, apparel, shoes and e-Gift Cards. Free Shipping & Cash on Delivery Available.'; //Soft assert applied to verify title softassert.assertEquals(ActualTitle, ExpectedTitle); //If failed, this line gets printed and execution is not halted System.out.println('Assertion 1 is executed”); softassert.assertAll(); } //Soft Assertion example - with a positive flow test case example @Test public void verifyElement(){ WebElement AmazonIcon = driver.findElement(By.Xpath(“//div(contains(@id,’amazon_icon’))); softassert2.assertEquals (true, AmazonIcon.isDisplayed()); softassert2.assertAll(); System.out.println('Icon is displayed'); System.out.println('Assertion 2 is executed”); } @AfterTest public void closedriver(){ driver.close(); //Checks for failures if any and throws them at the end of execution } }
कंसोल:
वास्तविक शीर्षक: Amazon.com: इलेक्ट्रॉनिक्स, परिधान, कंप्यूटर, किताबें, डीवीडी और अधिक के लिए ऑनलाइन शॉपिंग
अभिकथन 1 निष्पादित किया जाता है
आइकन प्रदर्शित किया गया है
अभिकथन 2 निष्पादित किया जाता है
java.lang.AssertionError: निम्नलिखित दावे विफल हुए:
अपेक्षित (अमेज़न में आपका स्वागत है) लेकिन पाया (Amazon.com: इलेक्ट्रॉनिक्स, परिधान, कंप्यूटर, किताबें, डीवीडी और अधिक के लिए ऑनलाइन शॉपिंग)
कंसोल से, हम समझ सकते हैं कि भले ही पहले परीक्षण मामले (वेरिसिटेल) में जोरदार विफलता थी, लेकिन निष्पादन अगली पंक्ति तक जारी रहा जिसमें कथन - 'अभिकथन 1 निष्पादित किया गया' मुद्रित किया गया था और केवल सॉफ्टवेअर के बुलाए जाने के बाद, अपवाद फेंक दिया गया था।
जब हार्ड और सॉफ्ट जोर का उपयोग करने के लिए?
यदि आपको किसी परीक्षण के मामले के सभी चरणों को निष्पादित करने की आवश्यकता है, भले ही किसी दावे के विफल होने के बाद भी निष्पादित किया जाए, और आप भी अभिकथन अपवाद को रिपोर्ट करना चाहते हैं, तो सॉफ्ट एसेर्सेस का उपयोग करने का विकल्प चुनें। अपनी परीक्षण लिपियों में नरम अभिकर्मकों का उपयोग करना एक अच्छा अभ्यास है और आपके परीक्षण निष्पादन से निपटने का एक प्रभावी तरीका है
यदि आप चाहते हैं कि आपके परीक्षण के मामले का निष्पादन केवल एक दावे के पारित होने के बाद आगे बढ़ें ( उदाहरण के लिए, मान्य लॉगिन सत्यापित करें और उसके बाद ही अन्य चरणों को निष्पादित करें), फिर हार्ड एसेसरीज का उपयोग करें।
जूनित अभिकथन विधियाँ
विभिन्न प्रकार के Junit Assert विधियों के बारे में नीचे विस्तार से बताया गया है।
(1) जोर
assertequals विधि वास्तविक परिणाम के साथ अपेक्षित परिणाम की तुलना करती है। यदि यह अपेक्षित परिणाम वास्तविक परिणाम के साथ मेल नहीं खाता है और जोर से बराबर विधि पर कार्यक्रम के निष्पादन को समाप्त करता है तो यह एक जोर देता है।
वाक्य - विन्यास:
public static void assertEquals(String expected, String actual)
उदाहरण:
स्ट्रिंग अपेक्षित = 'https://www.google.com';
स्ट्रिंग वास्तविक = 'https://www.google.com';
Assert.assertEquals (अपेक्षित, वास्तविक);
# 2) जोर दें
मुखर विधि का दावा है कि एक निर्दिष्ट शर्त सच है।
यह दो मापदंडों में ले जाता है यानी एक संदेश है और दूसरा वह स्थिति है जिसके खिलाफ दावे को लागू करने की आवश्यकता है। यह जोर देता है अगर जोर देने की स्थिति के लिए पारित शर्त संतुष्ट नहीं है।
वाक्य - विन्यास:
public static void assertTrue(java.lang.String message, boolean condition)
संदेश - संदेश एक त्रुटि के मामले में प्रदर्शित होने के लिए।
शर्त - वह शर्त जिसके विरुद्ध दावे को लागू करने की आवश्यकता है।
उदाहरण:
Assert.assertTrue ('सत्य परीक्षण संदेश पर जोर दें', सत्य);
# 3) मुखर
झूठी विधि का दावा है कि एक निर्दिष्ट शर्त झूठी है।
यह दो मापदंडों में लेता है, अर्थात् एक संदेश है और दूसरा वह स्थिति है जिसके खिलाफ दावे को लागू करने की आवश्यकता है। यह जोर देता है अगर Assertfalse विधि के लिए पारित शर्त संतुष्ट नहीं है।
वाक्य - विन्यास:
public static void assertFalse(java.lang.String message, boolean condition)
संदेश - संदेश एक त्रुटि के मामले में प्रदर्शित होने के लिए।
शर्त - वह शर्त जिसके विरुद्ध दावे को लागू करने की आवश्यकता है।
उदाहरण:
Assert.assertFalse ('झूठे परीक्षण संदेश का दावा करें' गलत);
# 4) जोर
यदि आवश्यक ऑब्जेक्ट में कोई शून्य मान है, तो सत्यापित करने के लिए assert null का उपयोग किया जाता है। यह पैरामीटर के रूप में एक वस्तु लेता है और यदि प्रदान की गई वस्तु अशक्त मान नहीं रखती है तो एक जोर देता है।
वाक्य - विन्यास:
public static void assertNull(Object object)
उदाहरण:
डेमोक्लास डेमो = नया डेमोक्लास ();
Assert.assertNull (डेमो);
# 5) asNotNotNull
मुखर नहीं शून्य का उपयोग यह सत्यापित करने के लिए किया जाता है कि प्रदान की गई वस्तु शून्य मान नहीं रखती है। यह पैरामीटर के रूप में एक ऑब्जेक्ट लेता है और एक जोर देता है यदि प्रदत्त ऑब्जेक्ट में शून्य मान नहीं है।
वाक्य - विन्यास:
public static void assertNotNull(Object object)
उदाहरण:
डेमोक्लास डेमो = नया डेमोक्लास ();
Assert.assertNotNull (डेमो);
# 6) मुखर
एक ही विधि की जाँच करता है अगर पैरामीटर के रूप में प्रदान की गई दो वस्तुएं एक ही वस्तु को संदर्भित करती हैं यदि प्रदान की गई संदेश के साथ एक ही वस्तु को संदर्भित नहीं करता है तो यह एक जोर देता है।
कृपया ध्यान दें कि Assert केवल वस्तुओं के संदर्भों की तुलना करता है, लेकिन वास्तविक मूल्यों की नहीं।
वाक्य - विन्यास:
public static void assertSame(String message, Object expected,Object actual)
उदाहरण:
डेमोक्लास 1 डेमो 1 = नया डेमोक्लास 1 ();
डेमोक्लास 2 डेमो 2 = नया डेमोक्लास 2 ();
Assert.assertSame ('दो वस्तुएं समान हैं', डेमो 1, डेमो 2);
# 7) assertNotSame
मुखर एक ही पुष्टि नहीं करता है कि दो वस्तुएं समान नहीं हैं। यदि एक ही वस्तु को संदर्भित करने के लिए दो ऑब्जेक्ट हैं, तो एक जोर दिया जाएगा।
कृपया ध्यान दें कि मुखर एक ही विधि नहीं वस्तुओं के संदर्भ की तुलना करता है न कि वस्तुओं में मौजूद मान।
वाक्य - विन्यास:
public static void assertNotSame(String message, Object expected, Object actual)
उदाहरण:
डेमोक्लास 1 डेमो 1 = नया डेमोक्लास 1 ();
डेमोक्लास 2 डेमो 2 = नया डेमोक्लास 2 ();
Assert.assertNotSame ('दो ऑब्जेक्ट्स समान नहीं हैं', डेमो 1, डेमो 2);
# 8) asArrayEquals
मुखर बराबर पुष्टि करता है कि दो ऑब्जेक्ट सरणियाँ समान हैं। यदि दोनों सरणियाँ शून्य मान रखती हैं, तो उन्हें समान माना जा रहा है। यह विधि प्रदान की गई संदेश के साथ एक जोर देता है यदि दोनों ऑब्जेक्ट सरणियों को समान नहीं माना जाता है।
वाक्य - विन्यास:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
संदेश - एक जोरदार त्रुटि के मामले में प्रदर्शित होने वाला संदेश।
अपेक्षित - वस्तुओं की सरणी।
वास्तविक - वस्तुओं की सरणी।
उदाहरण:
स्ट्रिंग () अपेक्षित = {'आम', 'सेब', 'केला'}
स्ट्रिंग () वास्तविक = {'मैंगो', 'एप्पल', 'केला'}
Assert.assertArrayEquals (अपेक्षित, वास्तविक);
TestNG Assert Methods
TestNG Assert विधियाँ Junit मुखर विधियों के समान होंगी जो ऊपर चर्चा की गई हैं। प्रमुख Junit और TestNG के बीच अंतर मुखर तरीके मुखरता को संभालने के तरीके में आते हैं।
TestNG अधिक उन्नत शोध प्रबंध तकनीकों जैसे आश्रित वर्ग, समूह परीक्षण, परिमाणित परीक्षण आदि प्रदान करता है।
TestNG मुखर तरीकों पर वीडियो ट्यूटोरियल
भाग I
भाग द्वितीय
भाग III
(1) जोर
यदि दो डेटा मान बराबर हैं, तो इस विधि का उपयोग करने के लिए किया जाता है। हम स्ट्रिंग, बूलियन, पूर्णांक जैसे विभिन्न डेटा प्रकारों के मूल्यों की तुलना कर सकते हैं। आदि जब भी अपेक्षित और वास्तविक मूल्य समान होते हैं, तो अभिकथन बिना किसी अपवाद के गुजरता है। यदि वे नहीं हैं, तो एक जोर दिया जाता है।
प्रयोग : इस प्रकार के दावे का उपयोग मामले को सत्यापित करने के लिए किया जाता है जब वेबपेज पर प्रदर्शित डेटा अपेक्षित या आवश्यकतानुसार निर्दिष्ट किया जाता है।
वाक्य - विन्यास:
Assert.assertEquals(actual,expected)
पैरामीटर:
व्यापार विश्लेषक साक्षात्कार सवाल और जवाब पीपीटी
वर्तमान - वास्तविक मूल्य जो हम स्वचालन से उम्मीद करते हैं।
अपेक्षित होना -अपेक्षित मूल्य।
उदाहरण: यह सत्यापित करने के लिए, कि क्या अमेज़न होम पेज में शीर्षक है, AmazonAmazon.com: इलेक्ट्रॉनिक्स, परिधान, कंप्यूटर, किताबें, डीवीडी और अधिक के लिए ऑनलाइन शॉपिंग ’
@Test public void verifyTitle() { WebDriver driver = new FirefoxDriver(); driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); }
कंसोल:
जोर दिया।
PASSED: VerifyTitle
उपरोक्त उदाहरण में, दो तारों को समान मूल्यों के लिए सत्यापित किया गया था। इसी तरह, अन्य डेटा प्रकार जैसे कि पूर्णांक, बूलियन, आदि की समानता को सत्यापित किया जा सकता है।
# 2) जोर
यदि डेटा के दो मान नहीं हैं, तो सत्यापित करने के लिए assertNotEquals का उपयोग किया जाता है। यह अभिकथन के कार्य के विपरीत है। जब भी अपेक्षित और वास्तविक मूल्य मेल खाते हैं, तो अभिकथन एक अपवाद के साथ विफल होता है और परीक्षण-मामले को 'विफल' के रूप में चिह्नित करता है।
प्रयोग : इसका उपयोग उन मामलों में किया जाता है जब हम यह सत्यापित करना चाहेंगे कि प्रत्येक डेटा एक वेब पेज पर अद्वितीय है। उदाहरण के लिए , एक टेलीफोन निर्देशिका, जहाँ कोई 2 फ़ोन नंबर समान नहीं हैं।
वाक्य - विन्यास:
Assert.assertNotEquals(actual,expected)
पैरामीटर:
वर्तमान - वास्तविक मूल्य जो हम स्वचालन से उम्मीद करते हैं।
अपेक्षित होना - अपेक्षित मूल्य।
उदाहरण: यह सत्यापित करने के लिए कि दो अलग-अलग क्षेत्रों के पिन कोड अद्वितीय / समान नहीं हैं।
@Test // test case to verify AssertNotEquals public void verifyAssertNotEquals{ WebDriver driver = new FirefoxDriver(); driver.get('http://chennaiiq.com/chennai/pincode-by-name.php'); WebElement Adambakkam = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(5)/td(3)')); WebElement Aminijikarai = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(15)/td(3)')); String Pincode1 = Adambakkam.getText(); String Pincode2 = Aminijikarai.getText(); System.out.println('Two Unique pincodes are : ' +Pincode1 +' && '+Pincode2); Assert.assertNotEquals(Pincode1, Pincode2); System.out.println(“Assert passed”); }
कंसोल:
दो अनोखे पिनकोड हैं: 600012 और& 600001
जोर दिया।
PASSED: सत्यापित करें
# 3) जोर दें
यदि किसी बूलियन स्थिति सही है, तो सत्यापित करने के लिए assertTrue का उपयोग किया जाता है। यह दावा सही साबित होता है यदि निर्दिष्ट शर्त गुजरती है, यदि नहीं, तो एक जोरदार त्रुटि है।
वाक्य - विन्यास:
Assert.assertTrue(BooleanCondition);
मापदंडों :
बूलियनकंडिशन - इसकी वापसी के प्रकार की जांच करने के लिए शर्त सही होनी चाहिए।
प्रयोग :
उदाहरण: सत्यापित करने के लिए, यदि साइन इन करें बटन Amazon.in के मुखपृष्ठ पर मौजूद है (बटन के प्रदर्शन के लिए दावा करें)।
Assert.assertTrue(SignIn.isDisplayed());
यहाँ, यह पुष्टि करता है कि अगर बूलियन स्थिति - SignIn.IsDisplayed () TRUE लौटाता है।
उदाहरण: यह सत्यापित करने के लिए कि वेबपेज पर कोई बटन मौजूद है या नहीं।
@Test // Test cases for AssertTrue public void verifyAssertTrue(){ WebDriver driver = new FirefoxDriver(); driver.get('https://www.amazon.in');// Open browser and pass URL in address bar WebElement Navigation = driver.findElement(By.xpath('//*(@id='nav-link-yourAccount')')); WebElement SignInButton = driver.findElement(By.xpath('//span(text()='Sign in')')); Actions move = new Actions(driver); move.moveToElement(Navigation).build().perform(); Boolean checkButtonPresence = SignInButton.isDisplayed(); Assert.assertTrue(checkButtonPresence); System.out.println('Button is displayed'); }
कंसोल:
बटन प्रदर्शित होता है
PASSED: सत्यापनकर्ताआधार
# 4) मुखर
यदि किसी बूलियन स्थिति झूठी है, तो सत्यापित करने के लिए assertFalse का उपयोग किया जाता है। दूसरे शब्दों में, दिए गए बूलियन की स्थिति का वापसी प्रकार गलत होना चाहिए। यदि यह निर्दिष्ट शर्त FALSE रिटर्न प्रकार है यदि नहीं, तो यह दावा पास हो जाता है।
वाक्य - विन्यास:
Assert.assertFlase(BooleanCondition);
मापदंडों :
बूलियनकंडिशन - इसकी वापसी के प्रकार के लिए जाँच करने की शर्त झूठी है।
प्रयोग : एक परिदृश्य जहां इसका उपयोग किया जा सकता है, यह सत्यापित करना है कि कोई तत्व किसी निश्चित कार्रवाई के बाद वेबपेज पर मौजूद नहीं है या नहीं।
उदाहरण 1: लॉगिन के बाद साइन-इन बटन को प्रदर्शित नहीं किया जाना चाहिए।
Assert.assertFalse(SignIn.isDisplayed());
यदि यह बूलियन स्थिति का दावा करता है - SignIn.IsDisplayed () रिटर्न FALSE।
उदाहरण 2:
यह सत्यापित करने के लिए कि क्या एक विशेष कार्रवाई के बाद एक div गायब हो जाता है इसलिए, यहां हम यह सत्यापित करते हैं कि div प्रदर्शित नहीं है, या दूसरे शब्दों में, प्रदर्शित किए गए div पर गलत स्थिति के लिए Assert।
@Test // Test case for AssertFalse public void verifyAssertFalse() throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); WebElement CaptchaDiv = driver.findElement(By.xpath('//div(contains(@id,'ImgContainer'))')); WebElement CheckBox = driver.findElement(By.xpath('//*(@id='otpId')')); CheckBox.click(); Assert.assertFalse(CaptchaDiv.isDisplayed()); System.out.println('Captcha div dimmed out of screen'); }
कंसोल:
कैप्चा डिव स्क्रीन से बाहर हो गया
बीतने के:VerAssertFalse
# 5) जोर
यह दावा सत्यापित करने के लिए उपयोग किया जाता है कि किसी वस्तु का अशक्त रिटर्न वैल्यू है या नहीं। दूसरे शब्दों में, यह जाँचता है कि क्या परिणाम शून्य है। जब ऑब्जेक्ट अशक्त होता है, तो अभिकथन बिना किसी अपवाद के पारित हो जाता है।
वाक्य - विन्यास:
AssertNull(Object)
मापदंडों :
वस्तु - कोई भी डेटा मान जो एक शून्य मान रखता है।
उपयोग:
उदाहरण 1:
यदि स्ट्रिंग एक अशक्त है तो जोर दें।
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNull(str1); // asserts if str1 holds null value System.out.println('String holds null value – Assert passed'); }
उदाहरण 2:
यदि चालक का मान क्रोम चालक को शुरू करने से पहले अशक्त है, तो जोर दें।
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
यहाँ, ड्राइवर ऑब्जेक्ट शून्य है क्योंकि यह शुरू नहीं हुआ है। इसलिए, AssertNull (ड्राइवर) एक सफलता होगी क्योंकि यह सत्यापित करता है कि ऑब्जेक्ट 'ड्राइवर' शून्य मान रखता है
# 6) asNotNotNull
यह दावा एक वैध वापसी प्रकार की अपेक्षा करता है, जो शून्य मान से इतर है। दूसरे शब्दों में, यह एक वस्तु के लिए जाँच करता है यदि यह अशक्त नहीं है। वापसी प्रकार बूलियन, स्ट्रिंग, पूर्णांक, सूची, आदि हो सकता है। जब वस्तु अशक्त नहीं होती है, तो अभिकथन पारित किया जाता है, यदि नहीं, तो जोर दिया जाता है।
वाक्य - विन्यास:
AssertNotNull(Object)
मापदंडों :
वस्तु - कोई भी डेटा वैल्यू जो किसी भी डेटा वैल्यू को रखती है।
उपयोग:
उदाहरण 1: जोर एक स्ट्रिंग कुछ डेटा रखती है। अर्थात यह नल नहीं है।
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNotNull(str2); // asserts if str2 holds some value System.out.println('String holds null value – Assert passed'); }
उदाहरण 2: फ़ायरफ़ॉक्सड्राइवर आरंभ करने के बाद, ड्राइवर ऑब्जेक्ट को सत्यापित करें, अशक्त नहीं है।
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
यहां, ड्राइवर ऑब्जेक्ट को फ़ायरफ़ॉक्स ड्राइवर के लिए शुरू किया गया है और इसलिए object ड्राइवर की वस्तु के पास कुछ मूल्य है क्योंकि यह शुरू नहीं हुआ है। इसलिए, AssertNotNull (ड्राइवर) एक सफलता होगी क्योंकि यह सत्यापित होता है कि ऑब्जेक्ट 'ड्राइवर' शून्य मान नहीं रखता है
क्लिक यहां नमूना परीक्षण मामलों के लिए।
परख के लिए नमूना कार्यक्रम
बराबरी का दावा:
package Demo; import org.junit.Assert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionDemo { public static void main(String() args) throws InterruptedException{ String sValue = 'Assert Equals Test'; Assert.assertEquals('Assert Equals Test', sValue); System.out.println('Test Passed'); } }
कोड स्पष्टीकरण:
उपरोक्त कोड सरल शब्दों में AssertEquals पद्धति के उपयोग को दर्शाता है।
- जैसा कि पहले चर्चा की गई है, एस्टर बराबर दो मापदंडों में ले जाता है यानी अपेक्षित परिणाम और वास्तविक परिणाम। यदि अपेक्षित परिणाम वास्तविक परिणाम के साथ मेल नहीं खाता है, तो एक जोरदार त्रुटि को फेंक दिया जाएगा और प्रोग्राम निष्पादन assert बराबर पद्धति पर समाप्त हो जाएगा।
- उपरोक्त कोड उपयोगकर्ता-परिभाषित स्ट्रिंग मान की अपेक्षा स्ट्रिंग मान से करता है।
- कृपया ध्यान दें कि वास्तविक समय में, वास्तविक परिणाम एक उपयोगकर्ता परिभाषित ऑपरेशन होगा, जिसके लिए मूल्य को रन टाइम पर लाया जाएगा और एक पैरामीटर के रूप में एस्टर को बराबर किया जाएगा।
सच का दावा करें:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
कोड स्पष्टीकरण:
उपरोक्त कोड मुखर विधि के उपयोग को प्रदर्शित करता है।
- हम शुरू में एक वेरिएबल पर अपेक्षित पेज टाइटल पास कर रहे हैं। फिर हम फ़ायरफ़ॉक्स ड्राइवर की एक वस्तु को तत्काल चालू कर रहे हैं और इसे वेब पेज - https://www.google.com पर नेविगेट कर रहे हैं
- बाद में, assertsTrue पद्धति का उपयोग करके हम खुले पृष्ठ शीर्षक की अपेक्षा पृष्ठ शीर्षक के साथ कर रहे हैं। यदि खोला गया पृष्ठ शीर्षक अपेक्षित शीर्षक के साथ मेल नहीं खाता है, तो एक जोरदार त्रुटि डाली जाएगी और प्रोग्राम निष्पादन को मुखर विधि पर समाप्त कर दिया जाएगा।
- उपरोक्त कोड को सफलतापूर्वक तभी निष्पादित किया जाएगा जब वास्तविक पृष्ठ शीर्षक अपेक्षित पृष्ठ शीर्षक के साथ मेल खाता हो।
असत्य का उच्चारण करें:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google1'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
कोड स्पष्टीकरण:
उपरोक्त कोड मुखर विधि के उपयोग को प्रदर्शित करता है।
- हम शुरू में एक वेरिएबल पर अपेक्षित पेज टाइटल पास कर रहे हैं और फिर फ़ायरफ़ॉक्स ड्राइवर की एक वस्तु को इंस्टेंट कर रहे हैं और वेब पेज पर नेविगेट कर रहे हैं - https://www.google.com
- बाद में, मुखर विधि का उपयोग करके हम अपेक्षित पृष्ठ शीर्षक के साथ खोले गए पृष्ठ शीर्षक की तुलना कर रहे हैं। यदि खोला गया पृष्ठ शीर्षक अपेक्षित शीर्षक के साथ मेल खाता है, तो एक जोरदार त्रुटि डाली जाएगी और कार्यक्रम का निष्पादन मुखर झूठी विधि पर समाप्त हो जाएगा।
- उपरोक्त कोड को सफलतापूर्वक तभी निष्पादित किया जाएगा जब वास्तविक पृष्ठ शीर्षक अपेक्षित पृष्ठ शीर्षक के साथ मेल नहीं खाता हो।
एंड टू एंड कोड फॉर असेसरीज
नीचे दिए गए दावे के लिए कोड के अंत का एक नमूना अंत है। हमने सरलता के उद्देश्य से निम्नलिखित परिदृश्य का उपयोग किया है।
परिदृश्य:
- वेब पेज खोलें: फ़ायरफ़ॉक्स ब्राउज़र पर https://www.google.com।
- सत्यापित करें कि यदि खोला गया पृष्ठ शीर्षक मुखर विधि का उपयोग करके अपेक्षित पृष्ठ शीर्षक के बराबर है।
- खोज टेक्स्टबॉक्स पर, खोज कीवर्ड दर्ज करें: सेलेनियम।
- कीबोर्ड पर एंटर बटन दबाएं।
- सत्यापित करें कि खोज परिणाम पृष्ठ पर खोला गया पृष्ठ शीर्षक assertequals पद्धति और मुखर विधि का उपयोग करके अपेक्षित पृष्ठ शीर्षक के बराबर है।
- ब्राउज़र बंद करें।
नमूना कोड:
packageDemo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo { public static void main(String args()) throws InterruptedException { String expectedTitle = 'Google'; String expectedText = 'selenium - Google Search'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); // Open the web page https://www.google.com using firefox browser WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); // Validate if actual web page title matches with that of expected title using assert true method System.out.println('Assert true method validation'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); // Enter the keyword selenium on the search textbox WebElementsearchBox = driver.findElement(By.xpath('//*(@name='q')')); searchBox.sendKeys('selenium'); searchBox.sendKeys(Keys.ENTER); Thread.sleep(8000); // Validate the actual page title with expected page title using assert equals method System.out.println('Assert equals method validation'); Assert.assertEquals(expectedText, driver.getTitle()); // Page title validation using assert false method System.out.println('Assert false method validation'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); // Close the current browser driver.close(); } }
कोड आउटपुट:
प्रारंभ में, फ़ायरफ़ॉक्स ब्राउज़र विंडो वेब पेज: https://www.google.com के साथ खोली जाएगी। यदि पृष्ठ का शीर्षक अपेक्षित पृष्ठ शीर्षक - Google के साथ मेल खाता हो तो Asserttrue विधि सत्यापित करेगी।
स्क्रिप्ट खोज कीवर्ड को सेलेनियम के रूप में दर्ज करेगी और एंटर बटन दबाएगी।
यदि खोज परिणाम का वास्तविक पृष्ठ शीर्षक अपेक्षित शीर्षक - - सेलेनियम - Google खोज ’के साथ मेल खाता है, तो मुखर और मुखर तरीके तुलना करते हैं। तब ब्राउजर Driver.close मेथड के जरिए बंद हो जाएगा।
कंसोल आउटपुट:
नीचे दिया गया पाठ ग्रहण आईडीई पर कंसोल आउटपुट होगा
Assert Class का उपयोग करते समय सामान्य गलतियों से बचें
1 है। मान लीजिए कि आपके प्रोजेक्ट में JUnit, TestNG और python लाइब्रेरी कॉन्फ़िगर हैं
दो । लेकिन आपकी स्क्रिप्ट में, आप TestNG एनोटेशन का उपयोग कर रहे हैं और गलती से, आप Junit Assertion चुनते हैं, तो आपका Assert वर्ग पदावनत हो जाएगा। स्क्रीनशॉट के नीचे देखें
३। इसलिए उचित Assert Class चुनना बहुत महत्वपूर्ण है, TestNg के लिए एकमात्र org.TestNG मुखर वर्ग चुनें
चार। जूनिट के लिए org.junit.Assert क्लास वगैरह चुनें।
५। शीतल अभिकथन करने के लिए हमें assertAll () विधि को अनिवार्य रूप से कॉल करने की आवश्यकता है
६। जब एक अभिकथन विफल होता है तो वह अपवाद को नहीं बल्कि त्रुटि को फेंक देगा
निष्कर्ष
हम नीचे के संकेत के साथ सेलेनियम में जोर पर इस लेख का निष्कर्ष निकाल सकते हैं:
- अपेक्षित परिणाम के साथ एक आवेदन के वास्तविक परिणाम की तुलना करने के लिए एक दावे का उपयोग किया जाता है।
- एक परीक्षण मामले को केवल तभी माना जाता है जब सभी दावे पूरे हो गए हों।
- मुखर विधि वास्तविक परिणाम के साथ अपेक्षित परिणाम की तुलना करती है। यदि यह अपेक्षित परिणाम वास्तविक परिणाम के साथ मेल नहीं खाता है और एस्सेरेक्वाल्स विधि पर प्रोग्राम निष्पादन को समाप्त करता है तो यह एक जोर देता है।
- मुखर विधि का दावा है कि एक निर्दिष्ट शर्त सच है। यह जोर देता है अगर जोर देने की स्थिति के लिए पारित शर्त संतुष्ट नहीं है।
- मुखर विधि का दावा है कि एक निर्दिष्ट स्थिति झूठी है। यदि कोई गलत तरीके से दावा करने के लिए पारित किया गया है, तो यह एक जोर देता है।
- सेलेरियम में AssertEquals, AssertTrue, और AssertFalse तरीके सबसे अधिक उपयोग किए जाने वाले दावे हैं।
में आगामी ट्यूटोरियल , हम वास्तविक समय परियोजना परिदृश्य में उपयोग किए जाने वाले विभिन्न उदाहरणों पर चर्चा करेंगे और समझेंगे कि उद्देश्य के अनुसार कैसे उपयोग किया जाता है।
एमपी 3 प्लेयर के लिए मुफ्त एमपी 3 संगीत डाउनलोड
हमें उम्मीद है कि इस लेख ने सेलेनियम में आपके ज्ञान को समृद्ध किया है !!
=> आसान सेलेनियम प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
अनुशंसित पाठ
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- सेलेनियम लिपियों के निर्माण के लिए TestNG फ्रेमवर्क का उपयोग कैसे करें - TestNG सेलेनियम ट्यूटोरियल # 12
- सेलेनियम में TestNG एनोटेशन का उपयोग करना सीखें (उदाहरणों के साथ)
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- जेमीटर के साथ सेलेनियम का एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- सबसे लोकप्रिय टेस्ट ऑटोमेशन फ्रेमवर्क प्रत्येक के पेशेवरों और विपक्षों के साथ - सेलेनियम ट्यूटोरियल # 20
- 30+ सर्वश्रेष्ठ सेलेनियम ट्यूटोरियल: वास्तविक उदाहरणों के साथ सेलेनियम सीखें