Uiautomator'ı test etme
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 17 Haziran 2026 | 2.3.0 | 2.4.0-rc01 | - | - |
Bağımlılıkları bildirme
Test için bağımlılık eklemek üzere Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-rc01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-rc01") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Test Uiautomator Shell Sürümü 1.0
Sürüm 1.0.0-alpha03
3 Aralık 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
- Yeni pencereyi beklemek için
startActivitybekleme süresi değiştirildi (I35da6, b/440021797) screenSizePixel,RecorderCommands'te güncellendi (If558c, b/429173157)
Sürüm 1.0.0-alpha02
13 Ağustos 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.
Sürüm 1.0.0-alpha01
18 Haziran 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- Kabuk komutlarını kabuk kullanıcısı olarak yürütmek için ui-automator kabuk kitaplığının ilk alfa sürümü. Bu kitaplık, kabuk tarafından başlatılan bir sh sürecinin stdout, stderr'ını okumaya ve stdin'ine yazmaya olanak tanır. Fiilen, API 34'te kullanıma sunulan
UiAutomation#executeShellCommandRwegeri taşınır.
Sürüm 2.4
Sürüm 2.4.0-rc01
17 Haziran 2026
androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 ve androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01 yayınlandı. 2.4.0-rc01 sürümü bu commit'leri içerir.
Sürüm 2.4.0-beta02
11 Mart 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta02 ve androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02 yayınlandı. 2.4.0-beta02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
nulldöndürmek yerineUiObject2#scrollToElementOrNullatma sorunu düzeltildi ve dönüş türü güncellendi (If0109, b/479892735)
Sürüm 2.4.0-beta01
11 Şubat 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta01 ve androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Durumsuz komutları tekil örnekler haline getirin. (I3394c, b/429173157)
RecorderCommandsAPI'sini güncelleyin. (Ie09e8, b/429173157)RecorderCommandsAPI'nin yaşam döngüsünü iyi tanımlanmış hale getirmek için basitleştirin. (I30f89, b/444305673)
Sürüm 2.4.0-alpha07
3 Aralık 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha07 iptal edilir. 2.4.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
startActivitybekleme süresi, yeni pencereyi bekleyecek şekilde değiştirildi. Bu, başlatma işlemini genel olarak senkron hale getirir ve Macrobenchmark'ın gelecekteki sürümlerinin başlatma işleminin tamamlanma algılamasını yapılandırmasına olanak tanır. (I35da6, Id6e6f, b/440021797)UiAutomatorTestScopeiçinde açık paket adı olmayan API kaldırıldı. (I8c285, b/413417205)
Sürüm 2.4.0-alpha06
13 Ağustos 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 iptal edilir. 2.4.0-alpha06 sürümü bu commit'leri içerir.
Yeni Özellikler
- Geliştirilmiş çok pencereli test için pencere tabanlı API'ler eklendi. Örneğin,
UiDevice#findWindowartıkBy.Windowfabrika yöntemleriyle oluşturulan birByWindowSelector'ye göre belirli birUiWindow'yi bulmak için kullanılabiliyor. (I359c4, I40528, I8c963)
Sürüm 2.4.0-alpha05
18 Haziran 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 iptal edilir. 2.4.0-alpha05 sürümü bu commit'leri içerir.
API Değişiklikleri
UiObject2#waitForStable,UiObject2#accessibilityNodeInfo#waitForStable()için kısayol olarak eklendi
Sürüm 2.4.0-alpha04
4 Haziran 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 iptal edilir. 2.4.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Yazma özelliğiyle çalıştığını netleştirmek için
onView,onElementolarak yeniden adlandırıldı (I53a3b, b/419006806)
Hata Düzeltmeleri
waitForStableInActiveWindowile ilgili sorunu düzeltin (290457f1, b/420349130)
Sürüm 2.4.0-alpha03
20 Mayıs 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 iptal edilir. 2.4.0-alpha03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Bazı durumlarda
waitForStableInActiveWindow'nın NPE oluşturması sorunu düzeltildi (Ibf50f, b/417046391).
Sürüm 2.4.0-alpha02
7 Mayıs 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 iptal edilir. 2.4.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Yeni
UiautomatorAPI'nin ilk şekli.UiAutomatorTestScope, yenionViewAPI'lerine erişim sağlayan fabrikauiAutomatoraracılığıyla oluşturulabilir. AccessibilityNodeInfo#getTextkullanımına ilişkin uyarı veren vetextAsStringkullanımını öneren ilk Lint kuralları.
API Değişiklikleri
- Tüm aramaları (Icdf17) ile sınırlamak için bir görüntüleme kimliği ayarlamak üzere
Configurator#setDefaultDisplayIdeklendi. - Kolaylık sağlamak için
Searchable(UiDeviceveUiObject2tarafından paylaşılan arayüz) herkese açık olarak değiştirildi (I67f18).
Hata Düzeltmeleri
UiDevice#pressKeyCodes'da meta anahtarların işlenmesi düzeltildi. (I73f80).UiDevice#getWindowRoots, kökleri her zaman Z sırasına göre döndürecek şekilde güncellendi (I87426).- Belirli hareketlerin eksik olmasına neden olan sorun düzeltildi (I60dd3, If4edd).
UiDevice#scrollUntil(I39989) aranırken nadiren oluşan sonsuz döngü hatası düzeltildi.
Sürüm 2.4.0-alpha01
26 Haziran 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 iptal edilir. 2.4.0-alpha01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Metin artık her zaman doğrudan eklenip tuş basılarak eklenmediğinden parametre kullanılmadığı için
Configurator#getKeyInjectionDelayvesetKeyInjectionDelayparametrelerinin desteği sonlandırıldı. (I3bcc5).
Hata Düzeltmeleri
- Dinamik yenileme hızlarını (ör. Smooth Display) hesaba katmak için
UiObject2hareket etkinlikleri arasındaki gecikme güncellendi (I43f12). - Erişilebilirlik önbelleğini düzenli olarak geçersiz kılarak belirli kullanıcı arayüzlerinde erişilebilirlik düğümünün eski olmasından kaynaklanan kararsızlık azaltıldı (I3be25).
- Eski bir
UiObject2üzerindetoStringveyahashCodeçağrılırken oluşanStaleObjectException'lar düzeltildi. (I38ea1). - Gereksiz
waitForIdleçağrıları atlanarakUiWatcherperformansı iyileştirildi. (I8c65e). - Javadoc'daki yanlışlıklar düzeltildi. Özellikle her
Configuratorparametresinin ne zaman kullanıldığını netleştirmek için değişiklikler yapıldı. (Ie10b1, I71631).
Sürüm 2.3.0
Sürüm 2.3.0
21 Şubat 2024
androidx.test.uiautomator:uiautomator:2.3.0 iptal edilir. 2.3.0 sürümü şu commit'leri içerir.
2.2.0 sürümünden beri yapılan önemli değişiklikler
- Çoklu ekran desteği: Birden fazla ekrandaki nesneleri bulma ve bu nesneler üzerinde işlem yapma desteği ile ikincil ekranları yönetme yöntemleri (Ie6544, I912cd) eklendi.
UiDevice - Yeni seçiciler:
- Özel koşullar: Özel bekleme koşullarını desteklemek için
Conditionarayüzü kullanıma sunuldu ve ilgiliUiDevice#wait,UiObject2#waitveUiObject2#scrollUntilyöntemleri eklendi (27c0ea, 099d6e). - Hata düzeltmeleri ve güvenilirlik
- Ekran boyutu hesaplamalarının bazen yanlış olmasına ve ekranın bazı bölümlerinin göz ardı edilmesine neden olan sorun düzeltildi (Ifc016). Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
- Doğruluğu artırmak (678ca3) ve kullanıcı hareketlerini daha iyi taklit etmek (454450) için
MotionEventekleme özelliği güncellendi. - Kaydırma (I7b059), döndürme (c6cea0), uzun tıklama (49572b), sıkıştırma (3c619a) ve diğer işlemlerin güvenilirliği artırıldı.
Sürüm 2.3.0-rc01
7 Şubat 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01, herhangi bir değişiklik yapılmadan yayınlanır. 2.3.0-rc01 sürümü şu commit'leri içerir.
Sürüm 2.3.0-beta01
13 Aralık 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01 iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Tutarlılık için
UiObject2yüzdelik tabanlı marj yöntemlerisetGestureMarginPercentagevesetGestureMarginsPercentageolarak yeniden adlandırıldı (I24435).
Hata Düzeltmeleri
- İkincil ekran bulunamadığında veya erişilemediğinde oluşan hata iyileştirildi (116b23).
Sürüm 2.3.0-alpha05
1 Kasım 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 iptal edilir. 2.3.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- Çizim sırası (z-index) bilgilerini göstermek için
UiObject2#getDrawingOrdereklendi. (I5dfa4). - İkincil ekranların dönüşünü almak, ayarlamak, dondurmak ve çözmek için
UiDeviceyöntemleri eklendi. (I912cd).
Hata Düzeltmeleri
- Kaydırmanın sonu algılanamadığında
UiObject2#scrollUntiliçin yeniden deneme özelliği eklendi (Ibac6f). UiDeviceyeniden oluşturulursa eski birInstrumentationörneğini kullanmasıyla ilgili sorun düzeltildi (I18cae).- Düğümler dökülürken ekran kimliği belirlenemezse olası NPE düzeltildi (Icafcb).
- Tıklanabilir/kaydırılabilir olmayan nesnelerde tıklama/kaydırma işlemi yapıldığında uyarı eklendi (I4a5d9).
- Güvenilirliği artırmak için varsayılan
UiObject2kaydırma hızı düşürüldü (I5e071).
Sürüm 2.3.0-alpha04
26 Temmuz 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 iptal edilir. 2.3.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Nesnelerin üst öğelerine göre bulunmasını desteklemek için
By.hasParentveBy.hasAncestoreklendi (I93c36). - Nesnenin ipucu metnini almak için
UiObject2#getHint, nesneleri ipucu metinlerine göre seçmek içinBy.hintyöntemleri (Idd345) eklendi. - Nesnelerin bulundukları ekrana göre seçilmesini desteklemek için
By.displayIdeklendi (I1825b). - Bir ekranın boyutlarını kimliğine (Ie6544) göre bulmak için
UiDevice#getDisplayHeight(int)veUiDevice#getDisplayWidth(int)yöntemleri eklendi. - Geriye dönük uyumluluk için
wait(SearchCondition, long)vewait(UiObject2Condition, long)yöntemleri yeniden eklendi (Iebfda). UiDevice#executeShellCommand, gizli yerine herkese açık ancak devre dışı olarak değiştirildi (Ic48a1).
Hata Düzeltmeleri
- Hızı değil, hareket doğruluğunu önceliklendirerek kararsızlığı azaltmak için
MotionEventekleme işlemi güncellendi (678ca3). - Performans sorunlarını belirlemek için kaynak açısından yoğun yöntemlere izleme eklendi (d17de3).
- UiAutomation bağlantısı başlatılırken yeniden deneme mekanizması eklendi (048caf).
UiDevice#dumpWindowHierarchyiçindeki boş düğümlerden kaynaklanan olası bir NPE düzeltildi (b725eb).- Özel ekranlarda sorgulama veya işlem yapmayla ilgili beklenmedik hatalar düzeltildi (985db6,7053d4).
Sürüm 2.3.0-alpha03
19 Nisan 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 iptal edilir. 2.3.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yalnızca
Untiliçindeki yerleşiklere güvenmek yerine özel bekleme koşullarına izin vermek için birConditionarayüzü kullanıma sunuldu veUiDevice#waitileUiObject2#waityöntemleri bu arayüzü kabul edecek şekilde güncellendi (27c0ea). - Bir koşul karşılanana kadar kaydırmayı desteklemek ve
UiScrollableile eşitliği sağlamak içinUiObject2#scrollUntileklendi (099d6e). - Cihaz türleri arasında rotasyonları kolaylaştırmak için
UiDevice#setOrientationPortraitvesetOrientationLandscapeeklendi (e13cb7). - Nesne boyutuna göre kenar boşlukları ayarlamayı desteklemek için
UiObject2#setGestureMarginPercenteklendi. (Ib8c77)
Hata Düzeltmeleri
- 18-22 numaralı SDK'larda
UiScrollableyöntemlerinin zaman zaman geçersiz koordinatlar kullanması sorunu düzeltildi (b53ece). UiObject2#setTextveclearText'nin 18 ve 19 numaralı SDK'larda metni değiştirememesi sorunu düzeltildi (77e41d).UiWatcherların doğru sırada yürütülmemesi sorunu düzeltildi (c85f92).UiDeviceyön değişikliğinden sonra cihaz döndürme işleminin henüz tamamlanmamış olabileceği sorun düzeltildi (c6cea0).- Uzun tıklamalar, sürüklemeler ve parmakla yakınlaştırmaların güvenilirliği artırıldı (49572b, 3c619a).
Sürüm 2.3.0-alpha02
11 Ocak 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Daha fazla bilgi sağlamak, olası sorunlar hakkında uyarmak ve tutarlılığı artırmak için kitaplık genelinde günlük kaydı yeniden düzenlendi.
- Aynı anda birden fazla tuşa basmayı desteklemek için
UiDevice#pressKeyCodeseklendi. Örneğin, ekran görüntüsü almak için GÜÇ ve SESİ_AZALTMA düğmelerine basma (22e525). - Yöntem adındaki yazım hatasını düzeltmek için
UiDevice#setCompressedLayoutHierarchyeklendi veUiDevice#setCompressedLayoutHeirarchydesteği sonlandırıldı (4e2f65). - Kullanımdan kaldırılmış
UiAutomatorTestCase'leri işlediği ve artık gerekli olmadığı içinUiAutomatorInstrumentationTestRunner, kullanımdan kaldırılmış olarak işaretlendi (be6c85). - Kullanıcı hareketlerini daha iyi taklit etmek için
UiObject2MotionEventarasındaki gecikme, ekran yenileme hızının iki katı olacak şekilde güncellendi (454450). - Çok satırlı metin ve açıklama eşleştirme desteği eklendi (1625e6, b/255787130).
Hata Düzeltmeleri
- Nesneler sorgulanırken veya beklenirken zaman zaman
StaleObjectExceptions hatası verilmesi sorunu düzeltildi (4cbcc0). - Başlangıca/sona ulaşılıp ulaşılmadığını belirtmeyen
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningveflingToEnddöndürülen değerleri düzeltildi (d33e06). - Yapılandırılan zaman aşımını yoksayan
UiScrollable#scrollForwardvescrollBackwardyöntemleri düzeltildi (29e4f3). BySelectorkopyalama oluşturucusunun derinlik seçicileri işlememesi (6c7b91) sorunu düzeltildi.UiObject#pinchInvepinchOutiçinde geçersiz yüzde değerlerinin işlenmesi düzeltildi (01b973).- Altta yatan
UiAutomationbağlantı sıfırlandığında (1bb956) çoklu pencere desteğinin kaybolduğu nadir bir sorun düzeltildi.
Sürüm 2.3.0-alpha01
7 Eylül 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 iptal edilir. 2.3.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Tüm genel yöntemlerin boşluk durumunu açıklama olarak ekledi.
- Daha akıcı
UiObject2hareketleri için kısa bir gecikmeyleMotionEventyerleştirme işlemi eşzamansız olarak değiştirildi. - Bekleme sırasında yoklama aralığı 1.000 ms'den 100 ms'ye düşürüldü.
- Güç düğmesini geçersiz kılan cihazları desteklemek için
UiDevice#wakeUpveUiDevice#sleep,KEYCODE_WAKEUPveKEYCODE_SLEEPkullanacak şekilde güncellendi. UiObject2#getDisplayIdsimgesi ve birden fazla ekranda nesne bulma ve yönetme desteği eklendi.- Koordinatlarını kullanarak bir noktayı tıklamak için
UiObject#clickveUiObject2#clickAndWaityöntemleri eklendi.
Hata Düzeltmeleri
- Ekran boyutu hesaplamalarının bazen yanlış olmasına ve ekranın bazı bölümlerinin (özellikle çok pencereli modda) yoksayılmasına neden olan sorun düzeltildi (Ifc016c).
UiDevice#takeScreenshot'daki ekran görüntülerinin ölçeklendirilmesi düzeltildi (Id80ad6).Until.scrollFinishedveUiObject2#scrollgüvenilirliği iyileştirildi (I7b0595).- Yüksek düzey modundaki
IncorrectContextUseViolationuyarıları düzeltildi (Iffa6a0).