Calabash Android टेस्टिंग टूल ट्यूटोरियल
⚡ स्मार्ट सारांश
Calabash यह एक ओपन-सोर्स स्वीकृति परीक्षण ढांचा है जो वास्तविक उपयोगकर्ता इंटरफ़ेस क्रियाओं को संचालित करता है। Android और iOS एप्लिकेशन, सरल अंग्रेजी का उपयोग करते हुए Cucumber रूबी स्टेप डेफिनिशन और डिवाइस-साइड टेस्ट सर्वर द्वारा समर्थित परिदृश्य।
एचएमबी क्या है? Calabash?
Calabash यह एक ओपन-सोर्स स्वीकृति है परीक्षण फ्रेमवर्क जो आपको iOS और iOS के लिए परीक्षण लिखने और निष्पादित करने की अनुमति देता है Android ऐप्स।
यह एक स्वचालित यूजर इंटरफेस फ्रेमवर्क है जो रूबी में टेस्ट लिखने की सुविधा देता है। Cucumber.
Calabash यह मोबाइल एप्लिकेशन के भीतर स्वचालित यूआई इंटरैक्शन को सक्षम करके काम करता है, जैसे बटन दबाना, टेक्स्ट इनपुट करना, प्रतिक्रियाओं को मान्य करना आदि। इसे विभिन्न ऑपरेटिंग सिस्टम पर चलने के लिए कॉन्फ़िगर किया जा सकता है। Android और iOS डिवाइस, जो वास्तविक समय प्रतिक्रिया और सत्यापन प्रदान करता है।
⚠️ संस्करण नोट: Microsoft इसने अपना योगदान समाप्त कर दिया Calabash iOS 11 के अंतिम संस्करण के बाद और Android 8 रिलीज़, और कैलाबैश-एंड्रॉइड रिपॉजिटरी अब यह प्रोजेक्ट खुद को एक मेंटेनर की तलाश में बता रहा है। नीचे दी गई जानकारी को यथावत रखा गया है, और आधुनिक विकल्पों को अंतिम खंड में शामिल किया गया है।
क्यों Calabash स्वचालन?
किसी भी चीज को स्थापित करने से पहले, यह आकलन करना सहायक होता है कि फ्रेमवर्क से क्या लाभ मिलता है और उसके रखरखाव में कितना खर्च आता है।
| फायदे | नुकसान |
| यह उत्पादकता बढ़ाने में मदद करता है। | स्वचालन परीक्षण स्क्रिप्ट लिखने के लिए दक्षता की आवश्यकता होती है। |
| बेहतर गुणवत्ता या गुणवत्ता की बढ़ी हुई पूर्वानुमेयता | परीक्षण स्क्रिप्ट को डीबग करना एक प्रमुख मुद्दा है। |
| प्रक्रियाओं या उत्पादों की बेहतर मजबूती (स्थिरता)। | प्लेबैक विधियों के मामले में परीक्षण रखरखाव महंगा है। |
| उत्पादन की स्थिरता में वृद्धि तथा श्रम लागत और व्यय में कमी | यदि परीक्षण स्क्रिप्ट अधिक स्क्रीन का परीक्षण करती है तो परीक्षण डेटा फ़ाइलों का रखरखाव कठिन होता है |
Calabash और बीडीडी
- Calabash is व्यवहार संचालित विकास (बीडीडी)यह समान है परीक्षण संचालित विकास (टीडीडी)लेकिन एपीआई के स्वरूप का वर्णन करने के लिए परीक्षण बनाने के बजाय, एप्लिकेशन के व्यवहार को निर्दिष्ट किया जाता है।
- बीडीडी एक ऐसी प्रक्रिया है जिसमें विभिन्न हितधारक मिलकर यह समझ विकसित करते हैं कि क्या बनाया जाना चाहिए।
- बीडीडी व्यवसाय स्वामी के दृष्टिकोण से सही सॉफ्टवेयर बनाने और डिजाइन करने में सहायक है।
नीचे दिया गया आरेख दर्शाता है कि कैसे एक Calabash यह सूट कई स्तरों में विभाजित है, जिसमें सबसे ऊपर व्यावसायिक उपयोग के लिए सुलभ फीचर फाइल है और सबसे नीचे डिवाइस के साथ इसका इंटरेक्शन शामिल है।
कैसे स्थापित करने के लिए Calabash
Calabash on Windows इसके लिए क्रम से चार पूर्व-आवश्यकताओं को स्थापित करना आवश्यक है। अगले चरण को शुरू करने से पहले प्रत्येक चरण को पूरी तरह से पूरा करें, क्योंकि कैलाबैश-एंड्रॉइड जेम रूबी और अन्य आवश्यक चीज़ों की जाँच करता है। Android स्थापना के दौरान SDK का उपयोग करें।
भाग I) स्थापित करें Java JDK – इस गाइड का संदर्भ लें – /इंस्टॉल-जावा.html
भाग II) रूबी डाउनलोड करें और इंस्टॉल करें।
चरण 1) रूबी को डाउनलोड करें URL https://rubyinstaller.org/downloads
चरण 2) .exe फ़ाइल खोलें और स्क्रीन पर दिए गए निर्देशों का पालन करें। इंस्टॉलेशन पूरा होने पर आपको निम्न स्क्रीन दिखाई देगी। 'Finish' पर क्लिक करें।
रूबी चालू करके कमांड प्रॉम्प्ट प्रारंभ करें Windows 10 & नीचे कमांड टाइप करें।
ruby -v
कंसोल स्थापित इंटरप्रेटर का संस्करण प्रिंट करता है, जैसा कि नीचे दिखाया गया है।
भाग III) डाउनलोड करें और इंस्टॉल करें Android
चरण 1) डाउनलोड करें Android Studio at https://developer.android.com/studio
चरण 2) exe फ़ाइल खोलें, स्क्रीन पर दिए गए निर्देशों का पालन करें और इंस्टॉलेशन पूरा करें। पूरा होने पर फ़िनिश बटन पर क्लिक करें।
भाग IV) स्थापित करें Calabash Android
चरण 1) कंसोल में gem install calabash-android टाइप करें। इंस्टॉलेशन शुरू हो जाएगा और पूरा होने में कुछ समय लगेगा।
चरण 2) इंस्टॉलेशन पूरा होने के बाद calabash-android version टाइप करें
के साथ काम करना Calabash
जेम इंस्टॉल हो जाने के बाद, अगला काम फ्रेमवर्क फोल्डर का पता लगाना और उसके साथ आने वाले ढांचे को समझना है।
“calabash-android-0.9.0” फ़ोल्डर खोलें। यह पथ C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0 पर स्थित है। फ़ोल्डर का नाम आपके द्वारा अपनी मशीन पर इंस्टॉल किए गए रूबी/कैलाबश संस्करण के साथ सिंक में बदल जाएगा।
फ़ीचर स्केलेटन फ़ोल्डर खोलें। इस बुनियादी ढांचे को देखें।
- *.feature फ़ाइल में वे परिदृश्य हैं जिन्हें हम स्वचालित करने जा रहे हैं।
- फ़ीचर फ़ाइल द्वारा उपयोग की जाने वाली विधि “step_definitions” फ़ोल्डर के अंदर *.rb फ़ाइल में लिखी गई है।
- सामान्य विधियाँ, पर्यावरण सेटअप, ऐप इंस्टॉलेशन और हुक को "सपोर्ट" फ़ोल्डर के अंदर रखा जाना चाहिए।
इस्तीफा दें और ऐप बनाएं
- Calabash-एंड्रॉइड रीसाइन *.apk
- Calabash-एंड्रॉइड बिल्ड *.apk
इस्तीफा देने से डेवलपर के हस्ताक्षर को एक डीबग कुंजी से बदल दिया जाता है ताकि परीक्षण सर्वर एप्लिकेशन को इंस्ट्रूमेंट कर सके, और बिल्ड चरण उस परीक्षण सर्वर को उत्पन्न करता है, जैसा कि नीचे कंसोल आउटपुट में दिखाया गया है।
डिवाइस को सिस्टम से जोड़ें / एमुलेटर खोलें
डिवाइस अटैच है या नहीं, इसकी जाँच करें। कमांड टाइप करें
adb devices
संलग्न उपकरणों की सूची प्रदर्शित होनी चाहिए। यदि उपकरण अनुपस्थित है, तो यूएसबी डीबगिंग और पेयरिंग चरणों का पालन करें। एडीबी कनेक्ट गाइड अधिकांश मामलों का समाधान हो जाता है।
एलिमेंट लोकेटर कैसे खोजें
- कंसोल खोलें. कमांड टाइप करें.
calabash-android console "APK Path" start_test_server_in_background
- उपरोक्त कमांड से डिवाइस पर ऐप लॉन्च करें। एलिमेंट लोकेटर खोजने के लिए निम्न कमांड का उपयोग करें।
query "*"
इससे वर्तमान स्क्रीन पर सभी एलिमेंट लोकेटर प्रदर्शित होंगे। जो टेस्टर विज़ुअल इंस्पेक्टर पसंद करते हैं, वे इसी पदानुक्रम की क्रॉस-चेक कर सकते हैं। uiautomatorviewer.
Calabash परियोजना संरचना और पूर्वनिर्धारित चरण
जेम फोल्डर को मैन्युअल रूप से कॉपी करने के बजाय, फ्रेमवर्क आपके लिए एक कार्यशील प्रोजेक्ट तैयार कर सकता है। अपने प्रोजेक्ट डायरेक्टरी के अंदर जनरेटर चलाने से मानक प्रोजेक्ट बन जाता है। Cucumber लेआउट जो हर Calabash सुइट की अपेक्षाएँ।
calabash-android gen
उत्पन्न ट्री बीडीडी सूट की तीन चिंताओं को अलग करता है:
- विशेषताएँ/ - गेरकिन परिदृश्यों में से एक। ।विशेषता प्रत्येक उपयोगकर्ता यात्रा के लिए एक फ़ाइल।
- विशेषताएं/चरण_परिभाषाएँ/ — रूबी विधियाँ जो प्रत्येक गेरकिन लाइन से मेल खाती हैं, जिसमें बंडल की गई calabash_steps.rb भी शामिल है।
- सुविधाएँ/समर्थन/ — पर्यावरण कॉन्फ़िगरेशन और वे हुक जो हर परिदृश्य के लिए एप्लिकेशन को इंस्टॉल, लॉन्च और बंद करते हैं।
साथ में दी गई calabash_steps.rb फ़ाइल दिखने में जितनी महत्वपूर्ण लगती है, उससे कहीं अधिक महत्वपूर्ण है। इसमें तैयार अंग्रेज़ी चरणों का एक बड़ा सेट शामिल है, जिससे एक शुरुआती परिदृश्य में बटन दबाए जा सकते हैं, टेक्स्ट दर्ज किया जा सकता है और दिखाई देने वाली स्ट्रिंग्स पर प्रभाव डाला जा सकता है, इससे पहले कि कोई कस्टम विधि लिखी जाए। कस्टम चरणों की आवश्यकता केवल तभी पड़ती है जब प्रक्रिया उन तैयार वाक्यांशों से आगे बढ़ जाती है।
प्रोजेक्ट स्तर की दो सेटिंग्स के बारे में पहले से जानना ज़रूरी है। स्क्रीनशॉट डिफ़ॉल्ट रूप से वर्तमान वर्किंग डायरेक्टरी में सेव होते हैं, और SCREENSHOT_PATH एनवायरनमेंट वेरिएबल उन्हें कहीं और रीडायरेक्ट करता है, जिससे साझा मशीन पर बिल्ड आर्टिफैक्ट्स व्यवस्थित रहते हैं। सिस्टम डायलॉग या किसी अन्य एप्लिकेशन के साथ इंटरैक्ट करने के लिए UIAutomator2 बैकएंड की आवश्यकता होती है, जिसे start_test_server_in_background(with_uiautomator: true) कमांड से शुरू किया जाता है।
नई स्क्रिप्ट बनाना
फ़ीचर फ़ाइल और निम्न पंक्तियाँ खोलें
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
चरण परिभाषा फ़ाइल खोलें और *.rb फ़ाइल में विधि परिभाषित करें।
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
परीक्षण परियोजना निष्पादित करें
परीक्षण प्रोजेक्ट को निष्पादित करने के लिए, नीचे दिए गए आदेश का उपयोग करें
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber यह प्रत्येक चरण के निष्पादन के साथ उसे प्रिंट करता है, और सफल होने पर परिदृश्य और चरणों का कुल योग यहाँ दिखाया जाता है।
सामान्य Calabash त्रुटियाँ और उन्हें ठीक करने के तरीके
अधिकांश प्रारंभिक विफलताएँ परीक्षण सर्वर द्वारा उपयोग किए जाने वाले पैकेजिंग और अनुमति नियमों के कारण होती हैं, न कि स्वयं परिदृश्य के कारण। नीचे दी गई तालिका में सबसे अधिक बार रिपोर्ट किए गए लक्षणों को उनके दस्तावेजित कारणों से दर्शाया गया है।
| लक्षण | संभावित कारण और समाधान |
| टेस्ट शुरू होते ही एप्लिकेशन क्रैश हो जाता है। | APK फ़ाइल में android.permission.INTERNET अनुमति मौजूद नहीं है, जिसकी आवश्यकता परीक्षण सर्वर को कमांड स्वीकार करने के लिए होती है। कृपया इस अनुमति को घोषित करें। AndroidManifest.xml को रीबिल्ड करें। |
| बटन और टेक्स्ट टैप करने पर प्रतिक्रिया नहीं दे रहे हैं। | कोई targetSdkVersion घोषित नहीं किया गया है। uses-sdk प्रविष्टि में उस SDK स्तर का उल्लेख करें जिसके लिए एप्लिकेशन बनाया गया था। |
| टेस्ट सर्वर एप्लिकेशन से कनेक्ट नहीं हो पा रहा है। | APK फ़ाइल को डीबग कुंजी के साथ रीसाइन नहीं किया गया था। रीसाइन कमांड चलाएँ, फिर चलाने से पहले दोबारा बिल्ड करें। |
| रन टाइम पर कोई डिवाइस सूचीबद्ध नहीं है | USB डीबगिंग बंद है या ड्राइवर मौजूद नहीं है। कृपया adb devices के आउटपुट में सीरियल नंबर की उपस्थिति की पुष्टि करें। |
| चरण एक अपरिभाषित चरण त्रुटि के साथ विफल हो जाते हैं | Gherkin की शब्दावली step_definitions में किसी भी रेगुलर एक्सप्रेशन से मेल नहीं खाती। सुझाए गए स्निपेट को कॉपी करें। Cucumber इसे प्रिंट करें और लागू करें। |
दो मैनिफेस्ट प्रविष्टियाँ पहली दो पंक्तियों को ठीक करती हैं। APK को रीसाइन करने से पहले इन्हें जोड़ें।
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
टाइमआउट की विफलताएँ आमतौर पर कार्यात्मक के बजाय पर्यावरणीय कारणों से होती हैं। धीमा एमुलेटर, एप्लिकेशन का अचानक शुरू होना या बैकग्राउंड सिंक, ये सभी स्क्रीन को wait_for विंडो से आगे बढ़ा सकते हैं, इसलिए किसी सही चरण को दोबारा लिखने से पहले टाइमआउट बढ़ा दें।
Is Calabash क्या अभी भी इसका रखरखाव किया जाता है? आधुनिक मोबाइल परीक्षण के विकल्प
Calabash इसका अब सक्रिय रूप से विकास नहीं किया जा रहा है। Microsoft अंतिम iOS 11 का समर्थन करने के बाद योगदान देना बंद कर दिया और Android आठ रिलीज़ के बाद, यह प्रोजेक्ट अब एक संग्रहीत ओपन-सोर्स कोड बेस है जिसका कोई अनुरक्षक नहीं है। मौजूदा सूट अभी भी पुराने उपकरणों पर चलते हैं, लेकिन एक समर्थित फ्रेमवर्क पर नया काम शुरू होना चाहिए।
| ढांचा | मंच | के लिए सबसे उपयुक्त |
| Appium | Android और आईओएस | क्रॉस-प्लेटफ़ॉर्म सूट में Java, Pythonरूबी या Javaस्क्रिप्ट, और इसके लिए सबसे करीबी प्रतिस्थापन Calabash टीम. |
| Espresso | Android केवल | कोटलिन में लिखे गए तेज़ इन-प्रोसेस परीक्षण या Java एप्लिकेशन डेवलपर्स द्वारा स्वयं। |
| एक्ससीयूआईटेस्ट | केवल iOS | नेटिव Xcode सुइट्स, सेवानिवृत्त हो चुके सुइट्स के समर्थित उत्तराधिकारी हैं। यूआई ऑटोमेशन फ्रेमवर्क. |
| मास्ट्रो और डिटॉक्स | Android और आईओएस | फ्लेक्स रेजिस्टेंस और रिएक्ट नेटिव एप्लिकेशन पर केंद्रित नए ओपन-सोर्स प्रोजेक्ट। |
बीडीडी की आदत पूरी तरह से स्थानांतरित हो जाती है। गेरकिन फीचर फाइलें बिल्कुल वैसी ही रहती हैं, और केवल स्टेप डेफिनिशन बॉडी ही बदलती हैं, क्योंकि Cucumber यह ड्राइवर के अंदर नहीं बल्कि उसके ऊपर स्थित होता है। माइग्रेट करने वाली टीमें आमतौर पर फ़ीचर फ़ाइलों को सुरक्षित रखती हैं और रूबी चरणों को पुनः लिखती हैं। Appiumऔर उसी का पुनः उपयोग करें मोबाइल परीक्षण डिवाइस मैट्रिक्स और स्वचालन परीक्षण वे पहले से ही एक पाइपलाइन चला रहे हैं।
















