ทดสอบ Uiautomator
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
7 พฤษภาคม 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มการพึ่งพาใน test คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูล
ดึงดูด
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") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 2.4
เวอร์ชัน 2.4.0-alpha02
7 พฤษภาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 2.4.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รูปร่างเริ่มต้นของ
Uiautomator
Api ใหม่UiAutomatorTestScope
สามารถสร้างผ่านโรงงานuiAutomator
ที่ให้สิทธิ์เข้าถึงonView
api ใหม่ - กฎ Lint เริ่มต้นสำหรับการเตือนเกี่ยวกับการใช้
AccessibilityNodeInfo#getText
และแนะนำให้ใช้textAsString
การเปลี่ยนแปลง API
- เพิ่ม
Configurator#setDefaultDisplayId
เพื่อตั้งค่ารหัสที่แสดงเพื่อจำกัดการค้นหาทั้งหมดไว้ที่ (Icdf17) - เปลี่ยน
Searchable
(อินเทอร์เฟซที่UiDevice
และUiObject2
แชร์กัน) เป็นสาธารณะเพื่อความสะดวก (I67f18)
การแก้ไขข้อบกพร่อง
- แก้ไขการจัดการคีย์ข้อมูลเมตาใน
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
เพื่อรองรับการกดแป้นหลายแป้นพร้อมกัน เช่น การกด POWER และ VOLUME_DOWN เพื่อถ่ายภาพหน้าจอ (22e525) - เพิ่ม
UiDevice#setCompressedLayoutHierarchy
และเลิกใช้งานUiDevice#setCompressedLayoutHeirarchy
เพื่อแก้ไขการพิมพ์ผิดในชื่อเมธอด (4e2f65) - ทําเครื่องหมาย
UiAutomatorInstrumentationTestRunner
ว่าเลิกใช้งานแล้วเนื่องจากจัดการUiAutomatorTestCase
ที่เลิกใช้งานแล้วและไม่จําเป็นต้องใช้อีกต่อไป (be6c85) - อัปเดตความล่าช้าระหว่าง
UiObject2
MotionEvent
เป็น 2 เท่าของอัตราการรีเฟรชของจอแสดงผลเพื่อจําลองท่าทางสัมผัสของผู้ใช้ได้ดียิ่งขึ้น (454450) - เพิ่มการรองรับข้อความหลายบรรทัดและการจับคู่คำอธิบาย (1625e6, b/255787130)
การแก้ไขข้อบกพร่อง
- แก้ไข
StaleObjectException
ที่แสดงขึ้นเป็นครั้งคราวขณะค้นหาหรือรอออบเจ็กต์ (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
- กำกับเนื้อหาเกี่ยวกับค่าว่างของเมธอดสาธารณะทั้งหมด
- เปลี่ยนการแทรก
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)