लेगसी monkeyrunner
टूल, ऐसे प्रोग्राम लिखने के लिए एपीआई उपलब्ध कराता है जो
Android डिवाइस या एम्युलेटर, जो Android कोड के बाहर का है.
monkeyrunner
टूल को मुख्य तौर पर, ऐप्लिकेशन और डिवाइसों की जांच करने के लिए डिज़ाइन किया गया है
पर मिल रहे हैं, लेकिन यूनिट टेस्ट सुइट को रन
करने के लिए इस्तेमाल किया जा सकता है.
दूसरे कामों के लिए. monkeyrunner
की मदद से, Python प्रोग्राम लिखा जा सकता है
जो किसी Android ऐप्लिकेशन या टेस्ट पैकेज को इंस्टॉल करता है, उसे चलाता है, उसे कीस्ट्रोक भेजता है,
इसके यूज़र इंटरफ़ेस का स्क्रीनशॉट लेता है और वर्कस्टेशन पर स्क्रीनशॉट सेव करता है.
चेतावनी: monkeyrunner
एपीआई का रखरखाव नहीं किया जा रहा है. हमारा सुझाव है कि आप
ऐप्लिकेशन क्रॉलर टूल या
यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन
टेस्टिंग फ़्रेमवर्क का इस्तेमाल न करें.
monkeyrunner
टूल
यूज़र इंटरफ़ेस (यूआई)/ऐप्लिकेशन एक्सरसीज़र मंकी,
monkey
टूल के नाम से भी जाना जाता है. monkey
टूल
adb
शेल सीधे
डिवाइस या एम्युलेटर का इस्तेमाल करता है और उपयोगकर्ता और सिस्टम इवेंट की एक रैंडम स्ट्रीम जनरेट करता है. इसके मुकाबले,
यह monkeyrunner
टूल,
ख़ास कमांड और इवेंट को एपीआई से हटा दिया जाता है.
Android की जांच के लिए, monkeyrunner
टूल ये सुविधाएं उपलब्ध कराता है:
-
एक से ज़्यादा डिवाइस कंट्रोल:
monkeyrunner
एपीआई, एक या एक से ज़्यादा डिवाइस कंट्रोल को लागू कर सकता है कई डिवाइसों या एम्युलेटर पर टेस्ट सुइट बना सकते हैं. सभी डिवाइसों को अपने हाथ से अटैच किया जा सकता है या सभी एम्युलेटर (या दोनों) को एक साथ चालू करें. इसके बाद, दोनों को एक-एक करके चालू करें प्रोग्राम बनाकर उसे टेस्ट करें. इसके बाद, एक या उससे ज़्यादा टेस्ट करें. एम्युलेटर को भी शुरू किया जा सकता है प्रोग्राम बनाकर, एक या उससे ज़्यादा टेस्ट करें. इसके बाद, एम्युलेटर को बंद कर दें. -
फ़ंक्शनल टेस्टिंग:
monkeyrunner
अपने-आप शुरू से आखिर तक काम कर सकता है एक Android ऐप्लिकेशन का टेस्ट किया जा रहा है. आपको कीस्ट्रोक या टच इवेंट और व्यू के साथ इनपुट वैल्यू देनी होती हैं स्क्रीनशॉट के रूप में दिखाए. -
रिग्रेशन टेस्टिंग:
monkeyrunner
साथ ही, अपने आउटपुट स्क्रीनशॉट की तुलना स्क्रीनशॉट के सेट से करना. इन स्क्रीनशॉट को सही है. -
एक्सटेंसिबल ऑटोमेशन:
monkeyrunner
एक एपीआई टूलकिट है. इसलिए, आपके पास ये काम करने की सुविधा होती है Android को कंट्रोल करने के लिए, Python पर आधारित मॉड्यूल और प्रोग्राम का सिस्टम डेवलप करना डिवाइस.monkeyrunner
API का इस्तेमाल करने के अलावा, स्टैंडर्ड एपीआई का इस्तेमाल करने के लिए Pythonos
औरsubprocess
मॉड्यूल का उपयोग करके Android टूल को कॉल किया जा सकता है, जैसे Android डीबग ब्रिज.monkeyrunner
एपीआई में अपनी क्लास भी जोड़ी जा सकती हैं. यह है ज़्यादा जानकारी के लिए, प्लगिन की मदद से मंकीरनर को आगे बढ़ाएं सेक्शन.
monkeyrunner
टूल का इस्तेमाल करता है
Jython, Python का एक ऐसा तरीका है जो Java प्रोग्रामिंग भाषा का इस्तेमाल करता है. जैथॉन ने लेट्स
monkeyrunner
एपीआई, Android फ़्रेमवर्क के साथ आसानी से इंटरैक्ट करता है. Jython के साथ,
कॉन्सटेंट, क्लास, और एपीआई के तरीकों को ऐक्सेस करने के लिए, Python सिंटैक्स का इस्तेमाल कर सकते हैं.
मंकी रनर गेम
यहां एक आसान monkeyrunner
प्रोग्राम दिया गया है, जो किसी डिवाइस से कनेक्ट होता है और
MonkeyDevice
ऑब्जेक्ट है. MonkeyDevice
ऑब्जेक्ट का इस्तेमाल करके, यह प्रोग्राम एक Android ऐप्लिकेशन इंस्टॉल करता है
वह पैकेज बनाता है, उसकी किसी गतिविधि को चलाता है, और उस गतिविधि के लिए मुख्य इवेंट भेजता है.
इसके बाद, प्रोग्राम नतीजे का स्क्रीनशॉट लेता है और
MonkeyImage
ऑब्जेक्ट.
इस ऑब्जेक्ट से, प्रोग्राम एक PNG फ़ाइल लिखता है, जिसमें स्क्रीनशॉट होता है.
# Imports the monkeyrunner modules used by this program. from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice # Connects to the current device, returning a MonkeyDevice object. device = MonkeyRunner.waitForConnection() # Installs the Android package. Notice that this method returns a boolean, so you can test # whether the installation worked. device.installPackage('myproject/bin/MyApplication.apk') # Sets a variable with the package's internal name. package = 'com.example.android.myapplication' # Sets a variable with the name of an Activity in the package. activity = 'com.example.android.myapplication.MainActivity' # Sets the name of the component to start. runComponent = package + '/' + activity # Runs the component. device.startActivity(component=runComponent) # Presses the Menu button. device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP) # Takes a screenshot. result = device.takeSnapshot() # Writes the screenshot to a file. result.writeToFile('myproject/shot1.png','png')
मंकी रनर एपीआई
monkeyrunner
एपीआई,
com.android.monkeyrunner
पैकेज:
-
MonkeyRunner
:monkeyrunner
प्रोग्राम के लिए यूटिलिटी मेथड की क्लास. यह कक्षा एक का इस्तेमाल करकेmonkeyrunner
को किसी डिवाइस या एम्युलेटर से कनेक्ट किया जा सकता है. यह आपको किसीmonkeyrunner
प्रोग्राम के लिए यूज़र इंटरफ़ेस (यूआई) बनाने और पहले से मौजूद सहायता. -
MonkeyDevice
: यह किसी डिवाइस या एम्युलेटर के बारे में है. यह कक्षा इंस्टॉल करने और पैकेज अनइंस्टॉल करना, कोई गतिविधि शुरू करना, और किसी है. इस क्लास का इस्तेमाल, टेस्ट पैकेज चलाने के लिए भी किया जाता है. -
MonkeyImage
: यह स्क्रीन कैप्चर इमेज दिखाता है. इस क्लास में स्क्रीन कैप्चर करने के तरीके, बिट मैप इमेज को अलग-अलग फ़ॉर्मैट में बदलते हुए, दोMonkeyImage
ऑब्जेक्ट की तुलना करते हैं और फ़ाइल पर चित्र लिखने के लिए किया जा सकता है.
Python प्रोग्राम में, हर क्लास को Python मॉड्यूल के तौर पर ऐक्सेस किया जाता है. monkeyrunner
टूल ये मॉड्यूल अपने-आप इंपोर्ट नहीं करता. मॉड्यूल इंपोर्ट करने के लिए,
Python from
स्टेटमेंट:
from com.android.monkeyrunner import <module>
जहां <module>
वह क्लास का नाम है जिसे आपको इंपोर्ट करना है. ज़्यादा डेटा इंपोर्ट किया जा सकता है
मॉड्यूल के नामों को अलग-अलग करके, एक ही from
स्टेटमेंट में एक मॉड्यूल से ज़्यादा
कॉमा.
मंकीरनर रन
monkeyrunner
प्रोग्राम को किसी फ़ाइल से या टाइप करके चला सकते हैं
monkeyrunner
स्टेटमेंट
एक इंटरैक्टिव सेशन. आप monkeyrunner
निर्देश का इस्तेमाल करके, दोनों काम करते हैं,
जो आपकी SDK डायरेक्ट्री की tools/
सबडायरेक्ट्री में मौजूद होती है.
अगर आपने तर्क के तौर पर फ़ाइल का नाम दिया है, तो monkeyrunner
निर्देश
फ़ाइल के कॉन्टेंट को Python प्रोग्राम के तौर पर चलाता है; ऐसा न होने पर, एक इंटरैक्टिव सेशन शुरू हो जाता है.
monkeyrunner
कमांड का सिंटैक्स यह है:
monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>
टेबल 1 में monkeyrunner
फ़्लैग और आर्ग्युमेंट के बारे में बताया गया है.
आर्ग्यूमेंट | ब्यौरा |
---|---|
-plugin <plugin_jar>
|
(ज़रूरी नहीं) यह JAR फ़ाइल के बारे में बताता है, जिसमें
monkeyrunner .
monkeyrunner प्लगिन के बारे में ज़्यादा जानने के लिए, यहां जाएं
प्लगिन की मदद से मंकीरनर को आगे बढ़ाएं सेक्शन.
एक से ज़्यादा फ़ाइलों के लिए, तर्क को कई बार शामिल करें.
|
<program_filename>
|
अगर यह तर्क दिया जाता है, तो monkeyrunner निर्देश, कॉन्टेंट को चलाता है
फ़ाइल को Python प्रोग्राम के तौर पर फ़्लैग कर सकते हैं. अगर ऐसा नहीं होता है, तो निर्देश
इंटरैक्टिव सेशन.
|
<program_options>
|
(ज़रूरी नहीं) <program_file> में प्रोग्राम के लिए फ़्लैग और आर्ग्युमेंट |
मंकीरनर बिल्ट-इन सहायता
monkeyrunner
के लिए एपीआई रेफ़रंस जनरेट किया जा सकता है. इसके लिए, यह तरीका अपनाएं:
monkeyrunner help.py <format> <outfile>
इसके तर्क हैं:
-
सादे टेक्स्ट के आउटपुट के लिए,
<format>
का मानtext
है या एचटीएमएल आउटपुट के लिएhtml
. -
<outfile>
, आउटपुट फ़ाइल के लिए पाथ-क्वालिफ़ाइड नाम है.
प्लगिन की मदद से मंकीरनर को आगे बढ़ाएं
Java में लिखी गई क्लास के साथ, monkeyrunner
एपीआई को बढ़ाया जा सकता है
और एक या ज़्यादा JAR फ़ाइलों में बनाया जा सकता है. Google Analytics 4 प्रॉपर्टी को अपडेट करने के लिए,
monkeyrunner
API को अपनी क्लास के साथ या मौजूदा क्लास को बढ़ाने के लिए इस्तेमाल करें. आपने लोगों तक पहुंचाया मुफ़्त में
इस सुविधा का इस्तेमाल, monkeyrunner
एनवायरमेंट शुरू करने के लिए भी किया जा सकता है.
monkeyrunner
को प्लग इन देने के लिए, monkeyrunner
निर्देश शुरू करें
इसमें -plugin <plugin_jar>
तर्क के साथ बताया गया है
टेबल 1.
आपके प्लगिन कोड में, मुख्य monkeyrunner
क्लास को इंपोर्ट और बढ़ाया जा सकता है
MonkeyDevice
, MonkeyImage
, और MonkeyRunner
इंच
com.android.monkeyrunner
(monkeyrunner
API के बारे में सेक्शन देखें).
ध्यान दें कि प्लगिन से आपको Android SDK का ऐक्सेस नहीं मिलता. पैकेज इंपोर्ट नहीं किए जा सकते
जैसे कि com.android.app
. ऐसा इसलिए है, क्योंकि monkeyrunner
इसके साथ इंटरैक्ट करता है
फ़्रेमवर्क एपीआई के लेवल से नीचे का डिवाइस या एम्युलेटर.
प्लगिन स्टार्टअप क्लास
प्लगिन के लिए JAR फ़ाइल, ऐसी क्लास के बारे में बता सकती है जिसे पहले इंस्टैंशिएट किया जाता है
स्क्रिप्ट प्रोसेसिंग शुरू हो जाएगी. इस क्लास के बारे में बताने के लिए, कुंजी जोड़ें
MonkeyRunnerStartupRunner
को JAR फ़ाइल की
मेनिफ़ेस्ट. वैल्यू के लिए, स्टार्टअप पर चलाने के लिए क्लास के नाम का इस्तेमाल करें. नीचे दिए गए
स्निपेट में दिखाया गया है कि ant
बिल्ड स्क्रिप्ट में ऐसा कैसे किया जा सकता है:
<jar jarfile="myplugin" basedir="${build.dir}"> <manifest> <attribute name="MonkeyRunnerStartupRunner" value="com.myapp.myplugin"/> </manifest> </jar>
monkeyrunner
टूल के रनटाइम एनवायरमेंट का ऐक्सेस पाने के लिए, स्टार्टअप क्लास लागू कर सकती है
com.google.common.base.Predicate<PythonInterpreter>
. उदाहरण के लिए, यह
क्लास डिफ़ॉल्ट नेमस्पेस में कुछ वैरिएबल सेट अप करती है:
Kotlin
package com.android.example import com.google.common.base.Predicate import org.python.util.PythonInterpreter class Main: Predicate<PythonInterpreter> { override fun apply(anInterpreter: PythonInterpreter): Boolean { /* * Examples of creating and initializing variables in the monkeyrunner environment's * namespace. During execution, the monkeyrunner program can refer to the variables * "newtest" and "use_emulator" * */ anInterpreter.set("newtest", "enabled") anInterpreter.set("use_emulator", 1) return true } }
Java
package com.android.example; import com.google.common.base.Predicate; import org.python.util.PythonInterpreter; public class Main implements Predicate<PythonInterpreter> { @Override public boolean apply(PythonInterpreter anInterpreter) { /* * Examples of creating and initializing variables in the monkeyrunner environment's * namespace. During execution, the monkeyrunner program can refer to the variables "newtest" * and "use_emulator" * */ anInterpreter.set("newtest", "enabled"); anInterpreter.set("use_emulator", 1); return true; } }