Selenium साथ में Cucumber (बीडीडी फ्रेमवर्क ट्यूटोरियल)


इस ट्यूटोरियल में, आप सीखेंगे कि कैसे एकीकृत करें Cucumber साथ में Selenium वेबड्राइवर.

एचएमबी क्या है? Cucumber?

Cucumber यह एक परीक्षण दृष्टिकोण है जो व्यवहार संचालित विकास (BDD) का समर्थन करता है। यह गेरकिन भाषा का उपयोग करके सरल अंग्रेजी पाठ में एप्लिकेशन के व्यवहार को समझाता है।

अधिक जानकारी के लिए यहां जाएं – https://www.guru99.com/cucumber-tutorials.html

एचएमबी क्या है? Selenium?

Selenium के लिए एक स्वचालन उपकरण है क्रियात्मक परीक्षण वेब-आधारित अनुप्रयोग का. Selenium जावा, रूबी, पायथन सी# आदि जैसी विभिन्न भाषाओं का समर्थन करता है।

अधिक जानकारी के लिए यहां जाएं – https://www.guru99.com/selenium-tutorial.html

क्यों का उपयोग करें Cucumber साथ में Selenium?

Cucumber और Selenium दो लोकप्रिय प्रौद्योगिकियां हैं।

अधिकांश संगठन इसका उपयोग करते हैं Selenium कार्यात्मक परीक्षण के लिए। ये संगठन जो उपयोग कर रहे हैं Selenium, एकीकृत करना चाहते हैं Selenium साथ में Cucumber as Cucumber बनाता है इससे आवेदन प्रवाह को पढ़ना और समझना आसान हो जाता है।

Cucumber यह उपकरण व्यवहार संचालित विकास ढांचे पर आधारित है जो सेतु का कार्य करता है निम्नलिखित लोगों के बीच:

  1. सॉफ्टवेयर इंजीनियर और बिजनेस विश्लेषक।
  2. मैनुअल परीक्षक और स्वचालन परीक्षक.
  3. मैनुअल परीक्षक और डेवलपर्स.

Cucumber बी.डी.डी. ढांचा भी क्लाइंट को एप्लिकेशन कोड समझने में लाभ होता है क्योंकि यह गेरकिन भाषा का उपयोग करता है जो प्लेन टेक्स्ट में है। संगठन में कोई भी व्यक्ति सॉफ़्टवेयर के व्यवहार को समझ सकता है। गेरकिन का सिंटैक्स सरल टेक्स्ट में है जो पढ़ने योग्य और समझने योग्य है।

Cucumber साथ में Selenium

उपयोग के लिए पूर्वापेक्षा Cucumber साथ में Selenium

हमारे शुरू करने से पहले Cucumber Selenium एकीकरण के लिए हमें निम्नलिखित वस्तुओं की आवश्यकता है:

  • Selenium jar फ़ाइलें:
  • Selenium-सर्वर-स्टैंडअलोन

यहां से डाउनलोड किया जा सकता है http://www.seleniumhq.org/download/

उपयोग के लिए पूर्वापेक्षा Cucumber साथ में Selenium

जार फ़ाइलें के लिए Cucumber :

  • Cucumberकोर
  • Cucumber-एचटीएमएल
  • कोबर्टुरा कोड कवरेज
  • Cucumber-जावा
  • Cucumber-जूनिट
  • Cucumber-जेवीएम-डीपीएस
  • Cucumber-रिपोर्टिंग
  • हैमक्रेस्ट-कोर
  • खीरा
  • JUnit

यहां से डाउनलोड किया जा सकता है https://mvnrepository.com/search?q=Cucumber

आपको फ़ाइलों को खोजना होगा और उन्हें एक-एक करके डाउनलोड करना होगा।

उदाहरण के लिए, हम आपको jar फ़ाइलों में से एक को डाउनलोड करना दिखाएंगे, यानी, “Cucumber-मुख्य।"

