Uiautomator'ı test etme
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
13 Ağustos 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
Bağımlılıkları bildirme
Teste bağımlılık eklemek için 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-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
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 olursa 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-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'sini okumaya ve stdin'ine yazmaya olanak tanır. Fiilen, API 34'te kullanıma sunulan
UiAutomation#executeShellCommandRwe
geri taşınır.
Sürüm 2.4
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#findWindow
artıkBy.Window
fabrika yöntemleriyle oluşturulan birByWindowSelector
'ye göre belirli birUiWindow
'yi bulmak için kullanılabilir. (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ü şu 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
onView
, oluşturma özelliğiyle çalıştığını netleştirmek içinonElement
olarak yeniden adlandırıldı (I53a3b, b/419006806)
Hata Düzeltmeleri
waitForStableInActiveWindow
ile 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
Uiautomator
API'nin ilk şekli.UiAutomatorTestScope
, yenionView
API'lerine erişim sağlayan fabrikauiAutomator
aracılığıyla oluşturulabilir. AccessibilityNodeInfo#getText
kullanımına ilişkin uyarı veren vetextAsString
kullanımını öneren ilk Lint kuralları.
API Değişiklikleri
- Tüm aramaları (Icdf17) ile kısıtlamak için
Configurator#setDefaultDisplayId
eklendi. - Kolaylık sağlamak için
Searchable
(UiDevice
veUiObject2
tarafından paylaşılan arayüz) herkese açık olarak değiştirildi (I67f18).
Hata Düzeltmeleri
UiDevice#pressKeyCodes
'da meta anahtarların işlenmesiyle ilgili sorun 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 yerleştirildiği için tuşlara basılarak yerleştirilmediğinden parametre kullanılmıyor. Bu nedenle
Configurator#getKeyInjectionDelay
vesetKeyInjectionDelay
parametrelerinin desteği sonlandırıldı. (I3bcc5).
Hata Düzeltmeleri
- Dinamik yenileme hızlarını (ör. Smooth Display) hesaba katmak için
UiObject2
hareket 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
'detoString
veyahashCode
aranırken oluşanStaleObjectException
sorunu düzeltildi. (I38ea1). - Gereksiz
waitForIdle
çağrıları atlayarakUiWatcher
performansı iyileştirildi. (I8c65e). - Javadoc'daki yanlışlıklar düzeltildi. Özellikle her
Configurator
parametresinin 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 bir
Condition
arayüzü kullanıma sunuldu ve ilgiliUiDevice#wait
,UiObject2#wait
veUiObject2#scrollUntil
yö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 uzaklıkların ayarlanması gerekebilir.
- Doğruluğu artırmak (678ca3) ve kullanıcı hareketlerini daha iyi taklit etmek (454450) için
MotionEvent
ekleme ö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 iyileştirildi.
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
UiObject2
yüzdeye dayalı marj yöntemlerisetGestureMarginPercentage
vesetGestureMarginsPercentage
olarak 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#getDrawingOrder
eklendi. (I5dfa4). - İkincil ekranların döndürülmesini alma, ayarlama, dondurma ve çözme için
UiDevice
yöntemleri eklendi. (I912cd).
Hata Düzeltmeleri
- Kaydırmanın sonu algılanamadığında
UiObject2#scrollUntil
için yeniden deneme özelliği eklendi (Ibac6f). UiDevice
yeniden 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ıklanamayan/kaydırılamayan nesnelerde tıklama/kaydırma işlemi yapıldığında uyarı eklendi (I4a5d9).
- Güvenilirliği artırmak için varsayılan
UiObject2
kaydı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
- Nesneleri üstlerine göre bulmayı desteklemek için
By.hasParent
veBy.hasAncestor
eklendi (I93c36). - Nesnenin ipucu metnini almak için
UiObject2#getHint
, nesneleri ipucu metinlerine göre seçmek içinBy.hint
yöntemleri eklendi (Idd345). - Nesnelerin bulundukları ekrana göre seçilmesini desteklemek için
By.displayId
eklendi (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 olarak değiştirildi ancak bu işlem önerilmiyor (Ic48a1).
Hata Düzeltmeleri
- Hareket doğruluğuna hızdan daha fazla öncelik vererek kararsızlığı azaltmak için
MotionEvent
ekleme işlemi güncellendi (678ca3). - Performans sorunlarını belirlemek için kaynak yoğun yöntemlere izleme eklendi (d17de3).
- UiAutomation bağlantısı başlatılırken yeniden deneme mekanizması eklendi (048caf).
UiDevice#dumpWindowHierarchy
iç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
Until
içindeki yerleşiklere güvenmek yerine özel bekleme koşullarına izin vermek için birCondition
arayüzü kullanıma sunuldu veUiDevice#wait
ileUiObject2#wait
yöntemleri bu arayüzü kabul edecek şekilde güncellendi (27c0ea). - Bir koşul karşılanana kadar kaydırmayı desteklemek ve
UiScrollable
ile eşitliği sağlamak içinUiObject2#scrollUntil
eklendi (099d6e). - Cihaz türleri arasında rotasyonları kolaylaştırmak için
UiDevice#setOrientationPortrait
vesetOrientationLandscape
eklendi (e13cb7). - Nesne boyutuna göre kenar boşlukları ayarlamayı desteklemek için
UiObject2#setGestureMarginPercent
eklendi. (Ib8c77)
Hata Düzeltmeleri
UiScrollable
yöntemlerinin, 18-22 numaralı SDK'larda zaman zaman geçersiz koordinatlar kullanması sorunu düzeltildi (b53ece).UiObject2#setText
veclearText
'nin 18 ve 19 numaralı SDK'larda metni değiştirememesi sorunu düzeltildi (77e41d).UiWatcher
işlemlerinin doğru sırada yürütülmemesi (c85f92) sorunu düzeltildi.UiDevice
yö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 sıkıştırmaların güvenilirliği iyileştirildi (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#pressKeyCodes
eklendi. Örneğin, ekran görüntüsü almak için GÜÇ ve SESİ_AZALT düğmelerine basma (22e525). - Yöntem adındaki yazım hatasını düzeltmek için
UiDevice#setCompressedLayoutHierarchy
eklendi veUiDevice#setCompressedLayoutHeirarchy
kullanımdan kaldırıldı (4e2f65). - Kullanımdan kaldırılan
UiAutomatorTestCase
'leri işlediği ve artık gerekli olmadığı içinUiAutomatorInstrumentationTestRunner
, kullanımdan kaldırıldı olarak işaretlendi (be6c85). - Kullanıcı hareketlerini daha iyi taklit etmek için
UiObject2
MotionEvent
arası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
StaleObjectException
'ların atılması sorunu düzeltildi (4cbcc0). - Başlangıca/sona ulaşılıp ulaşılmadığını belirtmeyen
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
veflingToEnd
işlevlerinin döndürülen değerleri düzeltildi (d33e06). - Yapılandırılan zaman aşımını yoksayan
UiScrollable#scrollForward
vescrollBackward
yöntemleri düzeltildi (29e4f3). BySelector
kopyalama oluşturucusunun derinlik seçicileri işlememesi (6c7b91) sorunu düzeltildi.UiObject#pinchIn
vepinchOut
sütunlarındaki geçersiz yüzde değerlerinin işlenmesi düzeltildi (01b973).- Altta yatan
UiAutomation
bağlantısı sıfırlandığında çoklu pencere desteğinin kaybolmasına neden olan nadir bir sorun düzeltildi (1bb956).
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ı
UiObject2
hareketleri için kısa bir gecikmeyleMotionEvent
yerleş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#wakeUp
veUiDevice#sleep
,KEYCODE_WAKEUP
veKEYCODE_SLEEP
olarak güncellendi. UiObject2#getDisplayId
simgesi ve birden fazla ekranda nesne bulma ve yönetme desteği eklendi.- Koordinatlarını kullanarak bir noktayı tıklamak için
UiObject#click
veUiObject2#clickAndWait
yö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.scrollFinished
veUiObject2#scroll
'nin güvenilirliği artırıldı (I7b0595).- Katı mod
IncorrectContextUseViolation
uyarıları düzeltildi (Iffa6a0).