Tạo quy trình kiểm thử giao diện người dùng bằng Trình ghi lại quá trình kiểm thử Espresso

Công cụ Trình ghi lại quá trình kiểm thử Espresso (Espresso Test Recorder) cho phép bạn tạo các quy trình kiểm thử giao diện người dùng cho ứng dụng của mình mà không cần viết mã kiểm thử. Bằng cách ghi lại kịch bản kiểm thử, bạn có thể ghi lại các hoạt động tương tác của mình trên thiết bị và thêm câu nhận định để xác minh các thành phần giao diện người dùng trong phần tổng quan nhanh trên ứng dụng. Sau đó, Trình ghi lại quá trình kiểm thử Espresso sẽ ghi lại bản ghi đã lưu và tự động tạo quy trình kiểm thử giao diện người dùng tương ứng để chạy quy trình kiểm thử ứng dụng.

Trình ghi lại quá trình kiểm thử Espresso viết quy trình kiểm thử dựa trên Khung kiểm thử Espresso, một API trong Kiểm thử AndroidX. Espresso API giúp bạn tạo các quy trình kiểm thử giao diện người dùng ngắn gọn và đáng tin cậy dựa trên thao tác của người dùng. Bằng cách nêu rõ kỳ vọng, tương tác và câu nhận định mà không cần truy cập trực tiếp vào các hoạt động cơ sở hay thành phần hiển thị (view) của ứng dụng, cấu trúc này giúp ngăn chặn trường hợp kết quả kiểm thử không ổn định và tối ưu hoá tốc độ chạy quy trình kiểm thử.

Tắt ảnh động trên thiết bị kiểm thử

Trước khi sử dụng Trình ghi lại quá trình kiểm thử Espresso, đảm bảo rằng bạn đã tắt ảnh động trên thiết bị kiểm thử để ngăn chặn những kết quả không mong muốn. Làm theo hướng dẫn "Set Up Espresso" ("Thiết lập Espresso") trên trang Giao diện người dùng kiểm thử cho ứng dụng đơn lẻ, tuy nhiên hãy lưu ý rằng bạn không cần phải đặt tham chiếu phụ thuộc vào thư viện Espresso theo cách thủ công bởi Trình ghi lại quá trình kiểm thử sẽ tự động thực hiện việc này khi bạn lưu bản ghi. Bạn chỉ cần thực hiện các bước này một lần duy nhất trong dự án.

Ghi lại quy trình kiểm thử Espresso

Quy trình kiểm thử Espresso bao gồm hai thành phần chính: tương tác trên giao diện người dùng và câu xác nhận trên các phần tử Thành phần hiển thị. Các hoạt động tương tác trên giao diện người dùng bao gồm những thao tác nhấn và nhập mà một người có thể sử dụng để tương tác với ứng dụng của bạn. Câu nhận định sẽ xác nhận hoạt động hoặc nội dung của các thành phần hình ảnh trên màn hình. Ví dụ: quy trình kiểm thử Espresso cho ứng dụng Ghi chú kiểm thử có thể bao gồm các hoạt động tương tác trên giao diện người dùng như nhấp vào một nút hoặc viết một ghi chú mới, nhưng sẽ sử dụng câu nhận định để xác minh tình trạng hoạt động của nút và nội dung của ghi chú.

Phần này sẽ giới thiệu cách tạo cả hai thành phần kiểm thử này bằng cách sử dụng Trình ghi lại quá trình kiểm thử Espresso, cũng như cách lưu bản ghi đã hoàn tất để tạo kiểm thử.

Ghi lại các hoạt động tương tác trên giao diện người dùng

Để bắt đầu ghi lại quá trình kiểm thử bằng Trình ghi lại quá trình kiểm thử Espresso, hãy tiến hành như sau:

  1. Nhấp vào Run (Chạy) > Record Espresso Test (Ghi quá trình kiểm thử Espresso).
  2. Trong cửa sổ Select Deployment Target (Chọn mục tiêu triển khai), hãy chọn thiết bị bạn muốn ghi lại quá trình kiểm thử. Nếu cần, hãy tạo mới một thiết bị Android ảo. Nhấp vào Ok.
  3. Trình ghi kiểm thử Espresso kích hoạt bản dựng dự án, ứng dụng phải cài đặt và khởi chạy trước khi Trình ghi lại quá trình kiểm thử Espresso cho phép bạn tương tác với ứng dụng. Cửa sổ Record Your Test (Ghi lại quá trình kiểm thử của bạn) xuất hiện sau khi ứng dụng khởi chạy. Vì bạn chưa tương tác với thiết bị nên bảng điều khiển chính hiển thị thông báo "Chưa có sự kiện nào được ghi lại". Tương tác với thiết bị để bắt đầu ghi nhật ký sự kiện như các hành động "nhấn" ("tap") và "nhập" ("type").

