اختبار أداة Uiautomator
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
26 يونيو 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
إعلان التبعيات
لإضافة تبعية إلى الاختبار، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.
أضِف العناصر الاعتمادية الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle
لتطبيقك أو وحدتك:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. أخبرنا إذا اكتشفت مشكلات جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجِع مستندات "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.
الإصدار 2.4
الإصدار 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). - تم إصلاح مشكلة تعذُّر تعديل النص في
UiObject2#setText
وclearText
في حزمتَي تطوير البرامج (SDK) 18 و19 (77e41d). - تم إصلاح
UiWatcher
s لا يتم تنفيذها بالترتيب الصحيح (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
أكثر سلاسة. - تم تقليل الفاصل الزمني للاستطلاع أثناء الانتظار من 1,000 إلى 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).