ทดสอบ Uiautomator
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
13 สิงหาคม 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มการอ้างอิงในการทดสอบ คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
Groovy
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") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
ทดสอบ Uiautomator Shell เวอร์ชัน 1.0
เวอร์ชัน 1.0.0-alpha02
13 สิงหาคม 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-alpha01
18 มิถุนายน 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีเชลล์ ui-automator เวอร์ชันอัลฟ่าแรกเพื่อเรียกใช้คำสั่งเชลล์ในฐานะผู้ใช้เชลล์ ไลบรารีนี้อนุญาตให้อ่าน stdout, stderr และเขียนใน stdin ของกระบวนการ sh ที่เปิดตัวโดยเชลล์ โดยจะย้อนกลับ
UiAutomation#executeShellCommandRwe
ที่เปิดตัวใน API 34
เวอร์ชัน 2.4
เวอร์ชัน 2.4.0-alpha06
13 สิงหาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API ที่อิงตามหน้าต่างเพื่อการทดสอบแบบหลายหน้าต่างที่ดียิ่งขึ้น กล่าวคือ ตอนนี้สามารถใช้
UiDevice#findWindow
เพื่อค้นหาUiWindow
ที่เฉพาะเจาะจงตามByWindowSelector
ที่สร้างด้วยเมธอดจากโรงงานBy.Window
(I359c4, I40528, I8c963)
เวอร์ชัน 2.4.0-alpha05
18 มิถุนายน 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
UiObject2#waitForStable
เป็นทางลัดสำหรับUiObject2#accessibilityNodeInfo#waitForStable()
แล้ว
เวอร์ชัน 2.4.0-alpha04
4 มิถุนายน 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
onView
เป็นonElement
เพื่อให้ชัดเจนว่าใช้ได้กับ Compose (I53a3b, b/419006806)
การแก้ไขข้อบกพร่อง
- แก้ไข
waitForStableInActiveWindow
(290457f1, b/420349130)
เวอร์ชัน 2.4.0-alpha03
20 พฤษภาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
waitForStableInActiveWindow
แสดง NPE ในบางกรณี (Ibf50f, b/417046391)
เวอร์ชัน 2.4.0-alpha02
7 พฤษภาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รูปร่างเริ่มต้นของ
Uiautomator
Api ใหม่UiAutomatorTestScope
สร้างได้ผ่านโรงงานuiAutomator
ซึ่งให้สิทธิ์เข้าถึง APIonView
ใหม่ - กฎ Lint เริ่มต้นสำหรับคำเตือนเกี่ยวกับการใช้
AccessibilityNodeInfo#getText
และแนะนำให้ใช้textAsString
การเปลี่ยนแปลง API
- เพิ่ม
Configurator#setDefaultDisplayId
เพื่อตั้งรหัสการแสดงผลเพื่อจำกัดการค้นหาทั้งหมดเป็น (Icdf17) - เปลี่ยน
Searchable
(อินเทอร์เฟซที่UiDevice
และUiObject2
ใช้ร่วมกัน) เป็นแบบสาธารณะเพื่อความสะดวก (I67f18)
การแก้ไขข้อบกพร่อง
- แก้ไขการจัดการแป้น Meta ใน
UiDevice#pressKeyCodes
(I73f80) - อัปเดต
UiDevice#getWindowRoots
ให้แสดงรูทตามลำดับ Z เสมอ (I87426) - แก้ไขปัญหาที่ท่าทางสัมผัสบางอย่างไม่สมบูรณ์ (I60dd3, If4edd)
- แก้ไขการวนซ้ำที่ไม่มีที่สิ้นสุดซึ่งเกิดขึ้นได้ยากเมื่อเรียกใช้
UiDevice#scrollUntil
(I39989)
เวอร์ชัน 2.4.0-alpha01
26 มิถุนายน 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งาน
Configurator#getKeyInjectionDelay
และsetKeyInjectionDelay
เนื่องจากตอนนี้ไม่ได้ใช้พารามิเตอร์แล้ว เพราะระบบจะแทรกข้อความโดยตรงเสมอแทนที่จะใช้การกดแป้น (I3bcc5)
การแก้ไขข้อบกพร่อง
- อัปเดตระยะเวลาระหว่าง
UiObject2
เหตุการณ์การเคลื่อนไหวเพื่อรองรับอัตราการรีเฟรชแบบไดนามิก (เช่น Smooth Display) (I43f12) - ลดความไม่เสถียรจากการล้าสมัยของโหนดการช่วยเหลือพิเศษใน UI บางรายการโดยการล้างแคชการช่วยเหลือพิเศษเป็นระยะ (I3be25)
- แก้ไขปัญหา
StaleObjectException
ที่เกิดขึ้นเมื่อโทรหาtoString
หรือhashCode
ในUiObject2
ที่ล้าสมัย (I38ea1) - ปรับปรุง
UiWatcher
ประสิทธิภาพด้วยการข้ามการเรียกwaitForIdle
ที่ไม่จำเป็น (I8c65e) - แก้ไขความไม่ถูกต้องของ Javadoc โดยเฉพาะอย่างยิ่งเพื่อชี้แจงเมื่อมีการใช้พารามิเตอร์
Configurator
แต่ละรายการ (Ie10b1, I71631)
เวอร์ชัน 2.3.0
เวอร์ชัน 2.3.0
21 กุมภาพันธ์ 2024
androidx.test.uiautomator:uiautomator:2.3.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 2.2.0
- การรองรับหลายจอแสดงผล: เพิ่มการรองรับการค้นหาและการดำเนินการกับออบเจ็กต์ในจอแสดงผลหลายจอ และ
UiDevice
วิธีการจัดการจอแสดงผลรอง (Ie6544, I912cd) - ตัวเลือกใหม่
- เงื่อนไขที่กำหนดเอง: แสดง
Condition
อินเทอร์เฟซเพื่อรองรับเงื่อนไขการรอที่กำหนดเอง และเพิ่มเมธอดUiDevice#wait
,UiObject2#wait
และUiObject2#scrollUntil
ที่เกี่ยวข้อง (27c0ea, 099d6e) - การแก้ไขข้อบกพร่องและความน่าเชื่อถือ
- แก้ไขปัญหาที่การคำนวณขนาดการแสดงผลไม่ถูกต้องในบางครั้งและอาจละเว้นบางส่วนของหน้าจอ (Ifc016) คุณอาจต้องปรับพิกัดและออฟเซ็ตที่ใช้ในการทดสอบ
- อัปเดตการแทรก
MotionEvent
เพื่อปรับปรุงความแม่นยำ (678ca3) และจำลองท่าทางของผู้ใช้ได้ดียิ่งขึ้น (454450) - ปรับปรุงความน่าเชื่อถือของการเลื่อน (I7b059) การหมุน (c6cea0) การคลิกแบบยาว (49572b) การบีบนิ้ว (3c619a) และอื่นๆ
เวอร์ชัน 2.3.0-rc01
7 กุมภาพันธ์ 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01
จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 2.3.0-rc01 มีคอมมิตเหล่านี้
เวอร์ชัน 2.3.0-beta01
13 ธันวาคม 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
UiObject2
วิธีการมาร์จิ้นตามเปอร์เซ็นต์เป็นsetGestureMarginPercentage
และsetGestureMarginsPercentage
เพื่อให้สอดคล้องกัน (I24435)
การแก้ไขข้อบกพร่อง
- ปรับปรุงข้อผิดพลาดที่เกิดขึ้นเมื่อไม่พบหรือเข้าถึงจอแสดงผลรองไม่ได้ (116b23)
เวอร์ชัน 2.3.0-alpha05
1 พฤศจิกายน 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
UiObject2#getDrawingOrder
เพื่อแสดงข้อมูลลำดับการวาด (z-index) (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 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
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 ที่อาจเกิดขึ้นจากโหนด Null ใน
UiDevice#dumpWindowHierarchy
(b725eb) - แก้ไขข้อผิดพลาดที่ไม่คาดคิดจากการค้นหาหรือการดำเนินการในจอแสดงผลส่วนตัว (985db6, 7053d4)
เวอร์ชัน 2.3.0-alpha03
19 เมษายน 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดเผยอินเทอร์เฟซ
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 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ปรับปรุงการบันทึกในไลบรารีทั้งหมดเพื่อให้ข้อมูลเพิ่มเติม เตือนเกี่ยวกับปัญหาที่อาจเกิดขึ้น และปรับปรุงความสอดคล้องกัน
- เพิ่ม
UiDevice#pressKeyCodes
เพื่อรองรับการกดหลายปุ่มพร้อมกัน เช่น กดปุ่มเปิด/ปิดและปุ่มลดเสียงเพื่อถ่ายภาพหน้าจอ (22e525) - เพิ่ม
UiDevice#setCompressedLayoutHierarchy
และเลิกใช้งานUiDevice#setCompressedLayoutHeirarchy
เพื่อแก้ไขการสะกดชื่อเมธอดผิด (4e2f65) - ทำเครื่องหมาย
UiAutomatorInstrumentationTestRunner
ว่าเลิกใช้งานแล้วเนื่องจากจัดการUiAutomatorTestCase
ที่เลิกใช้งานแล้วและไม่จำเป็นอีกต่อไป (be6c85) - อัปเดตความล่าช้าระหว่าง
UiObject2
MotionEvent
เป็น 2 เท่าของอัตราการรีเฟรชของจอแสดงผลเพื่อจำลองท่าทางของผู้ใช้ได้ดียิ่งขึ้น (454450) - เพิ่มการรองรับข้อความหลายบรรทัดและการจับคู่คำอธิบาย (1625e6, b/255787130)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
StaleObjectException
s อาจเกิดขึ้นขณะค้นหาหรือรอออบเจ็กต์ (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 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ใส่คำอธิบายประกอบเกี่ยวกับค่า Null ของเมธอดสาธารณะทั้งหมด
- เปลี่ยนการแทรก
MotionEvent
เป็นแบบอะซิงโครนัสโดยมีการหน่วงเวลาสั้นๆ เพื่อให้UiObject2
ท่าทางสัมผัสราบรื่นยิ่งขึ้น - ลดช่วงเวลาการสำรวจขณะรอจาก 1,000 มิลลิวินาทีเป็น 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)