Test Uiautomator
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 7 tháng 5 năm 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên kiểm thử, bạn phải thêm kho lưu trữ Maven của Google vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
Groovy
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 2.4
Phiên bản 2.4.0-alpha02
Ngày 7 tháng 5 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha02
. Phiên bản 2.4.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Hình dạng ban đầu của API
Uiautomator
mới. Bạn có thể tạoUiAutomatorTestScope
thông qua nhà máyuiAutomator
cấp quyền truy cập vào các APIonView
mới. - Quy tắc tìm lỗi mã nguồn ban đầu để cảnh báo về việc sử dụng
AccessibilityNodeInfo#getText
và đề xuất sử dụngtextAsString
.
Thay đổi về API
- Thêm
Configurator#setDefaultDisplayId
để đặt mã nhận dạng hiển thị nhằm hạn chế tất cả các lượt tìm kiếm ở (Icdf17). - Thay đổi
Searchable
(giao diện doUiDevice
vàUiObject2
chia sẻ) thành công khai để thuận tiện (I67f18).
Sửa lỗi
- Khắc phục lỗi xử lý phím meta trong
UiDevice#pressKeyCodes
. (I73f80). - Cập nhật
UiDevice#getWindowRoots
để luôn trả về các gốc theo thứ tự Z (I87426). - Khắc phục vấn đề một số cử chỉ chưa hoàn tất (I60dd3, If4edd).
- Khắc phục vòng lặp vô hạn hiếm gặp khi gọi
UiDevice#scrollUntil
(I39989).
Phiên bản 2.4.0-alpha01
Ngày 26 tháng 6 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha01
. Phiên bản 2.4.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Ngừng sử dụng
Configurator#getKeyInjectionDelay
vàsetKeyInjectionDelay
vì tham số này hiện không được sử dụng do văn bản luôn được chèn trực tiếp thay vì bằng thao tác nhấn phím. (I3bcc5).
Sửa lỗi
- Cập nhật độ trễ giữa các sự kiện chuyển động
UiObject2
để tính đến tốc độ làm mới động (tức là Màn hình mượt) (I43f12). - Giảm tình trạng không ổn định do nút hỗ trợ tiếp cận bị lỗi thời trên một số giao diện người dùng nhất định bằng cách định kỳ vô hiệu hoá bộ nhớ đệm hỗ trợ tiếp cận (I3be25).
- Khắc phục
StaleObjectException
xảy ra khi gọitoString
hoặchashCode
trênUiObject2
cũ. (I38ea1). - Cải thiện hiệu suất
UiWatcher
bằng cách bỏ qua các lệnh gọiwaitForIdle
không cần thiết. (I8c65e). - Khắc phục thông tin không chính xác trong javadoc, đặc biệt là để làm rõ thời điểm sử dụng từng tham số
Configurator
. (Ie10b1, I71631).
Phiên bản 2.3.0
Phiên bản 2.3.0
Ngày 21 tháng 2 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.3.0
. Phiên bản 2.3.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 2.2.0
- Hỗ trợ nhiều màn hình: Thêm tính năng hỗ trợ tìm và thao tác trên các đối tượng trên nhiều màn hình, cũng như các phương thức
UiDevice
để quản lý màn hình phụ (Ie6544, I912cd). - Chọn mới:
- Điều kiện tuỳ chỉnh: Hiển thị giao diện
Condition
để hỗ trợ các điều kiện chờ tuỳ chỉnh và thêm các phương thứcUiDevice#wait
,UiObject2#wait
vàUiObject2#scrollUntil
tương ứng (27c0ea, 099d6e). - Sửa lỗi và độ tin cậy
- Khắc phục vấn đề tính toán kích thước màn hình đôi khi không chính xác và có thể bỏ qua các phần của màn hình (Ifc016). Có thể cần điều chỉnh toạ độ và độ dời được dùng trong kiểm thử.
- Cập nhật tính năng chèn
MotionEvent
để cải thiện độ chính xác (678ca3) và mô phỏng tốt hơn các cử chỉ của người dùng (454450). - Cải thiện độ tin cậy của thao tác cuộn (I7b059), xoay (c6cea0), nhấp và giữ (49572b), chụm (3c619a) và nhiều thao tác khác.
Phiên bản 2.3.0-rc01
Ngày 7 tháng 2 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-rc01
mà không có thay đổi nào. Phiên bản 2.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 2.3.0-beta01
Ngày 13 tháng 12 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-beta01
. Phiên bản 2.3.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên các phương thức lề dựa trên tỷ lệ phần trăm
UiObject2
thànhsetGestureMarginPercentage
vàsetGestureMarginsPercentage
để đảm bảo tính nhất quán (I24435)
Sửa lỗi
- Cải thiện lỗi được gửi khi không tìm thấy hoặc không truy cập được màn hình phụ (116b23)
Phiên bản 2.3.0-alpha05
Ngày 1 tháng 11 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha05
. Phiên bản 2.3.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
UiObject2#getDrawingOrder
để hiển thị thông tin về thứ tự vẽ (chỉ mục z). (I5dfa4). - Thêm các phương thức
UiDevice
để lấy, đặt, khoá và huỷ khoá chế độ xoay của màn hình phụ. (I912cd).
Sửa lỗi
- Thêm thử lại vào
UiObject2#scrollUntil
khi không phát hiện được kết thúc cuộn (Ibac6f). - Khắc phục vấn đề
UiDevice
sẽ sử dụng một thực thểInstrumentation
cũ nếu thực thể đó được tạo lại (I18cae). - Khắc phục lỗi NPE có thể xảy ra nếu không xác định được mã hiển thị khi kết xuất nút (Icafcb).
- Thêm cảnh báo khi thực hiện thao tác nhấp/cuộn trên các đối tượng không thể nhấp/cuộn (I4a5d9).
- Giảm tốc độ cuộn
UiObject2
mặc định để cải thiện độ tin cậy (I5e071).
Phiên bản 2.3.0-alpha04
Ngày 26 tháng 7 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha04
. Phiên bản 2.3.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
By.hasParent
vàBy.hasAncestor
để hỗ trợ tìm đối tượng theo đối tượng mẹ (I93c36). - Thêm
UiObject2#getHint
để truy xuất văn bản gợi ý của đối tượng và các phương thứcBy.hint
để chọn đối tượng theo văn bản gợi ý (Idd345). - Thêm
By.displayId
để hỗ trợ chọn đối tượng theo màn hình mà đối tượng đó đang hiển thị (I1825b). - Thêm các phương thức
UiDevice#getDisplayHeight(int)
vàUiDevice#getDisplayWidth(int)
để tìm kích thước của màn hình theo mã nhận dạng (Ie6544). - Thêm lại các phương thức
wait(SearchCondition, long)
vàwait(UiObject2Condition, long)
để có thể tương thích ngược (Iebfda). - Thay đổi
UiDevice#executeShellCommand
thành công khai nhưng không nên thay vì ẩn (Ic48a1).
Sửa lỗi
- Cập nhật tính năng chèn
MotionEvent
để giảm tình trạng không ổn định bằng cách ưu tiên độ chính xác của cử chỉ hơn tốc độ (678ca3). - Thêm tính năng theo dõi vào các phương thức nặng về tài nguyên để xác định nút thắt cổ chai về hiệu suất (d17de3).
- Thêm cơ chế thử lại khi bắt đầu kết nối UiAutomation (048caf).
- Khắc phục lỗi NPE có thể xảy ra từ các nút rỗng trong
UiDevice#dumpWindowHierarchy
(b725eb). - Khắc phục các lỗi không mong muốn khi truy vấn hoặc thao tác trên màn hình riêng tư (985db6, 7053d4).
Phiên bản 2.3.0-alpha03
Ngày 19 tháng 4 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. Phiên bản 2.3.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Hiển thị giao diện
Condition
để cho phép các điều kiện chờ tuỳ chỉnh thay vì chỉ dựa vào các điều kiện tích hợp sẵn trongUntil
, đồng thời cập nhật các phương thứcUiDevice#wait
vàUiObject2#wait
để chấp nhận giao diện này (27c0ea). - Thêm
UiObject2#scrollUntil
để hỗ trợ cuộn cho đến khi đáp ứng một điều kiện và đạt được tính tương đương vớiUiScrollable
(099d6e). - Thêm
UiDevice#setOrientationPortrait
vàsetOrientationLandscape
để hỗ trợ việc xoay trên các loại thiết bị (e13cb7). - Thêm
UiObject2#setGestureMarginPercent
để hỗ trợ việc đặt lề tương ứng với kích thước đối tượng. (Ib8c77)
Sửa lỗi
- Khắc phục các phương thức
UiScrollable
thỉnh thoảng sử dụng toạ độ không hợp lệ trên SDK 18 đến 22 (b53ece). - Khắc phục lỗi
UiObject2#setText
vàclearText
không sửa đổi được văn bản trên SDK 18 và 19 (77e41d). - Khắc phục
UiWatcher
không được thực thi theo đúng thứ tự (c85f92). - Khắc phục vấn đề xoay thiết bị có thể chưa hoàn tất sau khi thay đổi hướng
UiDevice
(c6cea0). - Cải thiện độ tin cậy của các thao tác nhấp và giữ, kéo và chụm (49572b, 3c619a).
Phiên bản 2.3.0-alpha02
Ngày 11 tháng 1 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha02
. Phiên bản 2.3.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
- Cải tiến tính năng ghi nhật ký trong toàn bộ thư viện này để cung cấp thêm thông tin, cảnh báo về những vấn đề có thể xảy ra và cải thiện tính nhất quán.
- Thêm
UiDevice#pressKeyCodes
để hỗ trợ nhấn đồng thời nhiều phím, ví dụ như nhấn nút POWER và VOLUME_DOWN để chụp ảnh màn hình (22e525). - Thêm
UiDevice#setCompressedLayoutHierarchy
và ngừng sử dụngUiDevice#setCompressedLayoutHeirarchy
để sửa lỗi chính tả trong tên phương thức (4e2f65). - Đánh dấu
UiAutomatorInstrumentationTestRunner
là không dùng nữa vì xử lý cácUiAutomatorTestCase
không dùng nữa và không còn cần thiết nữa (be6c85). - Cập nhật độ trễ giữa
UiObject2
MotionEvent
để tăng gấp đôi tốc độ làm mới màn hình nhằm mô phỏng tốt hơn các cử chỉ của người dùng (454450). - Hỗ trợ thêm tính năng so khớp văn bản và nội dung mô tả nhiều dòng (1625e6, b/255787130).
Sửa lỗi
- Khắc phục việc
StaleObjectException
đôi khi được gửi khi truy vấn hoặc chờ các đối tượng (4cbcc0). - Sửa các giá trị trả về của
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
vàflingToEnd
không cho biết liệu đã đạt đến điểm bắt đầu/kết thúc hay chưa (d33e06). - Sửa các phương thức
UiScrollable#scrollForward
vàscrollBackward
, bỏ qua thời gian chờ đã định cấu hình (29e4f3). - Sửa hàm khởi tạo bản sao
BySelector
không xử lý bộ chọn độ sâu (6c7b91). - Khắc phục việc xử lý các giá trị phần trăm không hợp lệ trong
UiObject#pinchIn
vàpinchOut
(01b973). - Sửa lỗi hiếm gặp, đó là tính năng hỗ trợ nhiều cửa sổ bị mất nếu đặt lại kết nối
UiAutomation
cơ bản (1bb956).
Phiên bản 2.3.0-alpha01
Ngày 7 tháng 9 năm 2022
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha01
. Phiên bản 2.3.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Chú thích giá trị rỗng của mọi phương thức công khai.
- Chuyển chế độ chèn
MotionEvent
thành không đồng bộ theo độ trễ ngắn để các cử chỉUiObject2
mượt mà hơn. - Giảm thời gian thăm dò trong khi chờ từ 1000 mili giây xuống còn 100 mili giây.
- Cập nhật
UiDevice#wakeUp
vàUiDevice#sleep
để dùngKEYCODE_WAKEUP
vàKEYCODE_SLEEP
trong việc hỗ trợ các thiết bị ghi đè nút nguồn. - Thêm
UiObject2#getDisplayId
cũng như hỗ trợ tìm và quản lý đối tượng trên nhiều màn hình. - Thêm phương thức
UiObject#click
vàUiObject2#clickAndWait
để nhấp vào một điểm bằng cách sử dụng các toạ độ của điểm đó.
Sửa lỗi
- Sửa lỗi tính toán kích thước màn hình đôi khi không chính xác và có thể bỏ qua các phần của màn hình, đặc biệt là ở chế độ nhiều cửa sổ (Ifc016c).
- Sửa tỷ lệ ảnh chụp màn hình trong
UiDevice#takeScreenshot
(Id80ad6). - Cải thiện độ tin cậy của
Until.scrollFinished
vàUiObject2#scroll
(I7b0595). - Sửa các cảnh báo
IncorrectContextUseViolation
ở chế độ nghiêm ngặt (Iffa6a0).