Uiautomator की जांच करना

  
अलग-अलग ऐप्लिकेशन के फ़ंक्शनल यूज़र इंटरफ़ेस (यूआई) की जांच करने के लिए फ़्रेमवर्क
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
7 मई, 2025 2.3.0 - - 2.4.0-alpha02

डिपेंडेंसी का एलान करना

टेस्ट पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha02"
}

Kotlin

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha02")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.

वर्शन 2.4

वर्शन 2.4.0-alpha02

7 मई, 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha02 रिलीज़ हो गया है. वर्शन 2.4.0-alpha02 में ये कमिट शामिल हैं.

नई सुविधाएं

  • नए Uiautomator Api का शुरुआती स्वरूप. UiAutomatorTestScope को फ़ैक्ट्री uiAutomator की मदद से बनाया जा सकता है. इससे नए onView एपीआई का ऐक्सेस मिलता है.
  • AccessibilityNodeInfo#getText के इस्तेमाल के बारे में चेतावनी देने और textAsString के इस्तेमाल का सुझाव देने के लिए, लिंट के शुरुआती नियम.

एपीआई में हुए बदलाव

  • सभी खोजों को (Icdf17) तक सीमित करने के लिए, डिसप्ले आईडी सेट करने के लिए Configurator#setDefaultDisplayId जोड़ा गया.
  • Searchable (UiDevice और UiObject2 के साथ शेयर किया गया इंटरफ़ेस) को सुविधा के लिए सार्वजनिक किया गया (I67f18).

गड़बड़ियां ठीक की गईं

  • UiDevice#pressKeyCodes में मेटा बटन को हैंडल करने की सुविधा ठीक की गई. (I73f80).
  • UiDevice#getWindowRoots को अपडेट किया गया, ताकि यह हमेशा Z क्रम में रूट दिखा सके (I87426).
  • कुछ जेस्चर पूरे न होने की समस्या को ठीक किया गया है (I60dd3, If4edd).
  • UiDevice#scrollUntil को कॉल करते समय, अनलिमिटेड लूप की समस्या को ठीक किया गया (I39989).

वर्शन 2.4.0-alpha01

26 जून, 2024

androidx.test.uiautomator:uiautomator:2.4.0-alpha01 रिलीज़ हो गया है. वर्शन 2.4.0-alpha01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Configurator#getKeyInjectionDelay और setKeyInjectionDelay को बंद कर दिया गया है, क्योंकि अब पैरामीटर का इस्तेमाल नहीं किया जाता. अब टेक्स्ट, बटन दबाने के बजाय सीधे तौर पर इंजेक्ट किया जाता है. (I3bcc5).

गड़बड़ियां ठीक की गईं

  • डाइनैमिक रीफ़्रेश रेट (जैसे, स्मूद डिसप्ले) के हिसाब से, UiObject2 मोशन इवेंट के बीच के इंतज़ार का समय अपडेट किया गया (I43f12).
  • सुलभता कैश मेमोरी (I3be25) को समय-समय पर अमान्य करके, कुछ यूज़र इंटरफ़ेस (यूआई) पर सुलभता नोड के पुराने होने की वजह से होने वाली समस्याओं को कम किया गया.
  • पुराने UiObject2 पर toString या hashCode को कॉल करते समय होने वाली StaleObjectException गड़बड़ियों को ठीक किया गया. (I38ea1).
  • ज़रूरी न होने वाले waitForIdle कॉल को स्किप करके, UiWatcher की परफ़ॉर्मेंस को बेहतर बनाया. (I8c65e).
  • javadoc में मौजूद गड़बड़ियों को ठीक किया गया. खास तौर पर, यह बताने के लिए कि हर Configurator पैरामीटर का इस्तेमाल कब किया जाता है. (Ie10b1, I71631).

वर्शन 2.3.0

वर्शन 2.3.0

21 फ़रवरी, 2024

androidx.test.uiautomator:uiautomator:2.3.0 रिलीज़ हो गया है. 2.3.0 वर्शन में ये बदलाव शामिल हैं.

