Test Uiautomator
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
7 Mayıs 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
Bağımlılıkları beyan etme
test bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Eski
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha02" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha02") }
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ştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 2.4
Sürüm 2.4.0-alpha02
7 Mayıs 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
yayınlanır. 2.4.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Yeni
Uiautomator
API'sinin ilk şekli.UiAutomatorTestScope
, yenionView
API'lerine erişim sağlayanuiAutomator
fabrikası aracılığıyla oluşturulabilir. AccessibilityNodeInfo#getText
kullanımıyla ilgili uyarı vermek vetextAsString
kullanımını önermek için ilk lint kuralları.
API Değişiklikleri
- Tüm aramaları (Icdf17) ile kısıtlamak için bir görüntüleme kimliği ayarlamak üzere
Configurator#setDefaultDisplayId
eklendi. - Kolaylık sağlamak amacıyla
Searchable
(UiDevice
veUiObject2
tarafından paylaşılan arayüz) herkese açık olarak değiştirildi (I67f18).
Hata Düzeltmeleri
UiDevice#pressKeyCodes
'teki 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ıyla ilgili sorun (I60dd3, If4edd) düzeltildi.
UiDevice#scrollUntil
numarası aranırken nadiren görülen sonsuz döngü düzeltildi (I39989).
Sürüm 2.4.0-alpha01
26 Haziran 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
yayınlanır. 2.4.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metin artık tuş basma yerine her zaman doğrudan eklendiğinden parametre kullanılmadığı için
Configurator#getKeyInjectionDelay
vesetKeyInjectionDelay
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üzlerindeki erişilebilirlik düğümünün eski olmasından kaynaklanan kararsızlığı azalttı (I3be25).
- Eski bir
UiObject2
üzerindetoString
veyahashCode
çağrısı yapılırken oluşanStaleObjectException
hataları düzeltildi. (I38ea1). - Gereksiz
waitForIdle
çağrıları atlayarakUiWatcher
performansı iyileştirildi. (I8c65e). - Özellikle her
Configurator
parametresinin ne zaman kullanıldığını açıklığa kavuşturmak için javadoc'daki yanlışlıklar düzeltildi. (Ie10b1, I71631).
Sürüm 2.3.0
Sürüm 2.3.0
21 Şubat 2024
androidx.test.uiautomator:uiautomator:2.3.0
yayınlanır. 2.3.0 sürümü bu taahhütleri 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 bunlar üzerinde işlem yapma desteği ve ikincil ekranları (Ie6544, I912cd) yönetmek için
UiDevice
yöntemleri eklendi. - Yeni seçiciler:
- Özel koşullar: Özel bekleme koşullarını desteklemek için bir
Condition
arayüzü kullanıma sundu ve ilgiliUiDevice#wait
,UiObject2#wait
veUiObject2#scrollUntil
yöntemlerini ekledi (27c0ea, 099d6e). - Hata düzeltmeleri ve güvenilirlik
- Ekran boyutu hesaplamalarının bazen yanlış olduğu ve ekranın bazı kısımlarını göz ardı edebileceği (Ifc016) sorun düzeltildi. Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
- Doğruluğu iyileştirmek (678ca3) ve kullanıcı hareketlerini daha iyi taklit etmek (454450) için
MotionEvent
enjeksiyonu güncellendi. - Kaydırma (I7b059), döndürme (c6cea0), uzun tıklama (49572b), yakınlaştırma/uzaklaş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ü bu taahhütleri içerir.
Sürüm 2.3.0-beta01
13 Aralık 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01
yayınlanır. 2.3.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Tutarlılık için
UiObject2
yüzdeye dayalı kenar boşluğu yöntemlerisetGestureMarginPercentage
vesetGestureMarginsPercentage
olarak yeniden adlandırıldı (I24435)
Hata Düzeltmeleri
- İkincil ekran bulunamadığında veya erişilemediğinde ortaya çıkan hata iyileştirildi (116b23)
Sürüm 2.3.0-alpha05
1 Kasım 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05
yayınlanır. 2.3.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Çizim sırası (z-dizini) bilgilerini göstermek için
UiObject2#getDrawingOrder
eklendi. (I5dfa4). - İkincil ekranların dönüşünü almak, ayarlamak, dondurmak ve dondurmayı kaldırmak için
UiDevice
yöntemleri eklendi. (I912cd).
Hata Düzeltmeleri
- Kaydırma işleminin sonu algılanamadığında
UiObject2#scrollUntil
için yeniden deneme eklendi (Ibac6f). - Yeniden oluşturulursa
UiDevice
'ün eski birInstrumentation
örneği kullanmasına neden olan sorun düzeltildi (I18cae). - Nod'lar (Icafcb) dökülürken görüntüleme kimliği belirlenemiyorsa olası NPE düzeltildi.
- Tıklanamayan/kaydırılabilir olmayan nesnelerde tıklama/kaydırma işlemi gerçekleştirirken 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
yayınlanır. 2.3.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Nesneleri ebeveynlerine göre bulma özelliğini desteklemek için
By.hasParent
veBy.hasAncestor
eklendi (I93c36). - Nesnenin ipucu metnini almak için
UiObject2#getHint
veBy.hint
yöntemlerini (Idd345) kullanarak nesneleri ipucu metinlerine göre seçmek için eklendi. - 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 önerilmez (Ic48a1).
Hata Düzeltmeleri
- Hareket doğruluğuna hızdan daha fazla öncelik vererek kararsızlığı azaltmak için
MotionEvent
enjeksiyonu güncellendi (678ca3). - Performans darboğazlarını belirlemek için kaynak yoğun yöntemlere izleme eklendi (d17de3).
- UiAutomation bağlantısı başlatırken yeniden deneme mekanizması eklendi (048caf).
UiDevice#dumpWindowHierarchy
(b725eb) içindeki boş düğümlerden kaynaklanan olası bir NPE düzeltildi.- Gizli ekranlarda sorgu 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
yayınlanır. 2.3.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yalnızca
Until
'daki yerleşik yöntemlere güvenmek yerine özel bekleme koşullarına izin vermek için birCondition
arayüzü kullanıma sundu veUiDevice#wait
ileUiObject2#wait
yöntemlerini bu arayüzü kabul edecek şekilde güncelledi (27c0ea). - Bir koşul karşılanana kadar kaydırmayı desteklemek ve
UiScrollable
(099d6e) ile eşleşmeye ulaşmak içinUiObject2#scrollUntil
eklendi. - Cihaz türleri arasında rotasyonları kolaylaştırmak için
UiDevice#setOrientationPortrait
vesetOrientationLandscape
eklendi (e13cb7). - Kenar boşluklarını nesne boyutuna göre ayarlama desteği için
UiObject2#setGestureMarginPercent
eklendi. (Ib8c77)
Hata Düzeltmeleri
- 18 ila 22 arasındaki SDK'larda bazen geçersiz koordinatlar kullanan
UiScrollable
yöntemleri düzeltildi (b53ece). - 18 ve 19 SDK'larında
UiObject2#setText
veclearText
'nin metni değiştirmemesi sorunu düzeltildi (77e41d). UiWatcher
'lerin doğru sırada yürütülmemesi sorunu düzeltildi (c85f92).UiDevice
yön değişikliğinden sonra cihazın döndürülmesinin henüz tamamlanamaması sorunu düzeltildi (c6cea0).- Uzun tıklamalar, sürükleme ve yakınlaştırma/uzaklaştırma işlemlerinin 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
yayınlanır. 2.3.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Daha fazla bilgi sağlamak, olası sorunlar hakkında uyarıda bulunmak ve tutarlılığı artırmak için kitaplık genelinde günlük kaydı yeniden düzenlendi.
- Ekran görüntüsü almak için GÜÇ ve SES_DÜŞÜR tuşlarına aynı anda basma gibi birden fazla tuşa aynı anda basmayı desteklemek üzere
UiDevice#pressKeyCodes
eklendi (22e525). - Yöntem adındaki yazım hatasını düzeltmek için
UiDevice#setCompressedLayoutHierarchy
eklendi veUiDevice#setCompressedLayoutHeirarchy
desteği sonlandırıldı (4e2f65). - Desteği sonlandı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ına güncellendi (454450). - Çok satırlık metin ve açıklama eşleştirme desteği eklendi (1625e6, b/255787130).
Hata Düzeltmeleri
- Nesneler sorgulanırken veya beklenirken zaman zaman
StaleObjectException
hatası oluşması düzeltildi (4cbcc0). - Başlangıç/sona ulaşılıp ulaşılmadığını belirtmeyen
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
veflingToEnd
dönüş değerleri düzeltildi (d33e06). - Yapılandırılmış zaman aşımını yoksayan
UiScrollable#scrollForward
vescrollBackward
yöntemleri düzeltildi (29e4f3). BySelector
kopyalama yapıcısının derinlik seçicileri işlememesi sorunu (6c7b91) düzeltildi.UiObject#pinchIn
vepinchOut
'teki geçersiz yüzde değerlerinin işlenmesi düzeltildi (01b973).- Temel
UiAutomation
bağlantısı sıfırlanırsa çoklu pencere desteğinin kaybedildiği 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
yayınlanır. 2.3.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Tüm herkese açık yöntemlerin boşluğunu ek açıklamayla belirtti.
- Daha akıcı
UiObject2
hareketleri içinMotionEvent
ekleme işlemini kısa bir gecikmeyle eşzamansız olarak değiştirdik. - Beklemedeyken sorgu 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
'yiKEYCODE_WAKEUP
veKEYCODE_SLEEP
kullanacak şekilde güncellendi. UiObject2#getDisplayId
ve birden fazla ekranda nesneleri bulma ve yönetme desteği eklendi.- Bir noktayı koordinatlarını kullanarak tıklamak için
UiObject#click
veUiObject2#clickAndWait
yöntemleri eklendi.
Hata Düzeltmeleri
- Ekran boyutu hesaplamalarının bazen yanlış olması ve özellikle çoklu pencere modunda (Ifc016c) ekranın bazı bölümlerinin göz ardı edilmesine neden olan sorun düzeltildi.
UiDevice#takeScreenshot
(Id80ad6) sürümündeki ekran görüntülerinin ölçeklendirmesi düzeltildi.Until.scrollFinished
veUiObject2#scroll
(I7b0595) modellerinin güvenilirliği artırıldı.- Katı mod
IncorrectContextUseViolation
uyarıları düzeltildi (Iffa6a0).