تست خودکار رابط کاربری
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۳ دسامبر ۲۰۲۵ | ۲.۳.۰ | - | - | ۲.۴.۰-آلفا۰۷ |
اعلام وابستگیها
برای افزودن یک وابستگی به test، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven گوگل را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha07" }
کاتلین
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha07") }
برای اطلاعات بیشتر در مورد وابستگیها، به «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
تست پوسته UIAutomator نسخه ۱.۰
نسخه ۱.۰.۰-آلفا۰۳
۳ دسامبر ۲۰۲۵
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 شامل این کامیتها است.
تغییرات API
- تغییر در
startActivitywait برای انتظار برای پنجره جدید ( I35da6 ، b/440021797 ) -
screenSizePixelدرRecorderCommandsبهروزرسانی شد ( If558c ، b/429173157 )
نسخه ۱.۰.۰-آلفا۰۲
۱۳ آگوست ۲۰۲۵
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیتها است.
نسخه ۱.۰.۰-آلفا۰۱
۱۸ ژوئن ۲۰۲۵
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 منتشر شد. نسخه 1.0.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- اولین نسخه آلفا از کتابخانه پوسته ui-automator برای اجرای دستورات پوسته به عنوان کاربر پوسته. این کتابخانه امکان خواندن stdout، stderr و نوشتن در stdin یک فرآیند sh که توسط پوسته راهاندازی شده است را فراهم میکند. در واقع، این
UiAutomation#executeShellCommandRweرا که در api 34 معرفی شده است، پشتیبانی میکند.
نسخه ۲.۴
نسخه ۲.۴.۰-آلفا۰۷
۳ دسامبر ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha07 منتشر شد. نسخه 2.4.0-alpha07 شامل این کامیتها است.
تغییرات API
- تغییر
startActivitywait برای انتظار برای پنجره جدید. این باعث میشود که راهاندازی بهطورکلی همزمان باشد و به نسخههای آینده Macrobenchmark اجازه میدهد تا تشخیص تکمیل راهاندازی را پیکربندی کنند. ( I35da6 ، Id6e6f ، b/440021797 ) - API بدون نام بستهی صریح در
UiAutomatorTestScopeحذف شد. ( I8c285 ، b/413417205 )
نسخه ۲.۴.۰-alpha06
۱۳ آگوست ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 منتشر شد. نسخه 2.4.0-alpha06 شامل این کامیتها است.
ویژگیهای جدید
- APIهای مبتنی بر پنجره برای بهبود تست چند پنجرهای اضافه شدهاند، یعنی اکنون میتوان از
UiDevice#findWindowبرای یافتن یکUiWindowخاص طبقByWindowSelectorساخته شده با متدهای کارخانهایBy.Windowاستفاده کرد. ( I359c4 ، I40528 ، I8c963 )
نسخه ۲.۴.۰-آلفا۰۵
۱۸ ژوئن ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 منتشر شد. نسخه 2.4.0-alpha05 شامل این کامیتها است.
تغییرات API
-
UiObject2#waitForStableبه عنوان میانبر برایUiObject2#accessibilityNodeInfo#waitForStable()اضافه شد.
نسخه ۲.۴.۰-آلفا۰۴
۴ ژوئن ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 منتشر شد. نسخه 2.4.0-alpha04 شامل این کامیتها است.
تغییرات API
- برای روشن شدن نحوهی کار با compose ( I53a3b , b/419006806 ) نام
onViewبهonElementتغییر داده شد.
رفع اشکالات
- رفع خطای
waitForStableInActiveWindow( 290457f1 ، b/420349130 )
نسخه ۲.۴.۰-آلفا۰۳
۲۰ مه ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 منتشر شد. نسخه 2.4.0-alpha03 شامل این کامیتها است.
رفع اشکالات
- رفع مشکل ارسال NPE در برخی موارد از طریق
waitForStableInActiveWindow( Ibf50f ، b/417046391 )
نسخه ۲.۴.۰-آلفا۰۲
۷ مه ۲۰۲۵
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 منتشر شد. نسخه 2.4.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- شکل اولیهی رابط برنامهنویسی کاربردی جدید
Uiautomator.UiAutomatorTestScopeمیتوان از طریق factoryuiAutomatorایجاد کرد که به رابطهایonViewجدید onView دسترسی میدهد. - قوانین اولیه Lint برای هشدار در مورد استفاده از
AccessibilityNodeInfo#getTextو پیشنهاد استفاده ازtextAsString.
تغییرات API
- برای تنظیم شناسه نمایش جهت محدود کردن همه جستجوها به ( Icdf17 )،
Configurator#setDefaultDisplayIdاضافه شد. - برای راحتی،
Searchable(رابط کاربری مشترکUiDeviceوUiObject2) به public ( I67f18 ) تغییر یافت.
رفع اشکالات
- مدیریت کلیدهای متا در
UiDevice#pressKeyCodes( I73f80 ) اصلاح شد. -
UiDevice#getWindowRootsبهروزرسانی شد تا همیشه ریشهها را به ترتیب Z ( I87426 ) برگرداند. - مشکلی که باعث میشد برخی از حرکات ( I60dd3 ، If4edd ) ناقص اجرا شوند، برطرف شد.
- رفع مشکل حلقه بینهایت نادر هنگام فراخوانی
UiDevice#scrollUntil( I39989 ).
نسخه ۲.۴.۰-آلفا۰۱
۲۶ ژوئن ۲۰۲۴
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 منتشر شد. نسخه 2.4.0-alpha01 شامل این کامیتها است.
تغییرات API
- پارامترهای
Configurator#getKeyInjectionDelayوsetKeyInjectionDelayکه منسوخ شدهاند، اکنون بدون استفاده هستند و متن همیشه مستقیماً و نه با فشردن کلید تزریق میشود ( I3bcc5 ).
رفع اشکالات
- تأخیر بین رویدادهای حرکتی
UiObject2بهروزرسانی شد تا نرخهای بهروزرسانی پویا (یعنی نمایش روان) در نظر گرفته شوند ( I43f12 ). - با نامعتبر کردن دورهای حافظه پنهان دسترسی ( I3be25 )، پوستهپوسته شدن ناشی از کهنه شدن گره دسترسی در رابطهای کاربری خاص کاهش یافت.
- خطای
StaleObjectExceptionکه هنگام فراخوانیtoStringیاhashCodeروی یکUiObject2قدیمی ( I38ea1 ) رخ میداد، برطرف شد. - بهبود عملکرد
UiWatcherبا حذف فراخوانیهای غیرضروریwaitForIdle( I8c65e ). - خطاهای javadoc برطرف شد، به خصوص برای روشن شدن زمان استفاده از هر پارامتر
Configurator( Ie10b1 ، I71631 ).
نسخه ۲.۳.۰
نسخه ۲.۳.۰
۲۱ فوریه ۲۰۲۴
androidx.test.uiautomator:uiautomator:2.3.0 منتشر شد. نسخه 2.3.0 شامل این کامیتها است.
تغییرات مهم از زمان ۲.۲.۰
- پشتیبانی از چند نمایشگر : پشتیبانی از یافتن و کار با اشیاء در چندین نمایشگر و متدهای
UiDeviceبرای مدیریت نمایشگرهای ثانویه ( Ie6544 ، I912cd ) اضافه شده است. - انتخابگرهای جدید :
- شرایط سفارشی : یک رابط
Conditionبرای پشتیبانی از شرایط انتظار سفارشی ارائه شده است و متدهایUiDevice#wait،UiObject2#waitوUiObject2#scrollUntilمربوطه ( 27c0ea ، 099d6e ) اضافه شده است. - رفع اشکالات و قابلیت اطمینان
- مشکلی که باعث میشد محاسبات اندازه صفحه نمایش گاهی اوقات نادرست باشد و ممکن است بخشهایی از صفحه را نادیده بگیرد ( Ifc016 ) برطرف شد. مختصات و فاصلههای استفاده شده در آزمایشها ممکن است نیاز به تنظیم داشته باشند.
- تزریق
MotionEventبهروزرسانی شد تا دقت ( 678ca3 ) بهبود یابد و حرکات کاربر ( 454450 ) بهتر شبیهسازی شوند. - قابلیت اطمینان اسکرولها ( I7b059 )، چرخشها ( c6cea0 )، کلیکهای طولانی ( 49572b )، نیشگونها ( 3c619a ) و موارد دیگر بهبود یافته است.
نسخه ۲.۳.۰-rc01
۷ فوریه ۲۰۲۴
androidx.test.uiautomator:uiautomator:2.3.0-rc01 بدون هیچ تغییری منتشر شده است. نسخه 2.3.0-rc01 شامل این کامیتها است.
نسخه ۲.۳.۰-بتا۰۱
۱۳ دسامبر ۲۰۲۳
androidx.test.uiautomator:uiautomator:2.3.0-beta01 منتشر شد. نسخه 2.3.0-beta01 شامل این کامیتها است.
تغییرات API
- برای سازگاری، نام متدهای حاشیه مبتنی بر درصد
UiObject2را بهsetGestureMarginPercentageوsetGestureMarginsPercentageتغییر داد ( I24435 )
رفع اشکالات
- خطایی که هنگام عدم یافتن یا عدم دسترسی به نمایشگر ثانویه رخ میداد، بهبود یافت ( 116b23 )
نسخه ۲.۳.۰-آلفا۰۵
۱ نوامبر ۲۰۲۳
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 منتشر شد. نسخه 2.3.0-alpha05 شامل این کامیتها است.
تغییرات API
- برای نمایش اطلاعات ترتیب ترسیم (z-index)،
UiObject2#getDrawingOrderاضافه شد ( I5dfa4 ). - متدهای
UiDeviceبرای دریافت، تنظیم، فریز کردن و رفع فریز چرخش نمایشگرهای ثانویه اضافه شد. ( I912cd ).
رفع اشکالات
- تلاش مجدد به
UiObject2#scrollUntilاضافه شد، زمانی که پایان پیمایش قابل تشخیص نبود ( Ibac6f ). - مشکلی که باعث میشد
UiDeviceدر صورت بازسازی یک نمونهInstrumentationقدیمی ( I18cae ) از آن استفاده کند، برطرف شد. - مشکل NPE احتمالی در صورتی که شناسه نمایش هنگام آزادسازی گرهها قابل تعیین نبود ( Icafcb ) برطرف شد.
- هشدار هنگام کلیک/اسکرول روی اشیاء غیرقابل کلیک/اسکرول ( I4a5d9 ) اضافه شد.
- سرعت اسکرول پیشفرض
UiObject2برای بهبود قابلیت اطمینان کاهش یافت ( I5e071 ).
نسخه ۲.۳.۰-آلفا۰۴
۲۶ ژوئیه ۲۰۲۳
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 منتشر شد. نسخه 2.3.0-alpha04 شامل این کامیتها است.
تغییرات API
- اضافه شدن
By.hasParentوBy.hasAncestorبرای پشتیبانی از یافتن اشیاء بر اساس والدینشان ( I93c36 ). -
UiObject2#getHintبرای بازیابی متن راهنمای یک شیء و متدهایBy.hintبرای انتخاب اشیاء بر اساس متن راهنمای آنها ( Idd345 ) اضافه شد. - برای پشتیبانی از انتخاب اشیاء بر اساس نمایشگری که روی آن هستند ( I1825b )،
By.displayIdاضافه شد. - متدهای
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 ) برطرف شد.
نسخه ۲.۳.۰-آلفا۰۳
۱۹ آوریل ۲۰۲۳
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 منتشر شد. نسخه 2.3.0-alpha03 شامل این کامیتها است.
تغییرات API
- یک رابط
Conditionارائه شده است تا به جای تکیه صرف بر شرایط داخلیUntil، امکان ایجاد شرایط انتظار سفارشی را فراهم کند و متدهایUiDevice#waitوUiObject2#waitرا برای پذیرش این رابط بهروزرسانی کرده است ( 27c0ea ). -
UiObject2#scrollUntilبرای پشتیبانی از پیمایش تا زمان برآورده شدن یک شرط و رسیدن به برابری باUiScrollable( 099d6e ) اضافه شد. - برای تسهیل چرخشها در انواع دستگاهها ( e13cb7 )
UiDevice#setOrientationPortraitوsetOrientationLandscapeاضافه شد. - برای پشتیبانی از تنظیم حاشیهها نسبت به اندازه شیء
UiObject2#setGestureMarginPercentاضافه شد. ( Ib8c77 )
رفع اشکالات
- رفع مشکل استفاده گاه به گاه متدهای
UiScrollableاز مختصات نامعتبر در SDK های 18 تا 22 ( b53ece ). - رفع مشکل عدم تغییر متن
UiObject2#setTextوclearTextدر SDK های نسخه ۱۸ و ۱۹ ( 77e41d ). - رفع مشکل عدم اجرای
UiWatcherها به ترتیب صحیح ( c85f92 ). - مشکلی که باعث میشد چرخش دستگاه پس از تغییر جهت
UiDevice( c6cea0 ) هنوز کامل نشده باشد، برطرف شد. - بهبود قابلیت اطمینان کلیکهای طولانی، کشیدن و رها کردن ( 49572b ، 3c619a ).
نسخه ۲.۳.۰-آلفا۰۲
۱۱ ژانویه ۲۰۲۳
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 منتشر شد. نسخه 2.3.0-alpha02 شامل این کامیتها است.
تغییرات API
- برای ارائه اطلاعات بیشتر، هشدار در مورد مشکلات احتمالی و بهبود ثبات، ثبت وقایع در سراسر کتابخانه مجدداً اصلاح شد.
-
UiDevice#pressKeyCodesبرای پشتیبانی از فشار دادن همزمان چندین کلید، مثلاً فشار دادن POWER و VOLUME_DOWN برای گرفتن اسکرین شات ( 22e525 ) اضافه شد. - برای رفع اشتباه تایپی در نام متد ( 4e2f65 )،
UiDevice#setCompressedLayoutHierarchyاضافه وUiDevice#setCompressedLayoutHeirarchyمنسوخ شد. -
UiAutomatorInstrumentationTestRunnerبه عنوان منسوخ علامتگذاری شده است زیراUiAutomatorTestCaseهای منسوخ شده را مدیریت میکند و دیگر لازم نیست ( be6c85 ). - تأخیر بین
UiObject2MotionEventبه دو برابر نرخ تازهسازی صفحه نمایش بهروزرسانی شد تا حرکات کاربر بهتر شبیهسازی شوند ( ۴۵۴۴۵۰ ). - پشتیبانی از تطبیق متن و توضیحات چندخطی اضافه شد ( 1625e6 ، b/255787130 ).
رفع اشکالات
- رفع خطای
StaleObjectExceptionکه گاهی اوقات هنگام پرس و جو یا انتظار برای اشیاء ( 4cbcc0 ) رخ میداد. - اشکالی که باعث میشد مقادیر برگشتی
UiScrollable#scrollToBeginning،scrollToEnd،flingToBeginningوflingToEndنشان دهندهی رسیدن به ابتدا/انتها نباشند، برطرف شد ( d33e06 ). - رفع مشکل نادیده گرفتن زمانبندی پیکربندیشده برای متدهای
UiScrollable#scrollForwardوscrollBackward( 29e4f3 ). - مشکل عدم مدیریت انتخابگرهای عمق توسط سازنده کپی
BySelectorبرطرف شد ( 6c7b91 ). - رفع مشکل مدیریت مقادیر درصد نامعتبر در
UiObject#pinchInوpinchOut( 01b973 ). - مشکل نادری که در آن پشتیبانی از چند پنجره در صورت ریست شدن اتصال
UiAutomationاصلی از بین میرفت ( 1bb956 ) برطرف شد.
نسخه ۲.۳.۰-آلفا۰۱
۷ سپتامبر ۲۰۲۲
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 منتشر شد. نسخه 2.3.0-alpha01 شامل این کامیتها است.
تغییرات API
- تهی بودن همه متدهای عمومی را حاشیهنویسی کرد.
- تزریق
MotionEventبا کمی تأخیر به حالت ناهمزمان تغییر داده شد تا حرکاتUiObject2روانتر شوند. - فاصله زمانی رایگیری در حین انتظار از ۱۰۰۰ میلیثانیه به ۱۰۰ میلیثانیه کاهش یافت.
-
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 ).