गेरकिन भाषा: प्रारूप, वाक्यविन्यास और गेरकिन परीक्षण Cucumber
गेरकिन भाषा क्या है?
खीरा एक व्यवसाय पठनीय भाषा है जो आपको कार्यान्वयन के विवरण में जाए बिना व्यवसाय व्यवहार का वर्णन करने में मदद करती है। यह परीक्षणों को परिभाषित करने के लिए एक डोमेन विशिष्ट भाषा है Cucumber विनिर्देशों के लिए प्रारूप। यह उपयोग के मामलों का वर्णन करने के लिए सरल भाषा का उपयोग करता है और उपयोगकर्ताओं को व्यवहार परीक्षणों से तर्क विवरण हटाने की अनुमति देता है।
गेरकिन भाषा में पाठ आपके स्वचालित परीक्षणों के दस्तावेज़ीकरण और ढांचे के रूप में कार्य करता है। गेरकिन प्रारूप ट्रीटॉप व्याकरण पर आधारित है जो 37+ भाषाओं में मौजूद है। इसलिए आप अपने गेरकिन को 37+ बोली जाने वाली भाषाओं में लिख सकते हैं।
यह स्क्रिप्ट दो प्राथमिक उद्देश्यों की पूर्ति करती है:
- उपयोगकर्ता परिदृश्यों का दस्तावेजीकरण करें
- स्वचालित परीक्षण (BDD) लिखना
खीरा क्यों?
खीरा की आवश्यकता को निम्नलिखित चित्रों द्वारा आसानी से समझाया जा सकता है
गेरकिन से पहले
गेरकिन के बाद
घेरकिन सिंटेक्स
Gherkin YAML की तरह ही लाइन-ओरिएंटेड भाषा है और Pythonप्रत्येक पंक्ति को स्टेप कहा जाता है और कीवर्ड से शुरू होती है तथा टर्मिनल का अंत स्टॉप से होता है। इंडेंटेशन के लिए टैब या स्पेस का उपयोग किया जाता है।
इस स्क्रिप्ट में, आप जहाँ चाहें वहाँ टिप्पणी जोड़ सकते हैं, लेकिन इसकी शुरुआत # चिह्न से होनी चाहिए। यह प्रत्येक पंक्ति को Ghrekin के कीवर्ड जैसे कि दिए गए, जब, तब, आदि को हटाने के बाद पढ़ता है।
ठेठ गेरकिन कदम इस तरह दिखते हैं
गेरकिन स्क्रिप्ट: कारण और प्रभाव की मानवीय अवधारणा को इनपुट/प्रक्रिया/आउटपुट की सॉफ्टवेयर अवधारणा से जोड़ती है।
घेरकिन सिंटेक्स
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
एक Gherkin दस्तावेज़ में एक एक्सटेंशन .feature होता है और एक फैंसी एक्सटेंशन के साथ बस एक परीक्षण फ़ाइल होती है। Cucumber गेरकिन दस्तावेज़ को पढ़ता है और यह सत्यापित करने के लिए एक परीक्षण निष्पादित करता है कि सॉफ्टवेयर गेरकिन सिंटैक्स के अनुसार व्यवहार करता है।
खीरा में प्रयुक्त महत्वपूर्ण शब्द
- Feature
- पृष्ठभूमि
- परिदृश्य
- यह देखते हुए
- .
- फिर
- तथा
- परंतु
- परिदृश्य रूपरेखा उदाहरण
नामकरण परंपरा का उपयोग फीचर नाम के लिए किया जाता है। हालाँकि, इसमें कोई निर्धारित नियम नहीं है Cucumber नामों के बारे में.
Feature
फ़ाइल का एक्सटेंशन .feature होना चाहिए और प्रत्येक फ़ीचर फ़ाइल में केवल एक फ़ीचर होना चाहिए। फ़ीचर कीवर्ड फ़ीचर: के साथ होगा और उसके बाद ऐड, स्पेस और फ़ीचर का नाम लिखा जाएगा।
परिदृश्य
प्रत्येक फीचर फ़ाइल में अनेक परिदृश्य हो सकते हैं, और प्रत्येक परिदृश्य परिदृश्य: से शुरू होता है, जिसके बाद परिदृश्य का नाम आता है।
पृष्ठभूमि
बैकग्राउंड कीवर्ड आपको परिदृश्य में कुछ संदर्भ जोड़ने में मदद करता है। इसमें परिदृश्य के कुछ चरण शामिल हो सकते हैं, लेकिन एकमात्र अंतर यह है कि इसे प्रत्येक परिदृश्य से पहले चलाया जाना चाहिए।
यह देखते हुए
Given कीवर्ड का उपयोग उपयोगकर्ता द्वारा सिस्टम के साथ इंटरैक्ट करने से पहले सिस्टम को एक परिचित स्थिति में लाने के लिए किया जाता है। हालाँकि, यदि Given “प्रीकंडीशन” चरण में है, तो आप Given चरणों में उपयोगकर्ता इंटरैक्शन लिखना छोड़ सकते हैं।
सिंटेक्स:
Given
Given - a test step that defines the 'context Given I am on "/."
.
जब चरण उपयोगकर्ता द्वारा निष्पादित कार्रवाई को परिभाषित करना है।
सिंटेक्स:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
फिर
'then' कीवर्ड का उपयोग यह देखने के लिए किया जाता है कि परिणाम जब चरण में कार्रवाई के बाद। हालाँकि, आप केवल ध्यान देने योग्य परिवर्तनों को ही सत्यापित कर सकते हैं।
सिंटेक्स:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
और और परंतु
आपके पास कई दिए गए 'जब' या 'तब' हो सकते हैं।
सिंटेक्स:
But
A But - additional test step which defines the 'action' 'outcome.' But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed And I write "EmailAddress" with "Tomjohn@gmail.com."
दिया गया, जब, तो, और, लेकिन परीक्षण चरण हैं। आप उन्हें एक दूसरे के स्थान पर इस्तेमाल कर सकते हैं। इंटरप्रेटर कोई त्रुटि प्रदर्शित नहीं करता है। हालाँकि, पढ़ने पर वे निश्चित रूप से कोई 'अर्थ' नहीं देंगे।
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
खीरा के उदाहरण
उदाहरण 1:
Feature: Login functionality of social networking site Facebook. Given: I am a facebook user. When: I enter username as username. And I enter the password as the password Then I should be redirected to the home page of facebook
ऊपर वर्णित परिदृश्य उपयोगकर्ता लॉगिन नामक सुविधा का है।
गेरकिन स्टेप डेफ़िनेशन फ़ाइल में लिखे गए प्रत्येक चरण का विश्लेषण करेगा। इसलिए, चरण फ़ीचर फ़ाइल में दिए गए हैं और स्टेप डेफ़िनेशन फ़ाइल से मेल खाना चाहिए।
उदाहरण 2:
Feature: User Authentication Background: Given the user is already registered to the website Scenario: Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard And the user should be presented with a success message
गेरकिन का उपयोग करने के सर्वोत्तम तरीके
- प्रत्येक परिदृश्य को अलग से क्रियान्वित किया जाना चाहिए
- हर सुविधा को एक साथ क्रियान्वित करने में सक्षम होना चाहिए
- चरणों की जानकारी स्वतंत्र रूप से दिखाई जानी चाहिए
- अपने परिदृश्यों को अपनी आवश्यकताओं से जोड़ें
- किसी आवश्यकता दस्तावेज़ में कौन से परिदृश्य शामिल किए जाने चाहिए, इसका पूरा ट्रैक रखें
- मॉड्यूलर और समझने में आसान चरण बनाएं
- अपने सभी सामान्य परिदृश्यों को संयोजित करने का प्रयास करें
खीरा के फायदे
- गेरकिन गैर-प्रोग्रामर के लिए समझने में काफी सरल है
- प्रोग्रामर इसे अपने परीक्षण शुरू करने के लिए एक बहुत ही ठोस आधार के रूप में उपयोग कर सकते हैं
- इससे उपयोगकर्ता कहानियों को समझना आसान हो जाता है
- गेरकिन स्क्रिप्ट को व्यावसायिक अधिकारियों और डेवलपर्स द्वारा आसानी से समझा जा सकता है
- गेरकिन परीक्षण व्यावसायिक आवश्यकताओं को लक्षित करता है
- कार्यात्मक विनिर्देशों का एक महत्वपूर्ण हिस्सा उपयोगकर्ता कहानियों के रूप में लिखा गया है
- छोटे गेरकिन कमांड सेट को समझने के लिए आपको विशेषज्ञ होने की आवश्यकता नहीं है
- गेरकिन परीक्षण मामले स्वीकृति परीक्षणों को सीधे स्वचालित परीक्षणों से जोड़ते हैं
- परीक्षण मामलों को लिखने की शैली से अन्य परीक्षणों में कोड का पुनः उपयोग करना आसान होता है
खीरा के नुकसान
- इसके लिए उच्च स्तर की व्यावसायिक सहभागिता और सहयोग की आवश्यकता होती है
- सभी परिदृश्यों में अच्छी तरह से काम नहीं कर सकता
- खराब तरीके से लिखे गए परीक्षण आसानी से परीक्षण-रखरखाव लागत बढ़ा सकते हैं
सारांश
- खीरा ककड़ी की विशिष्टताओं का प्रारूप है
- Gherkin YAML की तरह ही लाइन-ओरिएंटेड भाषा है और Python
- गेरकिन स्क्रिप्ट कारण और प्रभाव की मानवीय अवधारणा को इनपुट/प्रक्रिया और आउटपुट की सॉफ्टवेयर अवधारणा से जोड़ती है
- गेरकिन में फ़ीचर, पृष्ठभूमि, परिदृश्य, दिया गया, कब, फिर, और लेकिन का महत्वपूर्ण रूप से उपयोग किया जाता है
- गेरकिन में, प्रत्येक परिदृश्य को अलग से निष्पादित किया जाना चाहिए
- गेरकिन का सबसे बड़ा लाभ यह है कि यह गैर-प्रोग्रामर के लिए समझने में काफी सरल है
- गेरकिन परीक्षण सभी प्रकार के परिदृश्यों में अच्छी तरह से काम नहीं कर सकता है