ऊपर दिए गए डाउनलोड लिंक पर क्लिक करें। यह नीचे दी गई साइट पर रीडायरेक्ट करता है। अब विशेष जार खोजें, यानी 'Cucumber कोर' जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है:

उपयोग के लिए पूर्वापेक्षा Cucumber साथ में Selenium

अगले पेज पर, संस्करण 1.2.2 पर क्लिक करें,

उपयोग के लिए पूर्वापेक्षा Cucumber साथ में Selenium

अगली स्क्रीन में, 'डाउनलोड' पर क्लिक करें।Cucumber कोर' जार फ़ाइल है।

उपयोग के लिए पूर्वापेक्षा Cucumber साथ में Selenium

नोट: आपकी सुविधा के लिए, हमने मावेन से डाउनलोड करने के लिए आवश्यक जार फ़ाइलों को बंडल किया है यहाँ उत्पन्न करेंसमय के साथ ये जार अपडेट हो सकते हैं और असंगत हो सकते हैं। आपसे अनुरोध है कि आप उन्हें ऊपर बताए गए तरीके से डाउनलोड करें।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium.

आइये इसके उपयोग के चरणों का अध्ययन करें Cucumber सेलेनियम के साथ कदम दर कदम। यहाँ हम 3 परिदृश्यों को कवर करेंगे:

  • परिदृश्य 1: कंसोल में पाठ मुद्रित करें.
  • परिदृश्य 2: लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें।
  • परिदृश्य 3: गुरु99 पर लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें। डेटा के 3 सेट के लिए ऐसा करें।

परिदृश्य 1: कंसोल में पाठ मुद्रित करें.

इस परिदृश्य में, हम केवल कंसोल में पाठ का उपयोग करके प्रिंट करते हैं Cucumber.

चरण 1) एक्लिप्स में प्रोजेक्ट बनाएं.

बनाएं Java नाम के साथ परियोजना “Cucumber-Selenium” जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

चरण 2) प्रोजेक्ट में Jar फ़ाइलें जोड़ना.

प्रोजेक्ट पर राइट क्लिक करें > गुण चुनें > पर जाएँ Java बिल्ड पथ. पहले डाउनलोड की गई सभी लाइब्रेरीज़ जोड़ें.

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

चरण 3) फ़ीचर फ़ाइल बनाना

फीचर फ़ाइल बनाने के लिए पहले नीचे स्क्रीनशॉट में दिखाए अनुसार फीचर्स फ़ोल्डर बनाएँ।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

अब फ़ोल्डर का नाम 'फीचर्स' दर्ज करें और 'फिनिश' बटन पर क्लिक करें।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

अब, 'Features' फ़ोल्डर में “MyTest.feature” नाम से फ़ीचर फ़ाइल बनाएँ – प्रक्रिया फ़ोल्डर बनाने के समान है

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

नोट: आपको इसे स्थापित करने की आवश्यकता हो सकती है Cucumber Eclipse इसके काम करने के लिए प्लगइन। जाओ — मदद->नया सॉफ्टवेयर इंस्टॉल करें->लिंक को कॉपी पेस्ट करें http://cucumber.github.io/cucumber-eclipse/update-site/ और स्थापित करें

चरण 4) परिदृश्य लिखें.

नीचे दी गई पंक्तियाँ 'MyTest.feature' फ़ाइल में Gherkin भाषा का उपयोग करके लिखी गई हैं, जैसा कि नीचे दिखाया गया है:

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

कोड स्पष्टीकरण

लाइन 1) इस पंक्ति में हम व्यवसाय कार्यक्षमता लिखते हैं।

लाइन 2) इस पंक्ति में हम परीक्षण हेतु एक परिदृश्य लिखते हैं।

लाइन 3) इस पंक्ति में हम पूर्व शर्त को परिभाषित करते हैं।

लाइन 4) इस पंक्ति में हम उस कार्य को परिभाषित करते हैं जिसे हमें करना है।

