اختبار Uiautomator
آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأولي |
---|---|---|---|---|
7 أيار (مايو) 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
تحديد التبعيات
لإضافة تبعية على الاختبار، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
Groovy
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
يمكن إنشاءUiAutomatorTestScope
من خلال المصنعuiAutomator
الذي يتيح الوصول إلى واجهات برمجة التطبيقاتonView
الجديدة. - قواعد Lint الأولية للتحذير من استخدام
AccessibilityNodeInfo#getText
واقتراح استخدامtextAsString
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
Configurator#setDefaultDisplayId
لضبط رقم تعريف معروض لحصر جميع عمليات البحث على (Icdf17). - تم تغيير
Searchable
(الواجهة المشتركة بينUiDevice
وUiObject2
) إلى واجهة عامة للتيسير (I67f18).
إصلاح الأخطاء
- تم إصلاح معالجة مفاتيح Meta في
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).
- تم إصلاح
StaleObjectException
التي تحدث عند الاتصال بـtoString
أوhashCode
باستخدامUiObject2
قديم. (I38ea1). - تحسين أداء
UiWatcher
من خلال تخطّي طلباتwaitForIdle
غير الضرورية (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). - أداة اختيار جديدة:
- الشروط المخصّصة: تمّ عرض واجهة
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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
UiObject2#getDrawingOrder
لعرض معلومات ترتيب الرسم (فهرس z). (I5dfa4). - تمت إضافة
UiDevice
طريقة للحصول على ميزة دوران الشاشات الثانوية وضبطها وتجميدها وإلغاء تجميدها. (I912cd).
إصلاح الأخطاء
- تمت إضافة إعادة المحاولة إلى
UiObject2#scrollUntil
عندما يتعذّر رصد نهاية الانتقال للأعلى أو للأسفل (Ibac6f). - تم إصلاح المشكلة التي كانت تؤدي إلى استخدام
UiDevice
لنسخة قديمة منInstrumentation
في حال إعادة إنشائها (I18cae). - تم إصلاح خطأ NPE محتمل في حال تعذّر تحديد معرّف العرض عند تفريغ العقد (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
لاسترداد نص التلميح الخاص بالعنصر، وBy.hint
لاختيار العناصر وفقًا لنص التلميح (Idd345). - تمت إضافة
By.displayId
للسماح باختيار العناصر حسب الشاشة التي تظهر عليها (I1825b). - تمت إضافة الطريقتَين
UiDevice#getDisplayHeight(int)
وUiDevice#getDisplayWidth(int)
للعثور على أبعاد شاشة حسب رقم تعريفها (Ie6544). - تمت إعادة إضافة الطريقتَين
wait(SearchCondition, long)
وwait(UiObject2Condition, long)
للحفاظ على التوافق مع الإصدارات السابقة (Iebfda). - تم تغيير
UiDevice#executeShellCommand
إلى متاح للجميع ولكن يُنصح بعدم استخدامه بدلاً من مخفي (Ic48a1).
إصلاح الأخطاء
- تم تعديل عملية إدخال
MotionEvent
للحدّ من عدم الثبات من خلال إعطاء الأولوية لدقة الإيماءات على السرعة (678ca3). - تمت إضافة التتبّع إلى الطرق التي تستهلك الكثير من الموارد لتحديد العوامل التي تؤثّر سلبًا في الأداء (d17de3).
- تمت إضافة آلية إعادة المحاولة عند بدء اتصال UiAutomation (048caf).
- تم إصلاح خطأ NPE محتمل من العقد الخالية في
UiDevice#dumpWindowHierarchy
(b725eb). - تمّ إصلاح أخطاء غير متوقّعة من طلب البيانات أو إجراء عمليات على شاشات خاصة (985db6، 7053d4).
الإصدار 2.3.0-alpha03
19 نيسان (أبريل) 2023
تم إصدار androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. يحتوي الإصدار 2.3.0-alpha03 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمّ عرض واجهة
Condition
للسماح بشروط الانتظار المخصّصة بدلاً من الاعتماد فقط على الشروط المضمّنة فيUntil
، وتم تعديل الطريقتَينUiDevice#wait
وUiObject2#wait
لقبول هذه الواجهة (27c0ea). - تمت إضافة
UiObject2#scrollUntil
لإتاحة الانتقال للأعلى أو للأسفل إلى أن يتم استيفاء شرط معيّن، ولتحقيق التكافؤ معUiScrollable
(099d6e). - تمت إضافة
UiDevice#setOrientationPortrait
وsetOrientationLandscape
لتسهيل عمليات التدوير على مستوى أنواع الأجهزة (e13cb7). - تمت إضافة
UiObject2#setGestureMarginPercent
للسماح بضبط الهوامش بالنسبة إلى حجم الكائن. (Ib8c77)
إصلاح الأخطاء
- تم إصلاح طرق
UiScrollable
التي تستخدم أحيانًا إحداثيات غير صالحة في حِزم SDK من 18 إلى 22 (b53ece). - تم إصلاح مشكلة تعذُّر تعديل النص في حِزم تطوير البرامج (SDK) 18 و19 من خلال
UiObject2#setText
وclearText
(77e41d). - تمّ إصلاح عدم تنفيذ
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). - تمت إضافة
UiDevice#setCompressedLayoutHierarchy
وإيقافUiDevice#setCompressedLayoutHeirarchy
نهائيًا لإصلاح خطأ إملائي في اسم الطريقة (4e2f65). - تم وضع علامة على
UiAutomatorInstrumentationTestRunner
تشير إلى أنّه تم إيقافه نهائيًا لأنّه يتعامل معUiAutomatorTestCase
التي تم إيقافها نهائيًا ولم تعُد ضرورية (be6c85). - تم تعديل المدة الزمنية بين
UiObject2
MotionEvent
لتكون ضعف معدل تحديث الشاشة من أجل محاكاة إيماءات المستخدم بشكل أفضل (454450). - تمت إضافة ميزة مطابقة النصوص والأوصاف المتعدّدة الأسطر (1625e6 وb/255787130).
إصلاح الأخطاء
- تم إصلاح ظهور أخطاء
StaleObjectException
في بعض الأحيان أثناء طلب البيانات أو انتظار ظهور العناصر (4cbcc0). - تم إصلاح قيم العرض
UiScrollable#scrollToBeginning
وscrollToEnd
وflingToBeginning
وflingToEnd
التي لا تشير إلى ما إذا تم الوصول إلى البداية أو النهاية (d33e06). - تم إصلاح الطريقتَين
UiScrollable#scrollForward
وscrollBackward
اللتين تتجاهلان المهلة المحدّدة (29e4f3). - تم إصلاح مشكلة عدم معالجة دالة إنشاء النُسخ من
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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمّت إضافة تعليقات توضيحية حول قيمة فارغة لجميع الطرق العامة.
- تم تبديل ميزة حقن
MotionEvent
إلى وضع غير متزامن مع تأخير قصير لإيماءاتUiObject2
أكثر سلاسة. - تم تقليل فاصل الاستطلاع أثناء الانتظار من 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).