Test Uiautomator

  
Khung kiểm thử chức năng trên giao diện người dùng qua nhiều ứng dụng
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 21 tháng 2 năm 2024 2.3.0 - - -

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.3.0"
}

Kotlin

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
}

Để 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.

Báo lỗi mới

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.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: Hỗ trợ thêm việc tìm kiế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).
  • Bộ chọn mới:
    • Thêm By.displayId để chọn đối tượng theo mã hiển thị (I1825b).
    • Thêm By.hasParentBy.hasAncestor để chọn đối tượng theo thành phần mẹ (I93c36).
    • Thêm các phương thức By.hint để chọn đối tượng theo văn bản gợi ý (Idd345).
  • Đ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, đồng thời thêm các phương thức UiDevice#wait, UiObject2#waitUiObject2#scrollUntil tương ứng (27c0ea, 099d6e).
  • Sửa lỗi và độ tin cậy
    • Khắc phục vấn đề phép tính 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 phải điều chỉnh toạ độ và độ lệch sử dụng trong thử nghiệm.
    • 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), chế độ xoay (c6cea0), lượt nhấp dài (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ành setGestureMarginPercentagesetGestureMarginsPercentage để đả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.

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 để thu, đặt, đóng băng và huỷ cố định việc xoay 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ử dụng một thực thể Instrumentation cũ nếu đượ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 đượ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.hasParentBy.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à phương thức By.hint để chọn đối tượng theo văn bản gợi ý (Idd345).
  • Thêm By.displayId để hỗ trợ việc chọn đối tượng theo màn hình hiển thị các đối tượng đó (I1825b).
  • Thêm phương thức UiDevice#getDisplayHeight(int)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)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ì ẩ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 hoạt động theo dõi vào các phương thức nặng về 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 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

  • Cấp quyền truy cập 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 trong Until, đồng thời cập nhật các phương thức UiDevice#waitUiObject2#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 mức độ tương đương với UiScrollable (099d6e).
  • Thêm UiDevice#setOrientationPortraitsetOrientationLandscape để hỗ trợ 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 đôi khi sử dụng các toạ độ không hợp lệ trên SDK 18 đến 22 (b53ece).
  • Khắc phục lỗi UiObject2#setTextclearText không sửa đổi được văn bản trên SDK 18 và 19 (77e41d).
  • Khắc phục việc UiWatcher không được thực thi theo đúng thứ tự (c85f92).
  • Sửa lỗi 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 thao tác nhấp, kéo và ghim lâu (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ụng UiDevice#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ác UiAutomatorTestCase 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, flingToBeginningflingToEnd 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#scrollForwardscrollBackward, 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#pinchInpinchOut (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#wakeUpUiDevice#sleep để dùng KEYCODE_WAKEUPKEYCODE_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#clickUiObject2#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.scrollFinishedUiObject2#scroll (I7b0595).
  • Sửa các cảnh báo IncorrectContextUseViolation ở chế độ nghiêm ngặt (Iffa6a0).