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 26 tháng 6 năm 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
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-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
Để 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.
Hãy 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-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.
Các thay đổi về API
- Đã ngừng sử dụng
Configurator#getKeyInjectionDelay
vàsetKeyInjectionDelay
vì tham số này không được sử dụng vì văn bản luôn được chèn trực tiếp thay vì bằng các lần 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à Hình ảnh mượt) (I43f12). - Giảm tình trạng không ổn định của nút hỗ trợ tiếp cận 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).
- Sửa lỗi
StaleObjectException
xảy ra khi gọitoString
hoặchashCode
trênUiObject2
cũ. (I38ea1). - Cải thiện hiệu suất của
UiWatcher
bằng cách bỏ qua các lệnh gọiwaitForIdle
không cần thiết. (I8c65e). - Sửa lỗi javadoc không chính xác, đặ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: Bổ sung 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ư phương thức
UiDevice
để quản lý màn hình phụ (Ie6544, I912cd). - Bộ 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 đề việc tính toán kích thước hiển thị đôi khi không chính xác và có thể bỏ qua các phần của màn hình (Ifc016). Toạ độ và độ lệch được sử dụng trong kiểm thử có thể cần phải được điều chỉnh.
- Cập nhật tính năng chèn
MotionEvent
để cải thiện độ chính xác (678ca3) và mô phỏng hiệu quả hơn các cử chỉ của người dùng (454450). - Cải thiện độ tin cậy của tính năng cuộn (I7b059), xoay (c6cea0), lượt nhấp và giữ (49572b), ghim (3c619a), v.v.
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.
Các 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 tạo 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.
Các 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, thiết lập, cố định và huỷ cố định chế độ xoay màn hình phụ. (I912cd).
Sửa lỗi
- Thêm lần thử lại vào
UiObject2#scrollUntil
khi không thể phát hiện thấy cuối cuộn (Ibac6f). - Khắc phục vấn đề
UiDevice
sử dụng phiên bảnInstrumentation
cũ nếu được tạo lại (I18cae). - Khắc phục lỗi NPE có thể có nếu không xác định được mã hiển thị khi kết xuất các nút (IcAAPb).
- 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 được (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.
Các thay đổi về API
- Thêm
By.hasParent
vàBy.hasAncestor
để hỗ trợ tìm đối tượng theo thành phần mẹ (I93c36). - Thêm
UiObject2#getHint
để truy xuất văn bản gợi ý của một đối tượng và các phương thứcBy.hint
để chọn các đố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 hiển thị các đối tượng đó (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ó khả năng tương thích ngược (Iebfda). - Thay đổi
UiDevice#executeShellCommand
thành công khai nhưng không khuyến khích thay vì bị ẩn (Ic48a1).
Sửa lỗi
- Cập nhật tính năng chèn
MotionEvent
để giảm hiện tượng bong tróc bằng cách ưu tiên độ chính xác của cử chỉ hơn là tốc độ (678ca3). - Thêm tính năng theo dõi vào các phương thức nặng tài nguyên để xác định điểm tắc nghẽn về hiệu suất (d17de3).
- Thêm cơ chế thử lại khi khởi tạo kết nối UiAutomatic (048caf).
- Khắc phục một 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.
Các 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 tính năng 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 điều kiện và đạt được mức độ tương đương vớiUiScrollable
(099d6e). - Thêm
UiDevice#setOrientationPortrait
vàsetOrientationLandscape
để hỗ trợ việc xoay giữa 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
- Sửa các phương thức
UiScrollable
đôi khi sử dụng toạ độ không hợp lệ trên SDK 18 đến 22 (b53ece). - Khắc phục
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 lỗi
UiWatcher
không được thực thi theo đúng thứ tự (c85f92). - Khắc phục vấn đề chưa thể hoàn tất việc xoay thiết bị sau khi thay đổi hướng
UiDevice
(c6cea0). - Cải thiện độ tin cậy của các thao tác nhấp, kéo và ghim và kéo (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).