automation testing using cucumber tool
पिछले सेलेनियम ट्यूटोरियल में, हमने आपको पेश किया सेलेनियम ग्रिड जो है सेवा मेरे वितरित परीक्षण निष्पादन पर्यावरण एक परीक्षण पास के निष्पादन में तेजी लाने के लिए ।
अब इस व्यापक सेलेनियम प्रशिक्षण श्रृंखला के अंत में, हम उन्नत सीख रहे हैं सेलेनियम परीक्षण और संबंधित अवधारणाएँ।
इस और अगले ट्यूटोरियल में, हम आपका परिचय देंगे ककड़ी - ए व्यवहार चालित विकास (BDD) ढांचा जिसे स्वीकृति परीक्षण करने के लिए सेलेनियम के साथ प्रयोग किया जाता है।
आप क्या सीखेंगे:
ककड़ी परिचय
एक ककड़ी व्यवहार प्रेरित विकास (BDD) ढांचे पर आधारित एक उपकरण है जिसका उपयोग वेब अनुप्रयोग के लिए स्वीकृति परीक्षण लिखने के लिए किया जाता है। यह व्यावसायिक विश्लेषकों, डेवलपर्स, परीक्षकों, आदि को आसानी से पठनीय और समझने योग्य प्रारूप (जैसे सादे अंग्रेजी) में कार्यात्मक सत्यापन के स्वचालन की अनुमति देता है।
ककड़ी फीचर फाइलें सभी के लिए एक अच्छे दस्तावेज के रूप में काम कर सकती हैं। जेबीहेव जैसे कई अन्य उपकरण भी हैं जो बीडीडी ढांचे का समर्थन करते हैं। प्रारंभ में, ककड़ी को रूबी में लागू किया गया था और फिर जावा ढांचे में विस्तारित किया गया था। दोनों उपकरण देशी JUnit का समर्थन करते हैं।
व्यवहार प्रेरित विकास टेस्ट ड्रिवेन डेवलपमेंट का एक विस्तार है और इसका उपयोग कोड के विशेष टुकड़े के परीक्षण के बजाय सिस्टम का परीक्षण करने के लिए किया जाता है। हम BDD परीक्षण लिखने के लिए अधिक BDD और शैली पर चर्चा करेंगे।
खीरे का उपयोग सेलेनियम, वतिर, और कैपिबारा आदि के साथ किया जा सकता है। ककड़ी कई अन्य भाषाओं जैसे पर्ल, पीएचपी, पायथन, नेट आदि का समर्थन करता है। इस ट्यूटोरियल में, हम एक भाषा के रूप में जावा के साथ ककड़ी पर ध्यान केंद्रित करेंगे।
ककड़ी मूल बातें
खीरे को समझने के लिए, हमें ककड़ी की सभी विशेषताओं और इसके उपयोग को जानना होगा।
एसएएस प्रोग्रामिंग साक्षात्कार सवाल और जवाब
# 1) फ़ीचर फाइलें:
फ़ीचर फाइल्स ककड़ी का अनिवार्य हिस्सा हैं जो टेस्ट ऑटोमेशन चरणों या स्वीकृति परीक्षणों को लिखने के लिए उपयोग किया जाता है। इसका उपयोग लाइव दस्तावेज़ के रूप में किया जा सकता है। कदम आवेदन विनिर्देश हैं। सभी फ़ीचर फ़ाइलें .feature एक्सटेंशन के साथ समाप्त होती हैं।
नमूना सुविधा फ़ाइल:
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
लॉग फंक्शनलिटी सुनिश्चित करने के लिए,
मैं यह सत्यापित करने के लिए ककड़ी परीक्षण चलाना चाहता हूं कि यह काम कर रहा है
परिदृश्य : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम 'USER' और पासवर्ड 'पासवर्ड' के रूप में उपयोग करने में लॉग
फिर लॉगिन सफल होना चाहिए
परिदृश्य : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम 'USER1' और पासवर्ड 'PASSWORD1' के रूप में उपयोग करने में लॉग
फिर त्रुटि संदेश फेंक दिया जाना चाहिए
# 2) फ़ीचर:
टी उनकी उच्च-स्तरीय व्यावसायिक कार्यक्षमता (पिछले उदाहरण का संदर्भ लें) और परीक्षण के तहत अनुप्रयोग के उद्देश्य के बारे में जानकारी देता है। पहले फ़ीचर स्टेप को पढ़कर हर कोई फीचर फ़ाइल के इरादे को समझने में सक्षम होना चाहिए। यह भाग मूल रूप से संक्षिप्त रखा गया है।
# 3) परिदृश्य:
मूल रूप से, एक परिदृश्य एक विशेष कार्यक्षमता का प्रतिनिधित्व करता है जो परीक्षण के अधीन है। परिदृश्य को देखकर उपयोगकर्ता को परिदृश्य के पीछे के इरादे को समझने में सक्षम होना चाहिए और परीक्षण क्या है। प्रत्येक परिदृश्य को दिए गए, कब और फिर प्रारूप का पालन करना चाहिए। इस भाषा को 'घेरकिन' कहा जाता है।
- दिया हुआ: जैसा कि ऊपर उल्लेख किया गया है, पूर्व-शर्तें निर्दिष्ट हैं। यह मूल रूप से एक ज्ञात राज्य है।
- कब : इसका उपयोग तब किया जाता है जब कुछ कार्रवाई की जानी है। जैसा कि ऊपर उदाहरण में, हमने देखा है कि जब उपयोगकर्ता उपयोगकर्ता नाम और पासवर्ड का उपयोग करके लॉग इन करने की कोशिश करता है, तो यह एक कार्रवाई बन जाती है ।
- फिर: अपेक्षित परिणाम या परिणाम यहां रखा जाना चाहिए। उदाहरण के लिए: सत्यापित करें कि लॉगिन सफल, सफल पृष्ठ नेविगेशन है।
- पृष्ठभूमि: जब भी प्रत्येक परिदृश्य में प्रदर्शन के लिए किसी भी कदम की आवश्यकता होती है तो उन चरणों को पृष्ठभूमि में रखा जाना चाहिए। उदाहरण के लिए: यदि उपयोगकर्ता को प्रत्येक परिदृश्य से पहले डेटाबेस को साफ़ करने की आवश्यकता होती है तो उन चरणों को एक पृष्ठभूमि में रखा जा सकता है।
- तथा : और दो या दो से अधिक प्रकार की क्रियाओं को संयोजित करने के लिए उपयोग किया जाता है।
उदाहरण:
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
परिदृश्य : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम 'USER' के रूप में उपयोगकर्ता नाम का उपयोग करके लॉग करता है
तथा पासवर्ड 'पासवर्ड' के रूप में
फिर लॉगिन सफल होना चाहिए
तथा होम पेज प्रदर्शित किया जाना चाहिए
अनुभवी pdf के लिए sql साक्षात्कार प्रश्न और उत्तर
पृष्ठभूमि का उदाहरण:
पृष्ठभूमि:
दिया हुआ उपयोगकर्ता डेटाबेस व्यवस्थापक के रूप में लॉग इन किया
तथा सभी कबाड़ मूल्यों को मंजूरी दे दी है
# 4) परिदृश्य रूपरेखा:
परिदृश्य की रूपरेखा का उपयोग तब किया जाता है जब एक ही परीक्षण को अलग-अलग डेटा सेट के साथ किया जाता है। एक ही उदाहरण लेते हैं। हमें उपयोगकर्ता नाम और पासवर्ड के कई अलग-अलग सेटों के साथ लॉगिन कार्यक्षमता का परीक्षण करना होगा।
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
लॉग फंक्शनलिटी सुनिश्चित करने के लिए,
मैं यह सत्यापित करने के लिए ककड़ी परीक्षण चलाना चाहता हूं कि यह काम कर रहा है
परिदृश्य की रूपरेखा : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETESTINGHELP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम के रूप में उपयोग करने में लॉग इन करता है< उपयोगकर्ता नाम > और पासवर्ड< पारण शब्द >
फिर लॉगिन सफल होना चाहिए
उदाहरण:
| उपयोगकर्ता नाम | पासवर्ड |
| टॉम | पासवर्ड 1 |
| हैरी | पासवर्ड 2 |
| जेरी | पासवर्ड 3 |
ध्यान दें:
- जैसा कि ऊपर के उदाहरण में दिखाया गया है, कॉलम के नाम एक पैरामीटर के रूप में दिए गए हैं कब बयान।
- परिदृश्य की जगह, आपको परिदृश्य की रूपरेखा का उपयोग करना होगा।
- सारणी प्रारूप में विभिन्न तर्कों को पारित करने के लिए उदाहरणों का उपयोग किया जाता है। दो अलग-अलग कॉलम को अलग करने के लिए वर्टिकल पाइप का उपयोग किया जाता है। एक उदाहरण में कई अलग-अलग कॉलम हो सकते हैं।
# 5) टैग:
डिफ़ॉल्ट रूप से ककड़ी सभी फीचर फाइलों में सभी परिदृश्यों को चलाता है। वास्तविक समय की परियोजनाओं में, सैकड़ों फीचर फ़ाइल हो सकती हैं, जिन्हें हर समय चलाने की आवश्यकता नहीं होती है।
उदाहरण के लिए : स्मोक टेस्ट से संबंधित फ़ीचर फाइल्स को हर समय चलाने की ज़रूरत नहीं है। इसलिए यदि आप प्रत्येक फीचर फाइल में एक स्मोकलेस के रूप में एक टैग का उल्लेख करते हैं जो कि स्मोक टेस्ट से संबंधित है और @SmokeTest टैग के साथ ककड़ी टेस्ट चलाता है। ककड़ी केवल उन फीचर फाइलों को चलाएगी जो दिए गए टैग के लिए विशिष्ट हैं। कृपया नीचे दिए गए उदाहरण का अनुसरण करें। आप एक फ़ीचर फ़ाइल में कई टैग निर्दिष्ट कर सकते हैं।
एकल टैग के उपयोग का उदाहरण:
@धुआं परीक्षण
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
लॉग फंक्शनलिटी सुनिश्चित करने के लिए,
मैं यह सत्यापित करने के लिए ककड़ी परीक्षण चलाना चाहता हूं कि यह काम कर रहा है
परिदृश्य की रूपरेखा : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETESTINGHELP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम के रूप में उपयोग करने में लॉग इन करता है< उपयोगकर्ता नाम > और पासवर्ड< पारण शब्द >
फिर लॉगिन सफल होना चाहिए
उदाहरण:
| उपयोगकर्ता नाम | पासवर्ड |
| टॉम | पासवर्ड 1 |
| हैरी | पासवर्ड 2 |
| जेरी | पासवर्ड 3 |
कई टैग के उपयोग का उदाहरण:
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है कि एक ही फीचर फाइल का उपयोग स्मोक टेस्ट परिदृश्यों के साथ-साथ लॉगिन परीक्षण परिदृश्य के लिए भी किया जा सकता है। जब आप अपनी स्क्रिप्ट को स्मोक टेस्ट के लिए चलाना चाहते हैं तो @SmokeTest का उपयोग करें। इसी तरह जब आप चाहते हैं कि आपकी स्क्रिप्ट लॉगिन टेस्ट उपयोग @LoginTest टैग के लिए चले।
किसी भी नंबर को फ़ीचर फ़ाइल के साथ-साथ परिदृश्य के लिए भी उल्लेख किया जा सकता है।
@ सोकमटेस्ट @ लोजिनटेस्ट
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
लॉग फंक्शनलिटी सुनिश्चित करने के लिए,
मैं यह सत्यापित करने के लिए ककड़ी परीक्षण चलाना चाहता हूं कि यह काम कर रहा है
परिदृश्य की रूपरेखा : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम और पासवर्ड के रूप में उपयोगकर्ता नाम का उपयोग करता है
फिर लॉगिन सफल होना चाहिए
उदाहरण:
| उपयोगकर्ता नाम | पासवर्ड |
| टॉम | पासवर्ड 1 |
| हैरी | पासवर्ड 2 |
| जेरी | पासवर्ड 3 |
इसी तरह, आप किसी विशेषता फ़ाइल में विशिष्ट परिदृश्य को चलाने के लिए टैग निर्दिष्ट कर सकते हैं। विशिष्ट परिदृश्य को चलाने के लिए कृपया नीचे दिए गए उदाहरण की जाँच करें।
फ़ीचर : लॉगिन फंक्शनलिटी फीचर
लॉग फंक्शनलिटी सुनिश्चित करने के लिए,
मैं यह सत्यापित करने के लिए ककड़ी परीक्षण चलाना चाहता हूं कि यह काम कर रहा है
@positiveScenario
परिदृश्य : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम 'USER' और पासवर्ड 'पासवर्ड' के रूप में उपयोग करने में लॉग
फिर लॉगिन सफल होना चाहिए
@negaviveScenario
परिदृश्य : लॉगिन कार्यक्षमता
दिया हुआ उपयोगकर्ता SOFTWARETETHHP.COM पर नेविगेट करता है
कब उपयोगकर्ता नाम 'USER1' और पासवर्ड 'PASSWORD1' के रूप में उपयोग करने में लॉग
फिर त्रुटि संदेश फेंकना चाहिए
# 6) जनीत धावक:
विशिष्ट सुविधा फ़ाइल चलाने के लिए ककड़ी मानक JUnit धावक का उपयोग करता है और @Cucumber में टैग निर्दिष्ट करता है। विकल्प। कॉमा को अलग से उपयोग करके कई टैग दिए जा सकते हैं। यहां आप रिपोर्ट का पथ और रिपोर्ट का प्रकार निर्दिष्ट कर सकते हैं जिसे आप उत्पन्न करना चाहते हैं।
जूनित धावक का उदाहरण:
import cucumber.api.junit.Cucumber;
आयात org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (स्वरूप = {'SimpleHtmlReport: रिपोर्ट / धुआँराती')}, टैग = {'@ धुंआधार'}) सार्वजनिक वर्ग JUititRunner {} इसी तरह, आप कई टैग चलाने के लिए ककड़ी को निर्देश दे सकते हैं। नीचे उदाहरण से पता चलता है कि विभिन्न परिदृश्यों को चलाने के लिए ककड़ी में कई टैग का उपयोग कैसे करें।
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) ककड़ी रिपोर्ट:
ककड़ी अपना स्वयं का HTML प्रारूप तैयार करती है। हालांकि, जेनकिंस या बांस उपकरण का उपयोग करके बेहतर रिपोर्टिंग की जा सकती है। रिपोर्टिंग का विवरण ककड़ी के अगले विषय में शामिल किया गया है।
ककड़ी परियोजना सेटअप:
ककड़ी परियोजना की विस्तृत व्याख्या अगले ट्यूटोरियल में अलग से उपलब्ध है। कृपया प्रोजेक्ट सेटअप के बारे में अधिक जानकारी से ककड़ी ट्यूटोरियल भाग 2 देखें। याद रखें कि ककड़ी के लिए कोई अतिरिक्त सॉफ़्टवेयर इंस्टॉलेशन की आवश्यकता नहीं है।
फ़ीचर फ़ाइल का कार्यान्वयन:
हमें फीचर फ़ाइलों का परीक्षण करने के लिए जावा में इन चरणों को लागू करना होगा। एक वर्ग बनाने की जरूरत है जिसमें दिए गए, कब और फिर बयान हों। ककड़ी अपने एनोटेशन का उपयोग करती है और सभी स्टेप्स उन एनोटेशन में दिए गए हैं (दिए गए, जब, तब)। प्रत्येक वाक्यांश '^' से शुरू होता है ताकि खीरा स्टेप की शुरुआत को समझे। इसी तरह, प्रत्येक चरण '$' के साथ समाप्त होता है। उपयोगकर्ता विभिन्न परीक्षण डेटा पास करने के लिए नियमित अभिव्यक्ति का उपयोग कर सकता है। नियमित अभिव्यक्तियाँ फ़ीचर स्टेप्स से डेटा लेती हैं और स्टेप परिभाषाएँ पास करती हैं। मापदंडों का क्रम इस बात पर निर्भर करता है कि उन्हें फीचर फाइल से कैसे पास किया जाता है। कृपया प्रोजेक्ट फ़ाइल और जावा कक्षाओं के बीच प्रोजेक्ट सेटअप और मैपिंग के लिए अगला ट्यूटोरियल देखें।
आप बिन फ़ाइल कैसे खोलते हैं
उदाहरण:
उदाहरण के नीचे यह वर्णन करना है कि फ़ीचर फ़ाइलों को कैसे लागू किया जा सकता है।
इस उदाहरण में, हमने किसी सेलेनियम एपीआई का उपयोग नहीं किया है। यह सिर्फ यह दिखाना है कि ककड़ी एक स्टैंडअलोन ढांचे के रूप में कैसे काम करती है। ककड़ी के साथ सेलेनियम एकीकरण के लिए अगले ट्यूटोरियल का पालन करें।
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
जब आप ककड़ी धावक वर्ग निष्पादित करते हैं, तो ककड़ी फीचर फ़ाइल चरण पढ़ना शुरू कर देगी। उदाहरण के लिए, जब आप @smokeTest निष्पादित करते हैं, तो ककड़ी पढ़ेगी फ़ीचर कदम और दिया हुआ का एक बयान परिदृश्य । जैसे ही ककड़ी बयान को देखते हैं, वही दिया हुआ आपके जावा फाइलों के लिए विवरण खोजा जाएगा। यदि जावा फ़ाइल में एक ही चरण पाया जाता है तो खीरा उसी चरण के लिए निर्दिष्ट फ़ंक्शन को निष्पादित करता है अन्यथा खीरा चरण को छोड़ देगा।
निष्कर्ष
इस ट्यूटोरियल में, हमने ककड़ी टूल की विशेषताओं और वास्तविक समय में इसके उपयोग को कवर किया है।
ककड़ी कई परियोजनाओं के लिए सबसे पसंदीदा उपकरण है क्योंकि यह समझना, पढ़ना आसान है और इसमें व्यावसायिक कार्यक्षमता शामिल है।
अगले अध्याय में , हम कवर करेंगे कि ककड़ी - जावा परियोजना कैसे स्थापित करें और ककड़ी के साथ सेलेनियम वेबड्राइवर को कैसे एकीकृत करें।
अनुशंसित पाठ
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- 30+ सर्वश्रेष्ठ सेलेनियम ट्यूटोरियल: वास्तविक उदाहरणों के साथ सेलेनियम सीखें
- सेलेनियम ग्रिड ट्यूटोरियल: सेटअप और क्रॉस ब्राउज़र परीक्षण का उदाहरण
- सेलेनियम के साथ एकीकरण और कार्यात्मक परीक्षण के लिए स्पॉक
- सेलेनियम के लिए मावेन बिल्ड ऑटोमेशन टूल और मावेन प्रोजेक्ट सेटअप का उपयोग - सेलेनियम ट्यूटोरियल # 24
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- WAVE पहुँच क्षमता परीक्षण उपकरण ट्यूटोरियल