Lưu ý: Trước khi có thể bắt đầu ghi nhật ký các hoạt động tương tác, bạn có thể thấy một hộp thoại trên thiết bị của mình có nội dung "Waiting for Debugger" ("Đang chờ trình gỡ lỗi") hoặc "Attaching Debugger" ("Đang đính kèm trình gỡ lỗi"). Trình ghi lại quá trình kiểm thử Espresso sử dụng trình gỡ lỗi để ghi lại các sự kiện giao diện người dùng. Khi đính kèm trình gỡ lỗi, hộp thoại sẽ tự động đóng; đừng nhấn vào Force Close (Buộc đóng).

Các hoạt động tương tác được ghi lại sẽ xuất hiện tại bảng điều khiển chính trong cửa sổ Record Your Test (Ghi lại quá trình kiểm thử của bạn), như trong hình 1 bên dưới. Khi chạy quy trình kiểm thử, quy trình kiểm thử Espresso sẽ thử thực hiện các thao tác này theo cùng một thứ tự.

Hình 1. Cửa sổ Record Your Test (Ghi lại quá trình kiểm thử của bạn) ghi lại các hoạt động tương tác trên giao diện người dùng.

Thêm câu nhận định để xác minh thành phần trên giao diện người dùng

Câu nhận định xác minh tình trạng hoạt động hoặc nội dung của phần tử Thành phần hiển thị (View) thông qua ba loại chính:

  • text is (văn bản): Kiểm tra nội dung văn bản của phần tử Thành phần hiển thị (View) đã chọn
  • exists (tồn tại): Kiểm tra sự hiện diện của phần tử Thành phần hiển thị trong hệ phân cấp thành phần hiển thị hiện tại trên màn hình
  • does not (Không tồn tại): Kiểm tra phần tử Thành phần hiển thị không có trong hệ phân cấp thành phần hiển thị hiện tại

Để thêm câu nhận định vào quy trình kiểm thử, hãy tiến hành như sau:

  1. Nhấp vào Add Assertion (Thêm câu nhận định). Hộp thoại Screen Capture (Chụp ảnh màn hình) xuất hiện trong khi Espresso khai thác hệ phân cấp giao diện người dùng và các thông tin khác về trạng thái ứng dụng hiện tại. Hộp thoại sẽ tự động đóng sau khi Espresso chụp ảnh màn hình.
  2. Bố cục của màn hình hiện tại sẽ xuất hiện trong bảng điều khiển nằm bên phải cửa sổ Record Your Test (Ghi lại quá trình kiểm thử của bạn). Để chọn một phần tử Thành phần hiển thị cho câu nhận định, hãy nhấp vào phần tử đó trong ảnh chụp màn hình hoặc dùng trình đơn thả xuống đầu tiên trong ô Edit assertion (Chỉnh sửa câu nhận định) phía cuối cửa sổ. Đối tượng Thành phần hiển thị đã chọn được làm nổi bật trong hộp màu đỏ.
  3. Chọn câu nhận định bạn muốn sử dụng từ trình đơn thả xuống thứ hai trong hộp Edit assertion (Chỉnh sửa câu nhận định). Espresso sẽ điền các câu nhận định hợp lệ cho phần tử Thành phần hiển thị (View) đã chọn trong trình đơn.
    • Nếu bạn chọn câu nhận định "text is" thì Espresso sẽ tự động chèn văn bản hiện có vào phần tử Chế độ xem đã chọn. Bạn có thể chỉnh sửa văn bản để phù hợp với câu nhận định mà bạn muốn bằng cách sử dụng trường văn bản trong hộp Edit assertion (Chỉnh sửa câu nhận định).
  4. Nhấp vào Save and Add Another (Lưu và thêm mục khác) để tạo một câu nhận định khác hoặc nhấp vào Save Assertion (Lưu câu nhận định) để đóng bảng điều khiển câu nhận định.

Ảnh chụp màn hình trong hình 2 cho thấy câu nhận định "text is" đang được tạo để xác nhận tiêu đề của ghi chú là "Happy Testing!":

Hình 2. Hộp Edit assertion (Chỉnh sửa câu nhận định) sau khi phần tử Thành phần hiển thị được chọn (khung màu đỏ).

Trong khi tạo câu nhận định, bạn có thể tiếp tục tương tác với ứng dụng của mình, ngay cả khi bảng điều khiển câu nhận định vẫn mở trong cửa sổ Record Your Test (Ghi lại quá trình kiểm thử của bạn). Trình ghi lại quá trình kiểm thử Espresso sẽ tiếp tục ghi nhật ký các hành động của bạn, nhưng câu nhận định bạn đang chỉnh sửa sẽ xuất hiện trước khi các tương tác này được lưu lại. Ảnh chụp màn hình cho câu nhận định cũng giữ lại bố cục mà thiết bị hoặc trình mô phỏng đang sử dụng tại thời điểm bạn nhấn nút Add Assertion (Thêm câu nhận định).

Lưu bản ghi

