Appium मेवन निर्भरता: सेटअप के साथ Eclipse परियोजना उदाहरण
⚡ स्मार्ट सारांश
Appium मेवन डिपेंडेंसी मैनेजमेंट एक मोबाइल ऑटोमेशन प्रोजेक्ट को pom.xml में java-client आर्टिफैक्ट घोषित करने की अनुमति देता है, जिससे मेवन स्वचालित रूप से प्रत्येक जार को रिजॉल्व कर लेता है और वही बिल्ड बिना मैन्युअल डाउनलोड के किसी भी मशीन पर चलता है।

एचएमबी क्या है? Apache Maven?
Apache Maven एक Java-आधारित परियोजना प्रबंधन और स्वचालन उपकरण। यह डेवलपर्स के लिए संपूर्ण बिल्ड जीवनचक्र को आसान बनाने के लिए एक मल्टीटास्किंग फ्रेमवर्क प्रदान करता है Java अनुप्रयोगों के लिए। Maven को POM (प्रोजेक्ट ऑब्जेक्ट मॉडल) नामक XML प्रारूप में पूर्व-परिभाषित और घोषित किया गया है और इसे 'pom.xml' कहा जाता है। इसका उपयोग C#, Scala, Ruby आदि जैसी अन्य भाषाओं के लिए भी किया जा सकता है।
Maven फ्रेमवर्क का उपयोग करके, आप किसी भी प्रोजेक्ट में निम्नलिखित कार्यों को आसानी से प्रबंधित कर सकते हैं:
- निर्माण चक्र
- परियोजना प्रलेखन
- रिपोर्ट की जाँच
- स्क्रम्स प्रबंधन
- जानकारी जारी की
Maven के बुनियादी उपयोग इस प्रकार हैं:
- एक मानक निर्देशिका संरचना लागू करता है.
- एक पुन: प्रयोज्य और रखरखाव में आसान परियोजना संरचना प्रदान करें।
- पैकेज निर्भरताओं का समाधान करें.
- एक कॉन्फ़िगरेशन प्रबंधन ढांचा प्रदान करें.
निर्भरता-समाधान की वह क्षमता ही वास्तव में एक Appium परियोजना की आवश्यकता है, क्योंकि Java ग्राहक एक श्रृंखला में जानकारी खींचता है Selenium ऐसी जार फाइलें जिन्हें कोई भी मैन्युअल रूप से डाउनलोड नहीं करना चाहता।
डाउनलोड Appium मावेन निर्भरताएँ
इससे पहले कि आप लिखना शुरू करें Appium Maven के साथ डिपेंडेंसी टेस्ट करने के लिए, आपको इसे डाउनलोड करना होगा। Appium मेवन निर्भरता — Appium JAR डाउनलोड फ़ाइल — से मेवन केंद्रीय रिपॉजिटरी वेबसाइटनीचे दिया गया स्क्रीनशॉट मेवन सेंट्रल पर जावा-क्लाइंट आर्टिफैक्ट लिस्टिंग को दर्शाता है, जहां प्रत्येक प्रकाशित संस्करण और उसका तैयार स्निपेट उपलब्ध है।
या फिर नीचे बताए गए POM.xml आर्टिफैक्ट को सीधे जोड़ें:
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>3.4.1</version> </dependency>
⚠️ संस्करण नोट: la 3.4.1 ऊपर दिया गया निर्देशांक मूल उदाहरण है और अभी भी ब्लॉक का सही आकार दर्शाता है। यह W3C वेबड्राइवर प्रोटोकॉल से पहले का है, इसलिए नए प्रोजेक्ट में संस्करण को अपडेट करना आवश्यक है। लिखते समय, मेवन सेंट्रल पर वर्तमान रिलीज़ यह है। 10.1.1, जिसकी ज़रुरत है Selenium 4.42.0 या बाद में।
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency>
कृपया हमारे माध्यम से जाएँ मावेन ट्यूटोरियल Maven को कॉन्फ़िगर करने का तरीका जानने के लिए Eclipse.
Appium मेवन प्रोजेक्ट संरचना और आवश्यक निर्भरताएँ
Maven एक निश्चित लेआउट लागू करता है, और इसे जानने से इस वॉकथ्रू में आगे आने वाली अधिकांश उलझनों से बचा जा सकता है। जेनरेट किए गए प्रोजेक्ट में चार महत्वपूर्ण स्थान होते हैं:
- पोम.एक्सएमएल — प्रोजेक्ट रूट पर स्थित प्रोजेक्ट ऑब्जेक्ट मॉडल, जहां प्रत्येक निर्भरता और प्लगइन घोषित किया जाता है।
- src/मुख्य/जावा — एप्लिकेशन और सहायक क्लास।
- src/test/java — टेस्ट क्लास, और बिल्ड चलाते समय श्योरफायर प्लगइन द्वारा स्कैन की जाने वाली एकमात्र डायरेक्टरी।
- लक्ष्य — संकलित आउटपुट और परीक्षण रिपोर्ट, प्रत्येक बिल्ड पर पुनः उत्पन्न होती हैं।
RSI Appium java-client एकमात्र अनिवार्य निर्भरता है, क्योंकि यह घोषित करता है Selenium एपीआई, रिमोट-ड्राइवर और सपोर्ट आर्टिफैक्ट्स को ट्रांजिटिवली उपयोग किया जाता है। कई टीमें अभी भी पिन का उपयोग करती हैं। Selenium संस्करण को स्पष्ट रूप से एक ही स्थान पर प्रदर्शित करने के लिए, और एक टेस्ट रनर जोड़ें:
<dependencies> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.42.0</version> </dependency> </dependencies>
दोनों संस्करणों को संगत रखें। जावा-क्लाइंट रिलीज़ में यह बताया गया है। Selenium यह जिस रेंज को सपोर्ट करता है, और एक पुराने क्लाइंट को एक बिल्कुल नए क्लाइंट के साथ मिलाना Selenium रनटाइम पर NoSuchMethodError का सबसे आम कारण यही है। जावा-क्लाइंट रिपॉजिटरी यह दस्तावेज़ प्रत्येक रिलीज़ के लिए पेयरिंग को दर्शाता है।
परीक्षण अनुप्रयोग के साथ Appium और मेवन
निर्भरता स्थापित हो जाने के बाद, Eclipse नीचे दिया गया वर्कफ़्लो शुरू से एक चलाने योग्य प्रोजेक्ट बनाता है। कॉन्फ़िगरेशन के बाद Appium Java मेवन प्लग-इन में Eclipseकार्यक्षेत्र किसी भी परीक्षण के लिए तैयार है। Android .apk के साथ आवेदन Appium और मेवन, जैसा कि दिखाया गया है Appium नीचे मावेन परियोजना का उदाहरण दिया गया है।
चरण 1) इस चरण में,
- NEW पर जाएँ >> Maven प्रोजेक्ट चुनें
- अगले बटन पर क्लिक करें
जैसा कि यहां दिखाया गया है, नया प्रोजेक्ट विजार्ड मेवन प्रोजेक्ट को हाइलाइट करते हुए खुलता है।
चरण 2) फिर 'नया मेवन प्रोजेक्ट' विंडो में, ' दर्ज करेंAppium ग्रुप आईडी और आर्टिफैक्ट आईडी कॉलम में 'टेस्ट' दर्ज करें। इस चरण में, आपको निम्न जानकारी दर्ज करनी होगी:
- समूह आईडी
- विरूपण साक्ष्य आईडी
- संस्करण
- पैकेजिंग
- नाम और Descriptआयन
- अंत
पूरा किया गया नया मेवन प्रोजेक्ट फॉर्म नीचे दिए गए स्क्रीनशॉट जैसा दिखता है।
फ़िनिश बटन पर क्लिक करने से परिभाषित ग्रुप आईडी के अंतर्गत एक नई क्लास खुल जाएगी (Appiumपरीक्षण का नाम।
चरण 3) के साथ शुरू करने के लिए Appium स्क्रिप्ट लिखने के लिए, बाईं ओर के एक्सप्लोरर विंडो में 'src/main/java' पर राइट क्लिक करें। फिर New >> class चुनें। स्क्रिप्ट लिखें। Appium चयनित वर्ग के अंदर कोड.
उस क्लास को बनाने के लिए उपयोग किया जाने वाला कॉन्टेक्स्ट मेनू नीचे दिखाया गया है।
चरण 4) इसी प्रोजेक्ट में, बाईं ओर के एक्सप्लोरर मेनू में pom.xml पर क्लिक करें। सभी डिपेंडेंसी डिफ़ॉल्ट रूप से 'pom.xml' टैब में दिखाई देंगी। नीचे दी गई छवि देखें।
यदि डिफ़ॉल्ट pom.xml मौजूद नहीं है, तो बस सभी Maven कोड जोड़ दें। Appium निर्भरताएँ, उदाहरणtracMaven सेंट्रल रिपॉजिटरी वेबसाइट से लिया गया:
https://central.sonatype.com/artifact/io.appium/java-client
संपादित pom.xml के साथ Appium जोड़ी गई निर्भरताएँ नीचे दिखाई गई हैं।
चरण 5) अब, बाएं एक्सप्लोरर में 'pom.xml' पर राइट क्लिक करें, या ' के लिए XML कोड पर राइट क्लिक करें।Appium'टेस्ट' प्रोजेक्ट पर क्लिक करें। फिर नीचे दिखाए अनुसार 'रन ऐज़ >> मेवन क्लीन' विकल्प पर क्लिक करें।
रन करते समय, आप सभी Maven-संबंधित jar फ़ाइलें और एक सफलता संदेश देख सकते हैं, जैसा कि नीचे दिए गए कंसोल आउटपुट में दिखाया गया है। इस प्रकार आप एक रन करते हैं। Appium Java Maven-कॉन्फ़िगर किए गए वातावरण में क्लाइंट Maven निर्भरता परीक्षण।
कैसे चलाना है Appium मेवन कमांड के साथ परीक्षण
RSI Eclipse मेन्यू सुविधाजनक है, लेकिन उसी बिल्ड को बिल्ड सर्वर पर बिना किसी हस्तक्षेप के चलाना होगा, और वहाँ कमांड लाइन ही एकमात्र विकल्प है। pom.xml वाली फ़ोल्डर में एक टर्मिनल खोलें और इन कमांड का उपयोग करें।
mvn clean mvn clean test mvn clean install mvn test -Dtest=LoginTest
इनमें से प्रत्येक का एक अलग काम है:
- एमवीएन क्लीन को हटा देता है
targetइस डायरेक्टरी को इस तरह से बनाएं कि अगली बिल्ड में कुछ भी पुराना डेटा न बचे। यही कमांड है। Eclipse ऊपर दिए गए विवरण से ट्रिगर होते हैं। - एमवीएन स्वच्छ परीक्षण यह प्रोजेक्ट को कंपाइल करता है और टेस्ट क्लास को एग्जीक्यूट करता है। Maven Surefire प्लगइन इन्हें स्वचालित रूप से उठा लेता है।
src/test/javaडिफ़ॉल्ट शामिल पैटर्न का उपयोग करते हुएTest*.java,*Test.java,*Tests.javaऔर*TestCase.java. - mvn क्लीन इंस्टॉल यह परीक्षण चलाता है और फिर पैकेज किए गए आर्टिफैक्ट को आपके स्थानीय रिपॉजिटरी में रखता है, ताकि कोई अन्य प्रोजेक्ट उस पर निर्भर हो सके।
- mvn test -Dtest=LoginTest डीबग करते समय यह रन को एक ही क्लास तक सीमित कर देता है।
दो बातें लोगों को भ्रमित कर देती हैं। पहली बात, Appium बिल्ड शुरू होने से पहले सर्वर चालू होना चाहिए और एक डिवाइस या एमुलेटर कनेक्ट होना चाहिए, क्योंकि मेवन इनमें से किसी को भी लॉन्च नहीं करता है — डिवाइस को सत्यापित करें। एशियाई विकास बैंक पहले जांच करें। दूसरा, परिणाम लिखे जाते हैं। target/surefire-reportsयह वह फ़ोल्डर है जिसे CI जॉब को आर्काइव करना चाहिए। श्योरफायर उपयोग मार्गदर्शिका यह कॉन्फ़िगरेशन विकल्पों को विस्तार से बताता है, और वही कमांड एक Appium सुइट से Jenkins.
सामान्य Appium Maven में आने वाली त्रुटियाँ और उन्हें ठीक करने के तरीके
अधिकांश विफलताएँ Appium मेवन सेटअप में आने वाली समस्याएं टेस्ट कोड के बजाय कुछ चुनिंदा, दोहराए जाने योग्य कारणों से उत्पन्न होती हैं। नीचे दी गई तालिका प्रत्येक समस्या को उसके सामान्य समाधान से दर्शाती है।
| लक्षण | संभावित कारण | फिक्स |
| io.appium:java-client के लिए निर्भरताओं को हल नहीं किया जा सका | गलत वर्शन स्ट्रिंग, या मेवन सेंट्रल तक नेटवर्क एक्सेस का अभाव | Maven Central लिस्टिंग से कोऑर्डिनेट को सीधे कॉपी करें और बिल्ड को दोबारा चलाएं। |
| NoSuchMethodError या NoClassDefFoundError से Selenium कक्षा | java-client और selenium-java के संस्करण असंगत हैं। | मिलाओ Selenium संस्करण को जावा-क्लाइंट रिलीज़ द्वारा घोषित सीमा तक सीमित करें |
| टेस्ट कंपाइल तो हो जाते हैं लेकिन कोई भी रन नहीं होता। | टेस्ट क्लास src/main/java में स्थित हैं, या क्लास का नाम Surefire include पैटर्न से मेल नहीं खाता है। | उन्हें src/test/java फ़ोल्डर में ले जाएं और क्लास का नाम इस तरह रखें कि उसके अंत में Test आए। |
| पोर्ट 4723 पर कनेक्शन अस्वीकृत | RSI Appium सर्वर नहीं चल रहा है | शुरू करें Appium बिल्ड से पहले सर्वर |
| अमान्य या असमर्थित क्षमता | आधुनिक ड्राइवर के साथ उपयोग किए जाने वाले पुराने क्षमता नाम | Revवर्तमान देखें वांछित क्षमताएँ आपके प्लेटफ़ॉर्म के लिए |
| असमर्थित क्लास फ़ाइल प्रमुख संस्करण | Maven द्वारा उपयोग किया जाने वाला JDK, pom.xml में मौजूद कंपाइलर स्तर के JDK से भिन्न होता है। | maven.compiler.source और target प्रॉपर्टी को अपने इंस्टॉल किए गए फॉर्मेट के साथ अलाइन करें। JDK |
जब बिल्ड विफल हो जाए, तो मेवन द्वारा प्रिंट की गई अंतिम त्रुटि के बजाय पहली त्रुटि पढ़ें। बाद की पंक्तियाँ आमतौर पर पहले अनुपलब्ध आर्टिफैक्ट के परिणाम होती हैं।








