اختبار Uiautomator
التعديل الأخير | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | إصدار ألفا |
---|---|---|---|---|
21 شباط (فبراير) 2024 | 2.3.0 | - | - | - |
إعلان التبعيات
لإضافة تبعية على الاختبار، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو الوحدة الخاصة بك:
رائع
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.3.0" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0") }
لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 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
التي لا يتم تنفيذها بالترتيب الصحيح (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).