selendroid tutorial android mobile test automation framework
सेलेंड्रोइड (भाग- I) का उपयोग कर मोबाइल स्वचालन:
अब तक, लाखों एप्लिकेशन पहले से ही एक प्लेटफॉर्म के रूप में एंड्रॉइड का उपयोग करके विकसित किए गए हैं और गिनती अभी भी दिन-ब-दिन बढ़ती जा रही है।
पकड़ यह है कि, प्रत्येक ऐप को कैसे मान्य किया जाए? जैसा कि हमें मानव संसाधन, वास्तविक उपकरणों (जैसे कि मोबाइल) आदि के लिए समर्पित संसाधनों की आवश्यकता होगी, और फिर से यह एक समय लेने वाला कार्य है। दूसरी ओर, Android संस्करण, एप्लिकेशन (.apk) संस्करण, डिवाइस आयाम आदि, स्थिर नहीं हैं।
इसलिए, परीक्षण निकास मानदंड को परिभाषित करना बहुत मुश्किल हो जाता है क्योंकि हम पूर्ण परीक्षण क्षेत्र को परिभाषित नहीं कर सकते हैं, जिससे सटीक परीक्षण प्रयास अनुमान नहीं किया जा सकता है।
डिवाइस निर्भरता को दूर करने के लिए, एमुलेटर विकसित किए जा रहे हैं, जो पर्यावरण की तरह वास्तविक समय प्रदान कर सकते हैं, जहां हम एंड्रॉइड वर्जन, डिवाइसेस और उनके वर्जन के बारे में चिंता किए बिना एप्लिकेशन का परीक्षण कर सकते हैं। लेकिन, अभी भी एमुलेटर पर अनुप्रयोगों (.apk) का परीक्षण एक मैन्युअल गतिविधि और एक समय लेने वाला कार्य है। इसलिए मोबाइल परीक्षण को स्वचालित बनाने का विचार विकसित किया जा रहा है।
मोबाइल स्वचालन करने के लिए, टेस्ट ऑटोमेशन फ्रेमवर्क विकसित किया गया है, जो स्क्रिप्टिंग भाषा का उपयोग करके एंड्रॉइड-आधारित एप्लिकेशन के स्वचालन को सक्षम करता है।
कई ऑटोमेशन फ्रेमवर्क विकसित किए गए हैं जैसे सेलेन्ड्रोइड, एपियम, रोबोटियम, एस्प्रेसो।
यह ट्यूटोरियल दो भागों में विभाजित है:
ट्यूटोरियल # 1 : सेलेंड्रोइड परिचय: एंड्रॉइड मोबाइल टेस्ट ऑटोमेशन फ्रेमवर्क
ट्यूटोरियल # 2: मोबाइल एप्लिकेशन पर उपयोगकर्ता इंटरैक्शन को स्वचालित करने के लिए सेलेंड्रोइड फ्रेमवर्क का उपयोग कैसे करें (जल्द ही आ रहा है)
आप क्या सीखेंगे:
- सेलेंड्रोइड क्या है?
- सेलेंड्रोइड घटक
- पर्यावरणीय सेटअप
- वास्तविक उपकरणों पर APK फ़ाइलों का उपयोग करके पहली स्क्रिप्ट लिखना
- निष्कर्ष
- अनुशंसित पाठ
सेलेंड्रोइड क्या है?
सेलेंड्रोइड कई महत्वपूर्ण विशेषताओं के साथ एक अद्भुत एंड्रॉइड मोबाइल एप्लिकेशन टेस्ट ऑटोमेशन फ्रेमवर्क टूल है। Selendroid एक बहुत शक्तिशाली स्वचालन उपकरण है जो एक साथ कई उपकरणों के साथ बातचीत कर सकता है और किसी भी संशोधन या Selendroid का उपयोग किए बिना परिवर्तन के बिना एक आवेदन का परीक्षण किया जा सकता है।
इसे कहते भी हैं 'सेलेनियम Android के लिए' देशी और हाइब्रिड मोबाइल ऐप और मोबाइल वेब के परीक्षण के लिए।
सेलेंड्रोइड क्यों?
- यह एक खुला स्रोत है (उपयोग करने के लिए स्वतंत्र)
- एक स्क्रिप्टिंग भाषा के रूप में सेलेनियम का समर्थन करता है
- वेब ड्राइवर संगत भाषाओं जैसे जावा, C #, पर्ल का समर्थन करता है
- सभी Android संस्करणों का समर्थन करता है
- एक एमुलेटर के साथ-साथ असली डिवाइस दोनों पर काम करता है
- एक देशी, संकर और वेब-आधारित अनुप्रयोग पर काम करता है
- देशी अनुप्रयोगों और साथ ही क्लाउड-आधारित एप्लिकेशन को निष्पादित करते समय प्रभावी। क्योंकि यह सेलेनियम ग्रिड का समर्थन करता है
- यह ऑब्जेक्ट गुणों का उपयोग करके ऑब्जेक्ट की पहचान का समर्थन करता है
- लागू करने में आसान
- हार्डवेयर उपकरणों को परीक्षण के निष्पादन के दौरान पीसी से अनप्लग किया जा सकता है, परीक्षण को फिर से शुरू या बंद किए बिना। सेलेंड्रोइड नए उपकरणों को स्वचालित रूप से पहचान सकता है। इस सुविधा को 'हॉटप्लगिंग' के रूप में जाना जाता है
सेलेंड्रोइड का एक सरल आर्किटेक्चर
सेलेंड्रोइड घटक
सेलेंड्रोइड - क्लाइंट
मूल रूप से, यह एक जावा क्लाइंट लाइब्रेरी है। इस घटक से, HTTP और WebDriver अनुरोध JSON का उपयोग करके सेलेंड्रोइड स्टैंडअलोन सर्वर पर भेजा जा रहा है।
सेलेंड्रोइड - स्टैंडअलोन
यह घटक विभिन्न उपकरणों के साथ-साथ .apk के सेलेन्ड्रोइड-सर्वर और परीक्षण के तहत ऐप को स्थापित करके प्रबंधित करता है। Http रिक्वेस्ट (असली डिवाइस / सिम्युलेटर पर अमल करने के लिए) सेलेंड्रोइड स्टैंडअलोन सर्वर से डिवाइस और एपीके टेस्ट के तहत भेजी जा रही है।
सेलेंड्रोइड - सर्वर
यह सर्वर परीक्षण के तहत एप्लिकेशन के साथ डिवाइस पर चलता है। परीक्षण के तहत सर्वर के साथ-साथ एप्लिकेशन के बीच दो-तरफ़ा संचार होता है।
AndroidDriverApp
यह एक अंतर्निहित एंड्रॉइड ड्राइवर के साथ-साथ मोबाइल वेब का परीक्षण करने के लिए एक वेब व्यू ऐप है।
के रूप में नामित एक और परीक्षण रूपरेखा एपीपीआई एक सेलेंड्रोइड के समान काम करता है।
यहाँ दोनों के बीच एक छोटी सी तुलना है।
फ़ीचर | सेलेंड्रोइड | एपियम |
---|---|---|
निचले Android संस्करण के लिए समर्थन (<4.1) | हाँ | ऐसा न करें |
हॉट प्लगिंग | हाँ | ऐसा न करें |
उपयोगकर्ता एजेंट परीक्षण | ऐसा न करें | हाँ |
IOS आधारित एप्लिकेशन के लिए समर्थन | ऐसा न करें | हाँ |
पर्यावरण की आवश्यकता | Android के लिए - मैक, लिनक्स, विंडोज (कोई भी संस्करण) | IOS के लिए - मैक OSX 107। एंड्रॉइड के लिए - विंडोज 7+, लिनक्स, मैक ओएसएक्स 107। |
पूर्व-आवश्यकताएं:
.net c # साक्षात्कार प्रश्न
इरादा दर्शकों के साथ शुरू करने के लिए सेलेनियम का उपयोग करने के बारे में बहुत अच्छी तरह से अवगत होना चाहिए, ग्रहण जैसे किसी भी आईडीई उपकरण आदि प्रोग्रामिंग की मूल अवधारणाओं जावा, सी आदि का कहना है ... और मावेन और अन्य परीक्षण उपकरणों का उपयोग करने के बारे में पता होना चाहिए।
- सिम्युलेटर को देखने के लिए Intel x86 एमुलेटर एक्सेलेरेटर (अनिवार्य नहीं) स्थापित करें यहां
- जावा एसडीके, जेआरई पहले से ही एक परीक्षण वातावरण में स्थापित है। वैकल्पिक रूप से आप उसी से डाउनलोड कर सकते हैं यहां
एसडीके पथ को स्थापित करते समय ध्यान दें।
मेरे कंप्यूटर पर मौजूद पर्यावरणीय चर सेट करें -> इसे राइट-क्लिक करें -> गुण -> एडवांस सिस्टम सेटिंग
- आपकी मशीन पर पहले से ही ग्रहण लगा हुआ है। यदि नहीं, तो आप इससे भी डाउनलोड कर सकते हैं यहां
- सेलेनियम जार फ़ाइलों को डाउनलोड किया जाना है। आप वही डाउनलोड कर सकते हैं यहाँ से भी
- TestNG जार पहले से डाउनलोड हैं
- Android SDK डाउनलोड और इंस्टॉल किया जाना है। आप इससे भी डाउनलोड कर सकते हैं यहां
इंस्टॉल करते समय Android SDK पाथ को नोट करें
एक बार डाउनलोड होने पर ANDROID_HOME को पर्यावरण चर में प्रस्तुत किया जाना चाहिए:
मेरा कंप्यूटर -> राइट क्लिक करें -> गुण -> एडवांस सिस्टम सेटिंग
- Selendroid जार फ़ाइलों को डाउनलोड किया जाना है। आप इससे भी डाउनलोड कर सकते हैं यहां
याद कीजिए उपरोक्त स्थान से Selendroid स्टैंडअलोन जार फ़ाइल डाउनलोड करने के लिए। आमतौर पर, नाम सेलेरॉइड-स्टैंडअलोन-0.9.0 के साथ-निर्भरताएँ के समान है। इसके अलावा, उपर्युक्त स्थान से एक नमूना एपीके फ़ाइल को सेलेन्ड्रोइड-टेस्ट-ऐप-0.8.0.apk डाउनलोड करें
ध्यान दें:
- हम भी उपयोग कर सकते हैं मावेन भंडार सभी जारों को संदर्भ देने के लिए या फिर आपको उन्हें मैन्युअल रूप से डाउनलोड करना होगा और इसे निर्माण पथ पर ले जाना होगा (ओवर एक्लिप्स प्रोजेक्ट)
- डिवाइस / एमुलेटर - एंड्रॉइड में सभी इंस्टॉल किए गए एप्लिकेशन में .apk एक्सटेंशन होगा। अन्य तरीकों से आप एपीके जानकारी जैसे ऐप डाउनलोड कर सकते हैं जो आपको आपके एंड्रॉइड डिवाइस पर इंस्टॉल किए गए एप्लिकेशन की सूची और इसके वास्तविक नाम, आकार आदि के बारे में सूचित करेंगे…
पर्यावरणीय सेटअप
# 1) एपीके रखें जिसे एक उचित स्थान पर स्थापित किया जाना है
मेरे मामले में मैंने इसे बरकरार रखा G:\Jars\selendroid-test-app-0.8.0.apk
# 2) इसके बाद, प्रोजेक्ट फ़ोल्डर पर एप्लिकेशन को रखें
मेरे मामले में यह है 500: AppiumAutomation SelendroidFirst
# 3) वास्तविक डिवाइस को पीसी से कनेक्ट करें
सर्वश्रेष्ठ वेबसाइट ऑनलाइन मोबाइल फोनों के लिए देखने के लिए
सुनिश्चित करें कि USB डिबगिंग मोड सक्षम है और साथ ही आप बाहरी ऐप्स को USB कनेक्शन के माध्यम से स्थापित करने की अनुमति दे रहे हैं।
टिप्स:
- कृपया मोबाइल से Redmi Note 3 के लिए आवश्यक USB डिबगिंग सेटिंग देखें यहां
- USB से रेडमी नोट 3 का उपयोग करके बाहरी एप्लिकेशन इंस्टॉल करने दें यहां
# 4) विंडोज पर कमांड प्रॉम्प्ट खोलें
उस फ़ोल्डर पर नेविगेट करें जहां सेलेरॉइड स्टैंडअलोन जार, साथ ही डाउनलोड की गई एपीके फ़ाइल मौजूद है।
अब समान कमांड को निर्दिष्ट करें और कमांड प्रॉम्प्ट में एंटर दबाएं
जैसे जावा - सेजलेंड्रोइड-स्टैंडअलोन-0.15.0-साथ-निर्भरताएँ। -जोर-सेलेंड्रोइड-टेस्ट-ऐप-0.8.0.apk
या जावा-सेजेलोइड-स्टैंडअलोन-0.15.0-निर्भरता.जर के साथ
एपीके फ़ाइल: selendroid-test-app-0.8.0.apk
ध्यान दें: जब उपरोक्त आदेश निष्पादित किया जाता है, तो सुनिश्चित करें कि एपीके पर हस्ताक्षर किए गए हैं और साथ ही असली डिवाइस पीसी से जुड़ा है और डिवाइस पर डिबगिंग सक्षम है।
()ध्यान दें: बढ़े हुए दृश्य के लिए चित्र पर क्लिक करें)
स्वचालन के लिए पर्यावरण तैयार है, यह सुनिश्चित करने के लिए कमांड प्रॉम्प्ट पर निम्नलिखित बिंदुओं की जांच करें:
c ++ बाइनरी ट्री उदाहरण
- संदेश के लिए सत्यापित करें 'मान्य संख्या के साथ निर्दिष्ट डिवाइस'
- संदेश के लिए सत्यापित करें 'सर्वर डिफ़ॉल्ट पोर्ट कहना (4444) में शुरू किया गया है ...'
- संदेश के लिए सत्यापित करें 'सत्र बनाया जा रहा है ...'
फिर से हम हमेशा पुन: पुष्टि कर सकते हैं कि क्या सर्वर आपके किसी वेब ब्राउज़र पर निम्नलिखित URL का उपयोग कर रहा है या नहीं।
जैसे http: // localhost: 4444 / wd / हब / स्थिति
# 5) एपीके का निरीक्षण
- हम असली मोबाइल उपकरणों को जोड़कर रियल ऐप्स का उपयोग कर सकते हैं
- हम डाउनलोड की गई किसी भी ऑफ़लाइन APK फ़ाइलों का उपयोग कर सकते हैं
सेलेंड्रॉइड इंस्पेक्टर एपीके के वेब तत्वों को डिबगिंग / निरीक्षण करने में उपयोगी है।
एक बार डिवाइस की पहचान करने और शुरू करने के बाद हम एपीके (वर्चुअल मोड में) को देख सकते हैं और उन संदर्भों को देख सकते हैं, जो आपके किसी भी वेब ब्राउज़र पर निम्नलिखित URL का उपयोग करके स्क्रिप्ट लिखने के लिए उपयोगी है।
जैसे: http: // localhost: 4444 / निरीक्षक
यहां हमारे पास परीक्षण के तहत आवेदन का स्क्रीनशॉट है और हमारे पास तत्व का भी निरीक्षण करने की सुविधा है।
या आप हमेशा उपयोग कर सकते हैं uiautomatorviewer परीक्षण के तहत आवेदन से वस्तुओं को खोजने के लिए।
इसके लिए डिफ़ॉल्ट पथ नीचे उल्लिखित है:
C: Users admin android-sdks उपकरण
C: Users admin - यह वह स्थान है जहाँ मैंने Android SDK स्थापित किया है, लेकिन इसकी स्थापना के दौरान निर्दिष्ट स्थान के अनुसार यह अलग हो सकता है।
वास्तविक उपकरणों पर APK फ़ाइलों का उपयोग करके पहली स्क्रिप्ट लिखना
उद्देश्य:
- सर्वर शुरू करें (डिफ़ॉल्ट पोर्ट 4444 पर कहें)
- एक सत्र बनाएँ
- कनेक्ट किए गए वास्तविक डिवाइस पर एप्लिकेशन (.apk फ़ाइल) स्थापित करें
- कुछ डेटा के साथ टेक्स्ट फ़ील्ड को स्वचालित करें
- स्वचालित रूप से बटन पर क्लिक करें
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
निष्कर्ष
सेलेन्ड्रोइड एक बहुत ही शक्तिशाली ऑटोमेशन टेस्ट फ्रेमवर्क टूल है, जिसका उपयोग देशी, हाइब्रिड के साथ-साथ किसी भी एंड्रॉइड डिवाइस पर वेब ऐप के साथ-साथ सिम्युलेटर के लिए भी किया जा सकता है।
यह हॉटप्लगिंग का समर्थन करता है, जिसका अर्थ है कि उपयोगकर्ता के पास एक समय में कई उपकरणों का परीक्षण हो सकता है इसलिए कई उपकरणों में समानांतर परीक्षण निष्पादन संभव है। यह विभिन्न प्रकार के इंटरैक्शन का समर्थन करता है जैसे लंबे प्रेस, स्पर्श क्रिया आदि…
इसके साथ केवल जटिलता पर्यावरणीय सेटअप है, जो अन्य रूपरेखाओं में भी है। एक बार जब यह सही ढंग से सेटअप हो जाता है तो हम अपनी स्क्रिप्ट को बिना किसी परेशानी के चला सकते हैं
मेंभाग 2इस Selendoid ट्यूटोरियल में, हम कवर करेंगे - मोबाइल एप्लिकेशन पर उपयोगकर्ता इंटरैक्शन को स्वचालित करने के लिए सेलेंड्रोइड फ्रेमवर्क का उपयोग कैसे करें।
हमारे अगले लेख में, हम और अधिक चर्चा करेंगे pCloudy हैंड्स-ऑन रिव्यू ट्यूटोरियल।
अनुशंसित पाठ
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- SeeTest ऑटोमेशन ट्यूटोरियल: मोबाइल टेस्ट ऑटोमेशन टूल गाइड
- जावा कलेक्शंस फ्रेमवर्क (JCF) ट्यूटोरियल
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- Ranorex ट्यूटोरियल: एक शक्तिशाली डेस्कटॉप, वेब और मोबाइल स्वचालन परीक्षण उपकरण
- परीक्षण Android और iOS मोबाइल एप्लिकेशन के लिए Appium ट्यूटोरियल
- सेलेंड्रोइड का उपयोग करके मोबाइल ऐप पर उपयोगकर्ता की बातचीत को स्वचालित करने के लिए (भाग 2)
- वास्तविक समय मोबाइल स्वचालन परियोजना पर SeeTest स्वचालन के उन्नत उपयोग