اختبار Uiautomator

  
إطار عمل لاختبار واجهة المستخدم متعددة التطبيقات
آخر تعديل الإصدار المستقر إصدار المرشح الإصدار التجريبي إصدار أولي
1 تشرين الثاني (نوفمبر) 2023 - - - 2.3.0-alpha05

إعلان التبعيات

لإضافة تبعية على الاختبار، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاجها في ملف build.gradle لتطبيقك أو الوحدة:

رائع

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

لغة Kotlin

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

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجع وثائق "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.

الإصدار 2.3.0

الإصدار 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).