2.2.0 के बाद किए गए ज़रूरी बदलाव

  • मल्टी-डिसप्ले की सुविधा: एक से ज़्यादा डिसप्ले पर ऑब्जेक्ट ढूंढने और उन पर काम करने की सुविधा जोड़ी गई है. साथ ही, UiDevice सेकंडरी डिसप्ले मैनेज करने के तरीके (Ie6544, I912cd) जोड़े गए हैं.
  • नए सिलेक्टर:
    • ऑब्जेक्ट को उनके डिसप्ले आईडी (I1825b) के हिसाब से चुनने के लिए, By.displayId जोड़ा गया.
    • ऑब्जेक्ट को उनके पैरंट के हिसाब से चुनने के लिए, By.hasParent और By.hasAncestor जोड़े गए (I93c36).
    • ऑब्जेक्ट के हिंट टेक्स्ट (Idd345) के हिसाब से उन्हें चुनने के लिए, By.hint तरीके जोड़े गए हैं.
  • कस्टम शर्तें: इंतज़ार करने की कस्टम शर्तों के साथ काम करने के लिए, Condition इंटरफ़ेस जोड़ा गया. साथ ही, उससे जुड़े UiDevice#wait, UiObject2#wait, और UiObject2#scrollUntil तरीके (27c0ea, 099d6e) जोड़े गए.
  • गड़बड़ियां ठीक करना और भरोसेमंद बनाना
    • डिसप्ले साइज़ का हिसाब लगाने में कभी-कभी गड़बड़ी होने और स्क्रीन के कुछ हिस्सों को अनदेखा करने की समस्या को ठीक किया गया है (Ifc016). टेस्ट में इस्तेमाल किए गए निर्देशांक और ऑफ़सेट में बदलाव करना पड़ सकता है.
    • सटीक जानकारी देने के लिए, MotionEvent इंजेक्शन को अपडेट किया गया (678ca3). साथ ही, उपयोगकर्ता के जेस्चर को बेहतर तरीके से एमुलेट करने के लिए भी इसे अपडेट किया गया (454450).
    • स्क्रोल (I7b059), रोटेशन (c6cea0), लंबे क्लिक (49572b), पिंच (3c619a) वगैरह की परफ़ॉर्मेंस को बेहतर बनाया गया है.

वर्शन 2.3.0-rc01

7 फ़रवरी, 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01 को बिना किसी बदलाव के रिलीज़ किया जाता है. 2.3.0-rc01 वर्शन में ये बदलाव शामिल हैं.

वर्शन 2.3.0-beta01

13 दिसंबर, 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 रिलीज़ हो गया है. 2.3.0-beta01 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • UiObject2 प्रतिशत पर आधारित मार्जिन के तरीकों को setGestureMarginPercentage और setGestureMarginsPercentage नाम दिया गया, ताकि वे एक जैसे हों (I24435)

गड़बड़ियां ठीक की गईं

  • सेकंडरी डिसप्ले न मिलने या उस पर ऐक्सेस न हो पाने पर मिलने वाली गड़बड़ी को बेहतर बनाया गया (116b23)

वर्शन 2.3.0-alpha05

1 नवंबर, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 रिलीज़ हो गया है. 2.3.0-alpha05 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ड्रॉइंग के क्रम (z-index) की जानकारी दिखाने के लिए, UiObject2#getDrawingOrder जोड़ा गया. (I5dfa4).
  • सेकंडरी डिसप्ले के रोटेशन को पाने, सेट करने, फ़्रीज़ करने, और अनफ़्रीज़ करने के लिए, UiDevice तरीके जोड़े गए हैं. (I912cd).

गड़बड़ियां ठीक की गईं

  • स्क्रोल करने की प्रोसेस खत्म होने का पता न चलने पर, UiObject2#scrollUntil में 'फिर से कोशिश करें' सुविधा जोड़ी गई (Ibac6f).
  • UiDevice को फिर से बनाने पर, Instrumentation के पुराने इंस्टेंस का इस्तेमाल करने से जुड़ी समस्या को ठीक किया गया (I18cae).
  • अगर नोड (Icafcb) को डंप करते समय डिसप्ले आईडी का पता नहीं चल पाता है, तो एनपीई (नल से पॉइंटर) की संभावित गड़बड़ी को ठीक किया गया है.
  • क्लिक न किए जा सकने वाले/स्क्रोल न किए जा सकने वाले ऑब्जेक्ट (I4a5d9) पर क्लिक/स्क्रोल करने पर चेतावनी जोड़ी गई.
  • भरोसे को बेहतर बनाने के लिए, डिफ़ॉल्ट UiObject2 स्क्रोल स्पीड को कम किया गया (I5e071).

वर्शन 2.3.0-alpha04