लाइन 4) इस पंक्ति में हम अपेक्षित परिणाम या परिणाम को परिभाषित करते हैं।

चरण 5) सेलेनियम टेस्टरनर स्क्रिप्ट लिखना Selenium Cucumber ढांचा डिजाइन

यहां हम 'TestRunner' पैकेज बनाते हैं और फिर उसके अंतर्गत 'Runner.java' क्लास फ़ाइल बनाते हैं।

package TestRunner;		

import org.junit.runner.RunWith;		
import cucumber.api.CucumberOptions;		
import cucumber.api.junit.Cucumber;		

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

ऊपरोक्त में Cucumber Java उदाहरण कोड, हम चलाते हैं ककड़ी परीक्षण निम्नलिखित एनोटेशन का उपयोग करके:

@साथ चलाएं() एनोटेशन हमारे परीक्षणों को निष्पादित करने के लिए टेस्ट रनर क्लास के बारे में बताता है।

@ककड़ीविकल्प() एनोटेशन का उपयोग हमारे ककड़ी परीक्षण के लिए कुछ गुण सेट करने के लिए किया जाता है जैसे कि फीचर फ़ाइल, चरण परिभाषा, आदि।

टेस्टरनर फ़ाइल का स्क्रीनशॉट.

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

चरण 6) चरण परिभाषा स्क्रिप्ट बनाना.

अब यहाँ हम 'StepDefinition' पैकेज बनाते हैं और फिर उसके अंतर्गत 'Steps.java' स्क्रिप्ट फ़ाइल बनाते हैं। यहाँ हम वास्तव में परीक्षण करने के लिए एक सेलेनियम स्क्रिप्ट लिखते हैं Cucumber तरीकों.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

उपरोक्त कोड में, क्लास 'स्टेप्स' नाम से बनाई गई है। Cucumber एनोटेशन का उपयोग फीचर फ़ाइल के साथ मैप करने के लिए किया जाता है। प्रत्येक एनोटेशन विधि परिभाषित की गई है:

@दिया गया एनोटेशन फ़ायरफ़ॉक्स खोलने और एप्लिकेशन लॉन्च करने की विधि को परिभाषित करता है

@कब एनोटेशन उपयोगकर्ता नाम और पासवर्ड दर्ज करने की विधि परिभाषित करता है

@तब एनोटेशन क्रेडेंशियल रीसेट करने की विधि परिभाषित करता है

प्रत्येक विधि के अंतर्गत, हम केवल एक संदेश मुद्रित कर रहे हैं।

नीचे 'Steps.java' स्क्रिप्ट और प्रोजेक्ट ट्री का स्क्रीनशॉट दिया गया है, यह कैसा दिखता है।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

नोट: चरण परिभाषा कुछ और नहीं बल्कि वे चरण हैं जिन्हें आप इस ककड़ी विधि के तहत करना चाहते हैं।

चरण 7) स्क्रिप्ट का निष्पादन.

उपयोगकर्ता इस स्क्रिप्ट को टेस्ट रनर स्क्रिप्ट, यानी 'Runner.java' से निष्पादित कर सकता है जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

चरण 8) आउटपुट का विश्लेषण करें.

'Runner.java' स्क्रिप्ट को निष्पादित करने पर, यह कंसोल पर टेक्स्ट प्रदर्शित करता है। यह वही टेक्स्ट है जो 'Steps.java' स्क्रिप्ट में परिभाषित किया गया है।

स्वचालन परीक्षण का उपयोग करना Cucumber साथ में Selenium

परिदृश्य 2: लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें।

यहां हम गुरु99 डेमो लॉगिन पेज पर क्रेडेंशियल दर्ज करेंगे और मान रीसेट करेंगे

