cucumber gherkin tutorial
यह जानकारीपूर्ण ट्यूटोरियल ककड़ी गेरकिन फ्रेमवर्क के फायदे बताते हैं और परीक्षा परिणाम के साथ घेरकिन भाषा का उपयोग करके स्वचालन लिपियों को कैसे लिखें:
ककड़ी व्यवहार प्रेरित विकास (BDD) ढांचे पर आधारित एक उपकरण है। BDD सरल सादे पाठ प्रतिनिधित्व में एक आवेदन की कार्यक्षमता को समझने के लिए एक पद्धति है।
बिहेवियर ड्रिवेन डेवलपमेंट फ्रेमवर्क का मुख्य उद्देश्य विभिन्न प्रोजेक्ट रोल्स जैसे बिजनेस एनालिस्ट्स, क्वालिटी एश्योरेंस, डेवलपर्स आदि को तकनीकी पहलुओं में गहराई से गोता लगाए बिना एप्लिकेशन को समझना है।
ककड़ी उपकरण का उपयोग आमतौर पर किसी अनुप्रयोग की स्वीकृति परीक्षणों को लिखने के लिए वास्तविक समय में किया जाता है। ककड़ी उपकरण कई प्रोग्रामिंग भाषाओं जैसे जावा, रूबी, .Net आदि के लिए समर्थन प्रदान करता है। इसे कई उपकरणों जैसे कि सेलेनियम, कैपिबारा, आदि के साथ एकीकृत किया जा सकता है।
आप क्या सीखेंगे:
गेरकिन क्या है?
Gherkin Cucumber टूल द्वारा उपयोग की जाने वाली भाषा है। यह अनुप्रयोग व्यवहार का एक सरल अंग्रेजी प्रतिनिधित्व है। ककड़ी प्रलेखन उद्देश्यों के लिए फीचर फाइलों की अवधारणा का उपयोग करता है। फ़ीचर फ़ाइलों के भीतर सामग्री Gherkin भाषा में लिखी गई है।
निम्नलिखित विषयों में, हम Cucumber Gherkin ढांचे के फायदों के बारे में अधिक देखेंगे, सेलेनियम के साथ Cucumber को समेकित करते हुए, एक फीचर फाइल और इसकी संबंधित स्टेप डेफिनिशन फाइल और एक नमूना फीचर फाइल का निर्माण करेंगे।
ककड़ी Gherkin फ्रेमवर्क के लिए सामान्य शर्तें
ककड़ी गेरकिन फ्रेमवर्क कुछ कीवर्ड का उपयोग करता है जो एक फीचर फाइल लिखने के लिए आवश्यक हैं।
फ़ीचर फ़ाइलों में निम्नलिखित शब्दों का सबसे अधिक उपयोग किया जाता है:
# 1) फ़ीचर:
एक फीचर फ़ाइल को एक एप्लीकेशन अंडर टेस्ट (AUT) का उच्च-स्तरीय विवरण प्रदान करना होगा। फ़ीचर फ़ाइल की पहली पंक्ति के विवरण के बाद कीवर्ड 'फ़ीचर' से शुरू होना चाहिएएक आवेदन पत्रपरीक्षण के अंतर्गत। ककड़ी द्वारा निर्धारित मानकों के अनुसार, सुविधा फ़ाइल में पहली पंक्ति के रूप में निम्नलिखित तीन तत्व शामिल होने चाहिए।
- फ़ीचर कीवर्ड
- फ़ीचर का नाम
- फ़ीचर विवरण (वैकल्पिक)
फ़ीचर कीवर्ड को एक फ़ीचर नाम से अनुसरण किया जाना चाहिए। इसमें एक वैकल्पिक विवरण अनुभाग शामिल हो सकता है जो फ़ीचर फ़ाइल की कई पंक्तियों में फैला हो सकता है। फ़ीचर फ़ाइल में एक्सटेंशन .feature है।
# 2) परिदृश्य:
एक परिदृश्य परीक्षण की जाने वाली कार्यक्षमता का एक परीक्षण विनिर्देश है। आदर्श रूप से, एक फीचर फ़ाइल में एक या अधिक परिदृश्य शामिल हो सकते हैं। एक परिदृश्य में कई परीक्षण चरण शामिल हैं। खीरे के मानकों के अनुसार, एक परिदृश्य में 3-5 परीक्षण चरण शामिल होने चाहिए, क्योंकि लंबी संख्या में कदम बढ़ने पर परिदृश्य अपनी अभिव्यंजक शक्ति खो देते हैं।
एक परिदृश्य में निम्नलिखित चरण शामिल हो सकते हैं:
- एक उपयोगकर्ता द्वारा की जाने वाली कार्रवाई।
- कार्रवाई के अपेक्षित परिणाम।
Gherkin भाषा में, एक परिदृश्य में निम्नलिखित कीवर्ड शामिल होने चाहिए:
- दिया हुआ
- कब
- फिर
- तथा
दिया हुआ:
किसी विशिष्ट परिदृश्य को निष्पादित करने के लिए पूर्व शर्त निर्दिष्ट करने के लिए दिए गए कीवर्ड का उपयोग किया जाता है। एक परिदृश्य में एक से अधिक दिए गए कथन शामिल हो सकते हैं या एक परिदृश्य के लिए कोई दिए गए कथन नहीं हो सकते हैं।
कब:
इस कीवर्ड का उपयोग उपयोगकर्ता द्वारा की गई कार्रवाई या किसी घटना को निर्दिष्ट करने के लिए किया जाता है जैसे कि एक बटन पर क्लिक करना, टेक्स्टबॉक्स पर डेटा दर्ज करना आदि। एक ही परिदृश्य में स्टेटमेंट होने पर कई हो सकते हैं।
फिर:
तब कीवर्ड का उपयोग उपयोगकर्ता द्वारा निष्पादित कार्रवाई के अपेक्षित परिणाम को निर्दिष्ट करने के लिए किया जाता है। आदर्श रूप से, जब उपयोगकर्ता क्रियाओं के अपेक्षित परिणाम को समझने के लिए तब कीवर्ड द्वारा पीछा किया जाना चाहिए।
तथा:
और कीवर्ड का उपयोग कई कथन को संयोजित करने के लिए एक संयोजन कीवर्ड के रूप में किया जाता है। उदाहरण के लिए, एक परिदृश्य में कई दिए गए और जब कथनों को कीवर्ड 'और' का उपयोग करके जोड़ा जा सकता है।
# 3) परिदृश्य रूपरेखा:
एक परिदृश्य रूपरेखा परिदृश्यों के मानकीकरण का एक तरीका है।
आदर्श रूप से इसका उपयोग तब किया जाता है जब डेटा के एकाधिक सेट के लिए समान परिदृश्य को निष्पादित करने की आवश्यकता होती है, लेकिन परीक्षण चरण समान रहते हैं। परिदृश्य रूपरेखा का पालन ‘उदाहरण be उदाहरण के लिए किया जाना चाहिए, जो प्रत्येक पैरामीटर के लिए मूल्यों के सेट को निर्दिष्ट करता है।
परिदृश्य परिदृश्य की अवधारणा को समझने के लिए नीचे दिया गया उदाहरण है:
उदाहरण:
परिदृश्य की रूपरेखा: एक फाइल अपलोड करें
दिया हुआ एक उपयोगकर्ता अपलोड फ़ाइल स्क्रीन पर है।
कब उपयोगकर्ता ब्राउज़ बटन पर क्लिक करता है।
तथा उपयोगकर्ता अपलोड टेक्स्टबॉक्स में प्रवेश करता है।
तथा उपयोगकर्ता बटन पर क्लिक करता है।
फिर सत्यापित करता है कि फ़ाइल अपलोड सफल है।
उदाहरण:
| फ़ाइल नाम |
| फाइल 1 |
| फाइल 2 |
परिदृश्य रूपरेखा के भीतर पैरामीटर वर्ण ers 'के साथ निर्दिष्ट होना चाहिए। पैरामीटर के लिए डेटा मानों की एक सूची को पाइप (!) प्रतीक का उपयोग करके निर्दिष्ट किया जाना चाहिए।
# 4) पृष्ठभूमि:
बैकग्राउंड कीवर्ड का उपयोग कई दिए गए कथनों को एक समूह में समूह के लिए किया जाता है।
यह आमतौर पर तब उपयोग किया जाता है जब दिए गए कथनों के समान सेट को फीचर फ़ाइल के प्रत्येक परिदृश्य में दोहराया जाता है। प्रत्येक परिदृश्य के लिए दिए गए कथनों को बार-बार निर्दिष्ट करने के बजाय, उन्हें पहले परिदृश्य के पहले 'पृष्ठभूमि' के साथ निर्दिष्ट किया जा सकता है।
उदाहरण:
पृष्ठभूमि:
दिया गया उपयोगकर्ता एप्लिकेशन लॉगिन पृष्ठ पर है
ककड़ी गेरकिन फ्रेमवर्क के लाभ
नीचे दिए गए ककड़ी गेरकिन ढांचे के फायदे हैं जो आज की कॉर्पोरेट दुनिया में तेजी से विकसित होने वाली चुस्त कार्यप्रणाली के लिए ककड़ी को एक आदर्श विकल्प बनाते हैं:
- ककड़ी एक ओपन-सोर्स टूल है।
- सादा पाठ प्रतिनिधित्व गैर-तकनीकी उपयोगकर्ताओं के लिए परिदृश्यों को समझना आसान बनाता है।
- यह व्यापार विश्लेषक, डेवलपर्स और गुणवत्ता आश्वासन कर्मियों जैसे विभिन्न परियोजना हितधारकों के बीच संचार खाई को पाटता है।
- ककड़ी उपकरण का उपयोग करके विकसित किए गए स्वचालन परीक्षण मामलों को बनाए रखना और समझना आसान है।
- सेलेनियम और कैपिबारा जैसे अन्य उपकरणों के साथ एकीकृत करना आसान है।
सेलेनियम के साथ ककड़ी का एकीकरण
ककड़ी और सेलेनियम दो सबसे शक्तिशाली कार्यात्मक परीक्षण उपकरण हैं। सेलेनियम वेबड्राइवर के साथ ककड़ी का एकीकरण अनुप्रयोग प्रवाह को समझने के लिए एक परियोजना टीम के विभिन्न गैर-तकनीकी सदस्यों की मदद करता है।
नीचे दिए गए चरणों को सेलेनियम वेबड्राइवर के साथ ककड़ी के एकीकरण के लिए पालन किया जाना है:
चरण 1:
ककड़ी को आवश्यक JAR फ़ाइलों को डाउनलोड करके सेलेनियम वेबड्राइवर के साथ एकीकृत किया जा सकता है।
नीचे दिए गए JAR फ़ाइलों की सूची दी गई है जो सेलेनियम वेबड्राइवर के साथ ककड़ी का उपयोग करने के लिए डाउनलोड की जानी हैं:
- कवरेज-2.1.1.जर
- ककड़ी-कोर-1.2.2.जर
- ककड़ी-जावा-1.2.2.जर
- ककड़ी-जूनिट-1.2.2.जर
- ककड़ी-जेवीएम-डिप्स-1.0.3.जर
- ककड़ी-रिपोर्टिंग-0.1.0.जर
- gherkin-2.12.2.jar
- हैमरेस्ट-कोर-1.3.जर
- junit-4.11.jar
उपरोक्त JAR फाइलें मावेन से डाउनलोड की जा सकती हैं वेबसाइट ।
उपरोक्त JAR फ़ाइलों में से प्रत्येक को उपरोक्त वेबसाइट से व्यक्तिगत रूप से डाउनलोड किया जाना चाहिए।
चरण 2:
ग्रहण में एक नया प्रोजेक्ट बनाएं और उपरोक्त JAR फ़ाइलों को प्रोजेक्ट में जोड़ें। JAR फ़ाइलों को प्रोजेक्ट में जोड़ने के लिए, राइट-क्लिक करें प्रोजेक्ट -> बिल्ड पाथ -> कन्फर्म बिल्ड पाथ।
पर क्लिक करें बाहरी JAR जोड़ें बटन और परियोजना के लिए ऊपर JAR फ़ाइलों की सूची जोड़ें।
चरण 3:
फीचर फाइल्स और स्टेप डेफिनिशन फाइल्स बनाने से पहले, हमें एक्लिप्स में एक नेचुरल प्लगइन इंस्टॉल करना होगा। इसे कॉपी और पेस्ट करके किया जा सकता है यूआरएल पर सहायता -> नया सॉफ्टवेयर स्थापित करें -> URL
पर क्लिक करें अगला बटन ग्रहण में प्लगइन स्थापित करने के लिए।
फ़ीचर फ़ाइल बनाना
प्रोजेक्ट संरचना में फ़ीचर फ़ाइल्स और स्टेप डेफ़िनेशन फ़ाइल्स के लिए अलग फ़ोल्डर बनाएँ। स्टेप डेफिनिशन फाइल्स में जावा कोडिंग लाइन्स शामिल हैं जबकि फीचर फाइल में गेरकिन लैंग्वेज के रूप में अंग्रेजी स्टेटमेंट्स हैं।
- प्रोजेक्ट पर राइट क्लिक करके फीचर फाइल स्टोर करने के लिए एक अलग फोल्डर बनाएं -> नया -> पैकेज ।
- फ़ीचर फ़ाइल को प्रोजेक्ट / पैकेज -> पर राइट क्लिक पर नेविगेट करके बनाया जा सकता है नई -> फ़ाइल ।
- सुविधा फ़ाइल के लिए एक नाम प्रदान करें। फ़ीचर फ़ाइल का विस्तार एक्सटेंशन द्वारा किया जाना चाहिए
- परियोजना संरचना नीचे की संरचना की तरह दिखनी चाहिए।
स्टेप डेफिनिशन फाइल बनाना
फ़ीचर फ़ाइल के प्रत्येक चरण को संबंधित चरण परिभाषा में मैप किया जाना चाहिए। Cucumber Gherkin फ़ाइल पर प्रयुक्त टैग को @Given, @When और @Then टैग का उपयोग करके इसकी चरण परिभाषा में मैप किया जाना चाहिए।
निम्नलिखित चरण परिभाषा फ़ाइल का सिंटैक्स है:
वाक्य - विन्यास:
@ TagName ('^ स्टेप नेम $')
सार्वजनिक शून्य विधि नाम ()
{{
विधि परिभाषा
}
iPhone के लिए सबसे अच्छा सेल फोन स्पाइवेयर
चरण नामों को प्रतीक कैरेट (^) के साथ उपसर्ग करना चाहिए और प्रतीक ($) के साथ प्रत्यय होना चाहिए। विधि का नाम कोई भी मान्य नाम हो सकता है जो जावा कोडिंग मानकों के अनुसार स्वीकार्य हो। विधि परिभाषा में जावा या परीक्षक की पसंद की किसी अन्य प्रोग्रामिंग भाषा में कोडिंग स्टेटमेंट शामिल हैं।
फ़ीचर फ़ाइल और स्टेप डेफ़िनिशन फ़ाइल उदाहरण
फीचर फाइल और स्टेप डेफिनिशन फाइल बनाने के लिए, निम्नलिखित परिदृश्य का उपयोग किया जा सकता है:
परिदृश्य:
- परीक्षण के तहत एक आवेदन का लॉगिन पृष्ठ खोलें।
- उपयोगकर्ता नाम दर्ज करें
- पासवर्ड दर्ज करे
- लॉगइन बटन पर क्लिक करें।
- सत्यापित करें कि उपयोगकर्ता लॉगिन सफल है या नहीं।
फ़ीचर फ़ाइल:
उपरोक्त परिदृश्य को फीचर फाइल के रूप में नीचे लिखा जा सकता है:
फ़ीचर: परीक्षण के तहत एक आवेदन में लॉगिन करें।
परिदृश्य: आवेदन में लॉगिन करें।
दिया हुआ Chrome ब्राउज़र खोलें और एप्लिकेशन लॉन्च करें।
कब उपयोगकर्ता उपयोगकर्ता नाम फ़ील्ड पर उपयोगकर्ता नाम दर्ज करता है।
तथा उपयोगकर्ता पासवर्ड फ़ील्ड में एक पासवर्ड दर्ज करता है।
कब लॉगिन बटन पर उपयोगकर्ता क्लिक करता है।
चरण परिभाषा फ़ाइल:
उपरोक्त सुविधा में, किसी फ़ाइल को उसकी संबंधित चरण परिभाषा फ़ाइल में मैप किया जा सकता है जैसा कि नीचे दिखाया गया है। कृपया ध्यान दें कि फीचर फाइल और स्टेप डेफिनिशन फाइल के बीच एक लिंक प्रदान करने के लिए, एक टेस्ट रनर फाइल बनाई जानी चाहिए।
नीचे इसकी सुविधा फ़ाइल के अनुसार चरण परिभाषा फ़ाइल का प्रतिनिधित्व है।
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
TestRunner वर्ग का उपयोग फीचर फाइल और स्टेप डेफिनिशन फाइल के बीच लिंक प्रदान करने के लिए किया जाता है। नीचे TestRunner वर्ग कैसा दिखता है इसका नमूना प्रतिनिधित्व है। एक TestRunner वर्ग आम तौर पर एक खाली वर्ग होता है जिसमें कोई वर्ग परिभाषा नहीं होती है।
Package com.sample.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 { }
हमें फीचर फाइल और स्टेप डेफिनिशन फाइल के निष्पादन के लिए TestRunner क्लास फाइल को चलाने की आवश्यकता है।
उदाहरण
नीचे विभिन्न परिदृश्यों की सुविधा फ़ाइल प्रतिनिधित्व है।
उदाहरण 1:
यह सत्यापित करने के लिए कि लॉगिन पृष्ठ पर उपयोगकर्ता नाम और पासवर्ड उपलब्ध हैं:
फ़ीचर: लॉगिन पृष्ठ पर उपयोगकर्ता नाम और पासवर्ड फ़ील्ड के प्रदर्शन को सत्यापित करें।
परिदृश्य: उपयोगकर्ता नाम और पासवर्ड फ़ील्ड के प्रदर्शन को सत्यापित करने के लिए।
दिया हुआ उपयोगकर्ता फ़ायरफ़ॉक्स ब्राउज़र खोलता है और एप्लिकेशन अंडर टेस्ट के लिए नेविगेट करता है।
कब उपयोगकर्ता लॉगिन पृष्ठ पर नेविगेट करता है।
फिर लॉगिन पेज पर उपयोगकर्ता नाम फ़ील्ड के प्रदर्शन को सत्यापित करें।
तथा लॉगिन पृष्ठ पर पासवर्ड फ़ील्ड के प्रदर्शन को सत्यापित करें।
उदाहरण # 2:
नीचे ककड़ी गेरकिन में परिदृश्य रूपरेखा कीवर्ड के लिए उदाहरण दिया गया है:
फ़ीचर: जाँचें कि लॉगिन परीक्षण डेटा के कई सेटों के लिए सफल है या नहीं।
परिदृश्य की रूपरेखा: यह सत्यापित करने के लिए कि परीक्षण डेटा के कई सेटों के लिए लॉगिन सफल है या नहीं।
दिया हुआ Chrome ब्राउज़र खोलें और एप्लिकेशन लॉन्च करें।
कब उपयोगकर्ता उपयोगकर्ता नाम फ़ील्ड में प्रवेश करता है।
तथा उपयोगकर्ता पासवर्ड फ़ील्ड पर प्रवेश करता है।
कब लॉगिन बटन पर उपयोगकर्ता क्लिक करता है।
उदाहरण:
| उपयोगकर्ता नाम | पासवर्ड |
| उपयोगकर्ता 1 | पासवर्ड 1 |
| उपयोगकर्ता 2 | पासवर्ड 2 |
निष्कर्ष
- BDD सरल सादे पाठ प्रतिनिधित्व में एक आवेदन की कार्यक्षमता को समझने के लिए एक पद्धति है।
- ककड़ी एक उपकरण है जो किसी एप्लिकेशन की स्वीकृति परीक्षणों को लिखने के लिए व्यवहार प्रेरित विकास का उपयोग करता है। इसका उपयोग विभिन्न परियोजना हितधारकों के बीच संचार की खाई को पाटने के लिए किया जाता है।
- खीरे का मुख्य उपयोग गैर-तकनीकी उपयोगकर्ताओं द्वारा फीचर फ़ाइलों के उपयोग को समझने के लिए इसकी सादगी में निहित है।
घेरकिन भाषा का उपयोग करके इस ककड़ी उपकरण को आजमाने में देर नहीं की।
अनुशंसित पाठ
- Geb Tutorial - Geb टूल का उपयोग करके ब्राउज़र ऑटोमेशन परीक्षण
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- ककड़ी उपकरण और सेलेनियम का उपयोग करके स्वचालन परीक्षण - सेलेनियम ट्यूटोरियल # 30
- ऑटोमेशन टेस्टिंग क्या है (टेस्ट ऑटोमेशन शुरू करने के लिए अंतिम गाइड)
- स्पॉक ट्यूटोरियल: स्पॉक एंड ग्रूवी के साथ परीक्षण
- सर्वश्रेष्ठ सॉफ्टवेयर परीक्षण उपकरण 2021 (क्यूए टेस्ट स्वचालन उपकरण)
- विनाशकारी परीक्षण और गैर विनाशकारी परीक्षण ट्यूटोरियल
- कार्यात्मक परीक्षण बनाम गैर-कार्यात्मक परीक्षण