cucumber
घेरकिन सिंटेक्स
खोज…
परिचय
Gherkin टेस्ट स्वचालन और परीक्षण प्रलेखन के लिए एक व्यावसायिक पठनीय भाषा है। यह ककड़ी द्वारा समझा जाता है और एक साथ व्यवहार प्रेरित विकास उपकरण के रूप में मौजूद है।
वाक्य - विन्यास
- फ़ीचर: यह कीवर्ड दर्शाता है कि इस प्रकार का मूल विवरण या परीक्षण या प्रलेखित फीचर का नाम है।
- बैकग्राउंड: यह कीवर्ड उन चरणों को दर्शाता है जो फीचर में प्रत्येक परिदृश्य से पहले चलाए जाएंगे।
- परिदृश्य: यह कीवर्ड विशेषता का परीक्षण करने वाले किसी विशेष परिदृश्य के नाम या मूल विवरण का प्रतिनिधित्व करता है।
- परिदृश्य रूपरेखा: यह संकेत दर्शाता है कि कोण एन ब्रैकेट में लिपटे कॉलम नाम से स्पष्ट रूप से पारित किए गए उदाहरणों में सूचीबद्ध प्रत्येक तर्क के लिए एन बार चलेगा।
- उदाहरण: यह कीवर्ड स्थिर तर्कों की सूची को नोट करता है जो एक परिदृश्य रूपरेखा में पारित हो जाएंगे।
- दिया गया: यह कीवर्ड किसी दिए गए कदम या पूर्वधारणा का प्रतिनिधित्व करता है जिसे जारी रखने से पहले मान लिया जाता है। व्यवस्था में, अधिनियम, मुखर प्रतिमान, "व्यवस्था" का प्रतिनिधित्व करता है।
- कब: यह कीवर्ड एक कदम, या उस व्यवहार का प्रतिनिधित्व करता है, जिसके खिलाफ मुखर होना है। व्यवस्था में, अधिनियम, मुखर प्रतिमान, "अधिनियम" का प्रतिनिधित्व करता है।
- तब: यह कीवर्ड एक तत्कालीन कदम या दूसरे शब्दों में, उस चरण का प्रतिनिधित्व करता है जिसमें किसी व्यवहार का परिणाम मान्य होता है। व्यवस्था में, अधिनियम, मुखर प्रतिमान, दिया "प्रतिनिधित्व" का प्रतिनिधित्व करता है।
- और: इस कीवर्ड का उपयोग ऊपर दिए गए किसी भी कीवर्ड के साथ किया जाता है। यदि आपके पास दो दिए गए कथन हैं, तो दो बार दिए गए स्पष्ट रूप से कॉल करने के बजाय, आप कह सकते हैं कि "A और B"।
मूल बातें
यह उदाहरण गेरकिन में एक ककड़ी सुविधा फ़ाइल की मूल संरचना पर जाएगा। फ़ीचर फाइलें मूल सिंटैक्स में कई कीवर्ड का उपयोग करती हैं।
मूल खोजशब्दों को देखें:
- फ़ीचर: यह कीवर्ड दर्शाता है कि इस प्रकार का मूल विवरण या परीक्षण या प्रलेखित फीचर का नाम है।
- परिदृश्य: यह कीवर्ड विशेषता का परीक्षण करने वाले किसी विशेष परिदृश्य के नाम या मूल विवरण का प्रतिनिधित्व करता है।
- इस कीवर्ड किसी दिए गए कदम, या पूर्व शर्त है कि आगे बढ़ने से पहले माना जाता है को दर्शाता है को देखते हुए। व्यवस्था में, अधिनियम, मुखर प्रतिमान, "व्यवस्था" का प्रतिनिधित्व करता है।
- जब यह कीवर्ड एक कदम, या उस व्यवहार का प्रतिनिधित्व करता है, जिसके खिलाफ मुखर होना है। व्यवस्था में, अधिनियम, मुखर प्रतिमान, "अधिनियम" का प्रतिनिधित्व करता है।
- तब यह कीवर्ड एक तत्कालीन कदम या दूसरे शब्दों में, उस चरण का प्रतिनिधित्व करता है जिसमें किसी व्यवहार का परिणाम मान्य होता है। व्यवस्था में, अधिनियम, मुखर प्रतिमान, दिया "प्रतिनिधित्व" का प्रतिनिधित्व करता है।
- और इस कीवर्ड का उपयोग ऊपर दिए गए किसी भी कीवर्ड के साथ किया जाता है। यदि आपके पास दो दिए गए कथन हैं, तो दो बार दिए गए स्पष्ट रूप से कॉल करने के बजाय, आप कह सकते हैं कि "A और B"।
- लेकिन यह कीवर्ड को देखते हुए, जब और फिर दर्शाता है कि कुछ ऐसा नहीं होना चाहिए संयोजन के रूप में प्रयोग किया जाता है। तब ए लेकिन बी नहीं।
सभी कीवर्ड एक नई लाइन पर होने चाहिए और एक नई लाइन पर पहला शब्द होना चाहिए ताकि घेरकिन पार्सर द्वारा पहचाना जा सके। फ़ीचर और परिदृश्य कीवर्ड के तुरंत बाद एक कोलन होना चाहिए, जैसा कि नीचे दिए गए उदाहरण में व्यक्त किया गया है। दिया, जब, तब, और एक बृहदान्त्र की आवश्यकता नहीं है।
कीवर्ड के अलावा, आप विवरण और टिप्पणियां लिख सकते हैं। कीवर्ड के बाद वर्णन होते हैं लेकिन उसी लाइन पर, जहां कीवर्ड के नीचे लाइनों पर टिप्पणियां होती हैं। फ़ीचर टिप्पणियां लिखते समय, यह स्पष्ट नियमों को प्रदान करता है जो किनारों और शर्तों को स्पष्ट करते हैं जो व्यवहार के विभिन्न परिणामों को जन्म देते हैं।
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with valid credentials
Then the user should be logged in
पैरामीटरकृत चरण
गेरकिन लिखते समय, ऐसा समय हो सकता है जिसमें आप परीक्षण योजनाओं को लागू करने वाले इंजीनियर द्वारा पुन: प्रयोज्यता के लिए अपने कदमों का मानकीकरण करना चाहते हैं। कदम नियमित अभिव्यक्ति कैप्चरिंग समूहों के माध्यम से पैरामीटर प्राप्त करते हैं। ( इंजीनियरिंग नोट: यदि आपके पास अपने नियमित अभिव्यक्ति में प्रत्येक कैप्चरिंग समूह के लिए मेलिंग पैरामीटर नहीं हैं, तो आप "CucumberException: Arity mismatch" को फेंकने की उम्मीद कर सकते हैं) नीचे दिए गए उदाहरण में, हमने दोहरे उद्धरण चिह्नों में लपेटने का फैसला किया है, साथ ही साथ पूर्णांक को तर्क के रूप में स्वीकार करते हैं।
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
Given the user is on the login page
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
Given the user is on the login page
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
Given the user is on the login page
When the user fails to log in 3 times
Then the user should be locked out of their account
फ़ीचर बैकग्राउंड
जैसा कि आपने ऊपर के उदाहरण में देखा होगा, हम एक ही चरण को कई बार लिख रहे हैं:
Given the user is on the login page
यह असाधारण रूप से थकाऊ हो सकता है, खासकर अगर हमारे पास एक से अधिक दिए गए कदम हैं जिनका पुन: उपयोग किया जाता है। घेरकिन इसके लिए एक समाधान प्रदान करता है: हमें एक और कीवर्ड काम करने के लिए देता है: पृष्ठभूमि :।
बैकग्राउंड कीवर्ड फ़ीचर में हर परिदृश्य से पहले उसके नीचे घोषित चरणों को चलाने का कार्य करता है। सुनिश्चित करें कि जब तक आप सकारात्मक न हों, तब तक बैकग्राउंड स्टेप को जोड़ना हर परिदृश्य के लिए आवश्यक है। अन्य खोजशब्दों की तरह, पृष्ठभूमि का वर्णन या नाम होता है और उसके नीचे सूचीबद्ध टिप्पणियाँ हो सकती हैं। फ़ीचर और परिदृश्य की तरह, पृष्ठभूमि को एक बृहदान्त्र द्वारा आगे बढ़ना चाहिए।
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the user fails to log in 3 times
Then the user should be locked out of their account
परिदृश्य की रूपरेखा
कुछ मामलों में आप तर्कों को प्रतिस्थापित करते हुए एक ही परिदृश्य को खत्म करना चाहते हैं। इस स्थिति में, घेरकिन इस स्थिति को समायोजित करने के लिए कई नए कीवर्ड प्रदान करता है, परिदृश्य रूपरेखा: और उदाहरण :। परिदृश्य आउटलाइन कीवर्ड ककड़ी को बताता है कि एक सूची से तर्कों को प्रतिस्थापित करने के लिए परिदृश्य कई बार चलने वाला है। उदाहरण स्पष्ट रूप से सूचीबद्ध होने से पहले उदाहरण कीवर्ड को कहा जाता है। परिदृश्य रूपरेखा के लिए तर्क को कोष्ठक में लपेटा जाना चाहिए। नीचे दिए गए उदाहरण में, ध्यान दें कि एंगल्ड कोष्ठक में लिपटे हुए तर्क नाम उदाहरणों के अंतर्गत सूचीबद्ध कॉलम नामों के अनुरूप हैं। प्रत्येक स्तंभ को पहली पंक्ति पर स्तंभ नामों के साथ ऊर्ध्वाधर सलाखों से अलग किया जाता है।
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
टैग
दस्तावेज़ीकरण के प्रयोजनों के लिए, आप श्रेणियों द्वारा परीक्षण योजनाओं या परिदृश्यों को फ़िल्टर करना चाह सकते हैं। डेवलपर्स उन्हीं श्रेणियों के आधार पर परीक्षण चलाना चाह सकते हैं। Gherkin आपको टैग के उपयोगकर्ता के माध्यम से विशेषताओं के साथ-साथ व्यक्तिगत परिदृश्यों को वर्गीकृत करने की अनुमति देता है। नीचे दिए गए उदाहरण में, ऊपर दिए गए फ़ीचर कीवर्ड को टैग करें "@Automation"। Gherkin इसे "@" प्रतीक के उपयोगकर्ता द्वारा टैग के रूप में पहचानता है। इस उदाहरण में, इंजीनियर यह स्पष्ट करना चाहता है कि इन परीक्षणों का उपयोग स्वचालन के लिए किया जाता है, जहां प्रत्येक परीक्षण स्वचालित रूप से सक्षम नहीं होता है, कुछ परीक्षण मैनुअल क्यूए द्वारा किए जाने चाहिए।
साथ ही नोटिस करें कि टैग @ प्रॉडक्शन को लैंडस्केप टेस्टिंग यूजर लॉक आउट में जोड़ा गया है। इस उदाहरण में, यह इसलिए है क्योंकि यह परिदृश्य केवल अनुप्रयोग के उत्पादन वातावरण में सक्रिय है। विकास के दौरान डेवलपर्स अपने सैंडबॉक्स खातों को लॉक नहीं करना चाहते हैं। यह टैग उन्हें लागू करने की अनुमति देता है कि यह परीक्षण केवल उत्पादन पर्यावरण के खिलाफ चलाया जाएगा।
अन्त में, परिदृश्य की रूपरेखा @ टैगिंग है। इस उदाहरण के प्रयोजनों के लिए, इसका कारण यह है कि उपयोग किए जा रहे खाते खातों का मंचन कर रहे हैं और अन्य वातावरणों में काम नहीं करेंगे। @ प्रॉडक्शन टैग की तरह, यह सुनिश्चित करता है कि ये परीक्षण केवल स्टेजिंग वातावरण में चलाए जाएंगे।
ये केवल कुछ उदाहरण हैं कि आप कहां, कैसे और क्यों टैग का उपयोग कर सकते हैं। अंतत: ये टैग आपके और डेवलपर्स के लिए मायने रखने वाले हैं और कुछ भी हो सकता है और इसका उपयोग आप वैसे भी कर सकते हैं जो आपको फिट दिखाई दे।
@Automation
Feature: Product Login
As a user, I would like to be able to use my credentials to successfully
login.
Rules:
- The user must have a valid username
- The user must have a valid password
- The user must have an active subscription
- User is locked out after 3 invalid attempts
- User will get a generic error message following
login attempt with invalid credentials
Background: The user starts out on the login page
Given the user is on the login page
Scenario: The user successfully logs in with valid credentials
This scenario tests that a user is able to successfully login
provided they enter a valid username, valid password, and
currently have an active subscription on their account.
When the user signs in with "valid" credentials
Then the user should be logged in
Scenario: The user attempts to log in with invalid credentials
This scenario tests that a user is not able to log in when
they enter invalid credentials
When the user signs in with "invalid" credentials
Then the user should be logged in
@Production
Scenario: The user is locked out after too many failed attempts
This scenario validates that the user is locked out
of their account after failing three consecutive
attempts to log in
When the fails to log in 3 times
Then the user should be locked out of their account
@Staging
Scenario Outline: The user successfully logs in with their account
This scenario outlines tests in which various users attempt
to sign in successfully
When the user enters their <username>
And the user enters their <password>
Then the user should be successfully logged on
Examples:
| username | password |
| frank | 1234 |
| jack | 4321 |
घेरकिन टिप्स
- प्रत्येक परिदृश्य एक व्यवहार का परीक्षण करता है
- परिदृश्य घोषित तरीके से लिखे गए हैं
- परिदृश्य के अंदर आकस्मिक विवरण से बचें
- जाहिर है
- कंजंक्टिव स्टेप्स से बचें
- अपने परिदृश्यों को छोटा रखें
- एक ही सुविधा में कई परिदृश्यों के लिए नहीं है
- वर्णनात्मक परिदृश्य नामों का उपयोग करें
- केवल एक ही कदम है
- तब चरणों में "चाहिए" का प्रयोग करें