26 जुलाई, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 रिलीज़ हो गया है. 2.3.0-alpha04 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • पैरंट के हिसाब से ऑब्जेक्ट ढूंढने की सुविधा जोड़ी गई है. इसके लिए, By.hasParent और By.hasAncestor जोड़े गए हैं (I93c36).
  • किसी ऑब्जेक्ट के हिंट टेक्स्ट को वापस पाने के लिए UiObject2#getHint और उसके हिंट टेक्स्ट (Idd345) के हिसाब से ऑब्जेक्ट चुनने के लिए By.hint तरीके जोड़े गए.
  • ऑब्जेक्ट को उस डिसप्ले के हिसाब से चुनने के लिए, By.displayId जोड़ा गया है जिस पर वे मौजूद हैं (I1825b).
  • किसी डिसप्ले के आईडी (Ie6544) के हिसाब से उसके डाइमेंशन ढूंढने के लिए, UiDevice#getDisplayHeight(int) और UiDevice#getDisplayWidth(int) तरीके जोड़े गए हैं.
  • पुराने सिस्टम के साथ काम करने की सुविधा के लिए, wait(SearchCondition, long) और wait(UiObject2Condition, long) के तरीके फिर से जोड़े गए (Iebfda).
  • UiDevice#executeShellCommand को 'छिपाया गया' के बजाय 'सार्वजनिक' के तौर पर सेट किया गया (Ic48a1).

गड़बड़ियां ठीक की गईं

  • MotionEvent इंजेक्शन को अपडेट किया गया है, ताकि जेस्चर की सटीक जानकारी को प्राथमिकता देकर, ऐप्लिकेशन के काम न करने की समस्या को कम किया जा सके (678ca3).
  • परफ़ॉर्मेंस की समस्याओं की पहचान करने के लिए, ज़्यादा संसाधनों वाले तरीकों में ट्रैकिंग जोड़ी गई (d17de3).
  • UiAutomation कनेक्शन शुरू करते समय, फिर से कोशिश करने की सुविधा जोड़ी गई है (048caf).
  • UiDevice#dumpWindowHierarchy (b725eb) में, शून्य नोड से होने वाले संभावित एनपीई को ठीक किया गया.
  • निजी डिसप्ले (985db6, 7053d4) पर क्वेरी करने या उन पर काम करने से होने वाली अनचाही गड़बड़ियों को ठीक किया गया.

वर्शन 2.3.0-alpha03

19 अप्रैल, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 रिलीज़ हो गया है. 2.3.0-alpha03 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Until में पहले से मौजूद फ़ंक्शन के बजाय, कस्टम वेटिंग कंडीशन की अनुमति देने के लिए, Condition इंटरफ़ेस जोड़ा गया. साथ ही, इस इंटरफ़ेस को स्वीकार करने के लिए, UiDevice#wait और UiObject2#wait के तरीकों को अपडेट किया गया (27c0ea).
  • UiObject2#scrollUntil जोड़ा गया, ताकि शर्त पूरी होने तक स्क्रोल किया जा सके. साथ ही, UiScrollable (099d6e) के साथ पैरिटी हासिल की जा सके.
  • अलग-अलग तरह के डिवाइसों पर रोटेशन की सुविधा देने के लिए, UiDevice#setOrientationPortrait और setOrientationLandscape जोड़े गए (e13cb7).
  • ऑब्जेक्ट के साइज़ के हिसाब से मार्जिन सेट करने के लिए, UiObject2#setGestureMarginPercent जोड़ा गया. (Ib8c77)

गड़बड़ियां ठीक की गईं

  • SDK टूल 18 से 22 (b53ece) पर, अमान्य कोऑर्डिनेट का इस्तेमाल करने वाले UiScrollable तरीकों को ठीक किया गया.
  • SDK टूल के 18 और 19 वर्शन (77e41d) पर टेक्स्ट में बदलाव न होने की समस्या को ठीक किया गया.UiObject2#setTextclearText
  • UiWatcher को सही क्रम में लागू न करने की समस्या को ठीक किया गया (c85f92).
  • UiDevice ओरिएंटेशन में बदलाव करने के बाद, डिवाइस के रोटेशन की प्रोसेस पूरी न होने की समस्या को ठीक किया गया है (c6cea0).
  • लंबे समय तक क्लिक करने, खींचने, और पिंच करने की सुविधा को बेहतर बनाया गया है (49572b, 3c619a).

वर्शन 2.3.0-alpha02