परिदृश्य 2 के लिए हमें केवल 'Steps.java' स्क्रिप्ट को अपडेट करने की आवश्यकता है। यहाँ हम वास्तव में सेलेनियम स्क्रिप्ट को नीचे दिए गए चरणों के अनुसार लिखते हैं। सबसे पहले, हमें जोड़ने की आवश्यकता है Selenium jar फ़ाइल को इस प्रोजेक्ट में जोड़ें।

लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें

चरण 1) यहां हम 'Steps.java' स्क्रिप्ट को अपडेट करते हैं जैसा कि नीचे दिए गए कोड और स्क्रीनशॉट में दिखाया गया है।

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

उपरोक्त सेलेनियम स्क्रिप्ट का स्क्रीनशॉट.

लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें

चरण 2) स्क्रिप्ट निष्पादित करें.

अद्यतन करने के बाद हम Runner.java चलाते हैं।

चरण 3) आउटपुट का विश्लेषण करें.

आउटपुट में आप निम्नलिखित देख सकते हैं:

  • ब्राउज़र लॉन्च हुआ.
  • गुरु99 बैंक डेमो साइट खुल गई।
  • उपयोगकर्ता नाम और पासवर्ड लॉगिन पृष्ठ पर रखे जाते हैं।
  • मान रीसेट करें.

लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें

परिदृश्य 3: गुरु99 पर लॉगिन क्रेडेंशियल दर्ज करें और मान रीसेट करें। डेटा के 3 सेट के लिए ऐसा करें।

यहां हमें 'Step.java' और फीचर फ़ाइल दोनों को अपडेट करने की आवश्यकता है।

चरण 1) फ़ीचर फ़ाइल को नीचे दिखाए अनुसार अपडेट करें:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

लॉगिन क्रेडेंशियल दर्ज करें

चरण 2) अब Step.java स्क्रिप्ट को अपडेट करें।

यहां हम पैरामीटर्स को पास करने के लिए विधियों को अपडेट करते हैं, नीचे अपडेट की गई स्क्रिप्ट दिखाई गई है:

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

लॉगिन क्रेडेंशियल दर्ज करें

चरण 3) अब अद्यतन स्क्रिप्ट निष्पादित करें.

नीचे दी गई स्क्रीन स्क्रिप्ट के सफल निष्पादन और डेटा के प्रत्येक सेट द्वारा लिया गया समय दर्शाती है।

लॉगिन क्रेडेंशियल दर्ज करें

चरण 4) आउटपुट का विश्लेषण करें.

आउटपुट में आप निम्नलिखित देख सकते हैं:

नीचे दिया गया आउटपुट, डेटा सेटों की संख्या, अर्थात् 3 सेटों के लिए दोहराया जाता है।

  • ब्राउज़र लॉन्च हुआ.
  • गुरु99 बैंक डेमो साइट खुल गई।
  • उपयोगकर्ता नाम और पासवर्ड लॉगिन पृष्ठ पर रखे जाते हैं।
  • मान रीसेट करें.

लॉगिन क्रेडेंशियल दर्ज करें

निष्कर्ष

Cucumber यह एक बहुत ही लोकप्रिय BDD टूल है। इसे पढ़ना आसान है और तकनीकी और गैर-तकनीकी व्यक्ति सहित सभी हितधारकों द्वारा इसे समझा जा सकता है।

Cucumber के साथ एकीकृत किया जा सकता है Selenium निम्नलिखित 3 चरणों का उपयोग करके

  1. फ़ीचर फ़ाइल बनाएँ जिसमें गेरकिन भाषा का उपयोग करके फ़ीचर और परिदृश्यों को चरण दर चरण परिभाषित करें।
  2. Testrunner फ़ाइल बनाएँ। इस फ़ाइल में, हमने एकीकृत किया है Cucumber BDD ढांचे के साथ Seleniumहम इस स्क्रिप्ट को निष्पादित करते हैं।
  3. इस पैकेज के अंतर्गत परिभाषित वास्तविक सेलेनियम स्क्रिप्ट, स्टेप परिभाषा बनाएँ।