Sau khi hoàn tất tương tác với ứng dụng và thêm câu nhận định, hãy làm theo các bước sau để lưu bản ghi và tạo quy trình kiểm thử Espresso:

  1. Nhấp vào Complete Recording (Hoàn tất bản ghi). Cửa sổ Pick a test class name for your test (Chọn tên lớp kiểm thử cho quy trình kiểm thử của bạn) sẽ xuất hiện.
  2. Trình ghi lại quá trình kiểm thử Espresso sẽ đề xuất cho quy trình kiểm thử trong gói một tên riêng dựa trên tên của hoạt động đã chạy. Hãy sử dụng trường văn bản Test class name (Tên lớp kiểm thử) nếu bạn muốn thay đổi tên đề xuất. Nhấp vào Save (Lưu).
    • Nếu bạn chưa thêm các thành phần phụ thuộc Espresso vào ứng dụng của mình, hộp thoại Missing Espresso dependencies (Thiếu các phần phụ thuộc Espresso) sẽ xuất hiện khi bạn cố gắng lưu kiểm thử. Nhấp vào Yes (Có) để tự động thêm các phần phụ thuộc vào tệp build.gradle.
  3. Tệp này sẽ tự động mở sau khi Trình ghi lại quá trình kiểm thử Espresso tạo tệp và Android Studio hiển thị lớp kiểm thử đã chọn trong cửa sổ Project (Dự án) của IDE.
    • Vị trí lưu quy trình kiểm thử phụ thuộc vào vị trí gốc của kiểm thử đo lường, cũng như tên gói của hoạt động đã chạy. Ví dụ: các quy trình kiểm thử cho Notes testing app (Ứng dụng ghi chú quy trình kiểm thử) lưu trong thư mục src > androidTest > Java > com.example.username.appname của mô-đun ứng dụng mà bạn đã ghi lại quy trình kiểm thử.

Chạy quy trình kiểm thử Espresso cục bộ

Để chạy quy trình kiểm thử Espresso, hãy sử dụng cửa sổ Project (Dự án) nằm bên trái IDE Android Studio

  1. Mở thư mục mô-đun ứng dụng và điều hướng đến quy trình kiểm thử mà bạn muốn chạy. Vị trí của quy trình kiểm thử phụ thuộc vào vị trí gốc của kiểm thử đo lường và tên gói của hoạt động đã chạy. Các ví dụ sau đây minh hoạ vị trí lưu kiểm thử cho Notes testing app (Ứng dụng ghi chú quy trình kiểm thử):
    • Nếu bạn đang sử dụng chế độ xem Android trong cửa sổ, hãy điều hướng đến java > com.example.username.appname (androidTest).
    • Nếu bạn đang sử dụng chế độ xem Project (Dự án) trong cửa sổ, hãy chuyển đến src> androidTest > java > com.example.username.appname trong thư mục mô-đun.
  2. Nhấp chuột phải vào quy trình kiểm thử đó rồi nhấp vào Chạy "testName" ("tên kiểm thử").
    • Ngoài ra, bạn có thể mở tệp kiểm thử rồi nhấp chuột phải vào lớp hoặc phương thức kiểm thử đã tạo. Hãy đọc thêm về cách chạy quy trình kiểm thử trên trang kiểm thử ứng dụng của bạn.
  3. Trong cửa sổ Select Deployment Target (Chọn mục tiêu triển khai), hãy chọn thiết bị bạn muốn chạy quy trình kiểm thử. Nếu cần, hãy tạo mới một thiết bị Android ảo. Nhấp vào Ok.

Theo dõi tiến trình kiểm thử trong cửa sổ Run (Chạy) ở cuối IDE. Android Studio chạy bản dựng đầy đủ của dự án và mở thẻ có tên kiểm thử trong cửa sổ Run (Chạy), như trong hình 3. Bạn có thể kiểm tra xem quy trình kiểm thử của mình có đạt hay không trong thẻ này, cũng như thời gian chạy quy trình kiểm thử. Khi quy trình kiểm thử kết thúc, thẻ sẽ ghi nhật ký là "Tests ran to completion" ("Kiểm thử đã chạy đến khi hoàn tất").

Hình 3 Kết quả mẫu hiển thị trong cửa sổ Run (Chạy) sau khi chạy quy trình kiểm thử Espresso cục bộ.

Để tìm hiểu thêm về cách viết cấu hình chạy quy trình kiểm thử, hãy đọc phần "Xác định cấu hình kiểm thử cho một lớp hoặc phương thức" trong bài viết Tạo và chỉnh sửa cấu hình chạy/gỡ lỗi.

Chạy quy trình kiểm thử Espresso bằng Phòng thử nghiệm của Firebase cho Android

Bạn có thể sử dụng các kiểm thử do Trình ghi lại quá trình kiểm thử Espresso tạo ra bằng Phòng thử nghiệm Firebase để kiểm thử ứng dụng của bạn trên đám mây cho hàng trăm cấu hình thiết bị. Bạn sẽ không phải trả phí để kiểm thử ứng dụng bằng Phòng thử nghiệm trong hạn mức miễn phí hằng ngày trên gói Spark. Để chạy các quy trình kiểm thử Espresso với Phòng thử nghiệm Firebase, hãy tạo một dự án Firebase cho ứng dụng của bạn rồi làm theo hướng dẫn để Chạy các kiểm thử của bạn với Phòng thử nghiệm Firebase bằng Android Studio.

Hình 4. Kết quả mẫu trong cửa sổ Run (Chạy) sau khi chạy kiểm thử với Phòng thử nghiệm Firebase trên nhiều thiết bị.