11 जनवरी, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 रिलीज़ हो गया है. 2.3.0-alpha02 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ज़्यादा जानकारी देने, संभावित समस्याओं के बारे में चेतावनी देने, और एक जैसी सुविधाएं देने के लिए, लाइब्रेरी में लॉगिंग की सुविधा को फिर से तैयार किया गया है.
  • एक साथ कई बटन दबाने के लिए, UiDevice#pressKeyCodes जोड़ा गया. उदाहरण के लिए, स्क्रीनशॉट लेने के लिए POWER और VOLUME_DOWN बटन दबाना (22e525).
  • तरीके के नाम (4e2f65) में टाइपो ठीक करने के लिए, UiDevice#setCompressedLayoutHierarchy जोड़ा गया और UiDevice#setCompressedLayoutHeirarchy को हटा दिया गया.
  • UiAutomatorInstrumentationTestRunner को 'इस्तेमाल नहीं किया जा सकता' के तौर पर मार्क किया गया है, क्योंकि यह UiAutomatorTestCase को मैनेज करता है और अब इसकी ज़रूरत नहीं है (be6c85).
  • उपयोगकर्ता के जेस्चर को बेहतर तरीके से एमुलेट करने के लिए, UiObject2 MotionEvent के बीच के इंतज़ार को डिसप्ले के रीफ़्रेश रेट से दोगुना किया गया (454450).
  • एक से ज़्यादा लाइन वाले टेक्स्ट और ब्यौरे से मैच करने की सुविधा जोड़ी गई (1625e6, b/255787130).

गड़बड़ियां ठीक की गईं

  • ऑब्जेक्ट के लिए क्वेरी करते समय या उनकी प्रतीक्षा करते समय, कभी-कभी StaleObjectExceptions को ठीक किया जा रहा है (4cbcc0).
  • UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning, और flingToEnd की रिटर्न वैल्यू को ठीक किया गया, ताकि यह पता चल सके कि शुरुआत/आखिर में पहुंचा गया है या नहीं (d33e06).
  • कॉन्फ़िगर किए गए टाइम आउट (29e4f3) को अनदेखा करने वाले UiScrollable#scrollForward और scrollBackward तरीकों को ठीक किया गया.
  • BySelector कॉपी कॉन्स्ट्रक्टर, डीपथ सिलेक्टर को हैंडल नहीं कर रहा था (6c7b91). इसे ठीक कर दिया गया है.
  • UiObject#pinchIn और pinchOut (01b973) में, प्रतिशत की अमान्य वैल्यू को हैंडल करने की समस्या को ठीक किया गया.
  • एक ऐसी समस्या को ठीक किया गया है जो बहुत कम मामलों में होती है. इसमें, UiAutomation कनेक्शन को रीसेट करने पर, मल्टी-विंडो मोड काम नहीं करता था (1bb956).

वर्शन 2.3.0-alpha01

7 सितंबर, 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 रिलीज़ हो गया है. 2.3.0-alpha01 वर्शन में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • सभी सार्वजनिक तरीकों के लिए, एनोटेट किया गया है कि वे शून्य हैं.
  • UiObject2 जेस्चर को आसान बनाने के लिए, MotionEvent इंजेक्शन को असाइनोक्रोनस मोड पर स्विच किया गया.
  • इंतज़ार के दौरान, पोलिंग इंटरवल को 1000 सेकंड से घटाकर 100 सेकंड कर दिया गया.
  • UiDevice#wakeUp और UiDevice#sleep को अपडेट किया गया है, ताकि KEYCODE_WAKEUP और KEYCODE_SLEEP का इस्तेमाल करके, उन डिवाइसों के लिए टास्क मैनेजर को चालू किया जा सके जिनमें पावर बटन काम नहीं करता.
  • UiObject2#getDisplayId जोड़ा गया. साथ ही, एक से ज़्यादा डिसप्ले पर ऑब्जेक्ट ढूंढने और मैनेज करने की सुविधा जोड़ी गई.
  • निर्देशांक का इस्तेमाल करके किसी पॉइंट पर क्लिक करने के लिए, UiObject#click और UiObject2#clickAndWait तरीके जोड़े गए हैं.

गड़बड़ियां ठीक की गईं

  • डिसप्ले साइज़ का हिसाब लगाने में कभी-कभी गड़बड़ी होने और स्क्रीन के कुछ हिस्सों को अनदेखा करने की समस्या को ठीक किया गया है. ऐसा खास तौर पर मल्टी-विंडो मोड (Ifc016c) में होता है.
  • UiDevice#takeScreenshot (Id80ad6) में स्क्रीनशॉट की स्केलिंग की समस्या को ठीक किया गया.
  • Until.scrollFinished और UiObject2#scroll (I7b0595) की भरोसेमंदता को बेहतर बनाया गया.
  • स्ट्रिक्ट मोड IncorrectContextUseViolation से जुड़ी चेतावनियों को ठीक किया गया (Iffa6a0).