Chạy tập lệnh Robo (Android)

Tài liệu này mô tả cách sử dụng tập lệnh Robo, vốn là các chương trình kiểm thử tự động hoá các công việc đảm bảo chất lượng thủ công cho ứng dụng di động, đồng thời cho phép tích hợp liên tục (CI) và chiến lược thử nghiệm trước khi ra mắt. Ví dụ: bạn có thể sử dụng tập lệnh Robo để thử nghiệm một hành trình chung của người dùng hoặc cung cấp thông tin đầu vào cụ thể trên giao diện người dùng (UI), chẳng hạn như tên người dùng và mật khẩu. Tập lệnh Robo là một tính năng của Thử nghiệm robot.

Với tập lệnh Robo, bạn có thể ghi lại cảnh chính mình đi qua một quy trình công việc trong ứng dụng, sau đó, bạn tải bản ghi đó lên bảng điều khiển của Firebase để chạy trong Robo kiểm thử. Khi bạn chạy thử nghiệm Robo có đính kèm một tập lệnh, các bước đầu tiên của Robo thông qua các hành động viết sẵn rồi khám phá ứng dụng như bình thường.

Tập lệnh Robo sử dụng công cụ Kiểm tra robot làm công cụ thử nghiệm. Ở hình thức cơ bản nhất, tập lệnh Robo bao gồm một tập lệnh trình tự các thao tác trên giao diện người dùng như nhập văn bản "tên người dùng" và sau đó nhấn vào nút OK. Tập lệnh Robo cũng có thể bao gồm các hành động như chờ để một phần tử xuất hiện, nhấn vào một điểm cụ thể trong một phần tử và thực thi các lệnh shell Cầu gỡ lỗi Android (adb).

So với các khung kiểm thử truyền thống, tập lệnh Robo có các ưu điểm sau:

Chức năng Nội dung mô tả
Mạnh mẽ Tập lệnh Robo có thể chấp nhận các yếu tố cấu trúc và hành vi quan trọng sự khác biệt giữa phiên bản ứng dụng và tính dễ ngắt của ứng dụng.
Câu hỏi mở Sau khi tập lệnh Robo hoàn tất, thử nghiệm Robo cơ sở có thể tiếp tục và hãy tiếp tục kiểm thử ứng dụng. Phương pháp thử nghiệm liên tục này cho phép một số trường hợp sử dụng chính. Ví dụ: bạn có thể sử dụng tập lệnh Robo để đưa một ứng dụng vào trạng thái cụ thể bằng cách thực hiện luồng đăng nhập tùy chỉnh.
Có thể ghi âm Bạn không cần phải viết mã cho tập lệnh Robo theo cách thủ công. Chúng có thể được ghi lại bằng trình ghi tập lệnh Robo trong Android Studio. Tạo hoặc sửa đổi Robo tập lệnh thường không đòi hỏi kiến thức về phát triển cho thiết bị di động.
Linh hoạt Tập lệnh Robo có thể tương tác với các thành phần không phải gốc của giao diện người dùng, thường thấy trong trò chơi.

Tập lệnh Robo được kích hoạt theo điều kiện trong quá trình thử nghiệm Robo, cho phép người dùng tăng cường hành vi của Robo – thường là để đạt được mức độ phù hợp hoặc mục tiêu lớn hơn chức năng cụ thể. Trái ngược với các khung kiểm thử truyền thống, Tập lệnh Robo hỗ trợ những nội dung sau:

  • Nhiều điều kiện kích hoạt, ví dụ: tên gói ứng dụng cụ thể đang hoạt động (hoặc không) hoặc một phần tử cụ thể đang hiển thị trên màn hình (hoặc không).
  • Các biện pháp kiểm soát thực thi, ví dụ: số lần thực thi tối đa, mức độ ưu tiên, giai đoạn thu thập dữ liệu có liên quan.
  • Các loại thao tác khác thường (có điều kiện, bỏ qua phần tử, đóng màn hình).

Bạn nên sử dụng tập lệnh Robo bất cứ khi nào có thể vì chúng có thể duy trì một cách dễ dàng. Ví dụ: bạn có thể sử dụng tập lệnh Robo để thực hiện sau:

  • Nắm rõ các quy trình công việc quan trọng để nắm được chức năng cốt lõi của ứng dụng. Ví dụ: bạn có thể thực hiện đăng nhập, thiết lập trạng thái của ứng dụng sau khi lần đầu tiên khởi chạy và đăng ký một người dùng mới.
  • Tập trung vào phần cụ thể của ứng dụng Robo để khai thác tối đa thử nghiệm Robo bất cứ lúc nào. Tập lệnh Robo hướng dẫn quy trình thử nghiệm cho Robo để tiếp cận phần liên quan của ứng dụng, Trong đó, quá trình kiểm tra Robo sẽ tiếp tục quá trình thu thập thông tin hoàn toàn tự động.
  • Chuyển ứng dụng sang một trạng thái hoặc màn hình cụ thể để thực hiện phân tích, cho ví dụ: để phân tích một thông báo trong ứng dụng, chính sách quyền riêng tư hoặc cấp độ cụ thể của một trò chơi.
  • Thực hiện kiểm tra đo lường toàn diện, có hoặc không có kiểm tra Robo tiếp tục thu thập thông tin hoàn toàn tự động sau khi tập lệnh Robo hoàn tất.

Sử dụng các tính năng nâng cao hơn của tập lệnh Robo để thực hiện những việc sau:

  • Thực hiện các thao tác trước khi Robo bắt đầu thu thập thông tin về quá trình thử nghiệm ứng dụng hoặc sau khi thu thập thông tin đã hoàn tất, ví dụ: làm sạch dữ liệu kiểm thử ứng dụng trước khi thu thập thông tin hoặc thay đổi cài đặt thiết bị.
  • Thay đổi các khía cạnh về hành vi của Robo trong quá trình thu thập thông tin, cụ thể là:
    • Yêu cầu Robo bỏ qua một số tiện ích giao diện người dùng hoặc màn hình ứng dụng.
    • Cung cấp một thao tác tuỳ chỉnh để Robo thực hiện khi theo dõi ngược từ một màn hình cụ thể.
    • Để Robo thực hiện các hành động cụ thể bất cứ khi nào một màn hình ứng dụng cụ thể gặp phải trong quá trình thu thập thông tin.
  • Tuỳ chỉnh hoàn toàn cách Robo thu thập thông tin. Ví dụ: hãy sử dụng kết hợp hành động có điều kiện và không có điều kiện để giữ cho ứng dụng dưới nền trong suốt quá trình thu thập thông tin, đồng thời thực hiện thao tác với thiết bị và đóng mọi hộp thoại bật lên xuất hiện đường đi.

Xin lưu ý rằng tập lệnh Robo không thay thế tất cả các loại thử nghiệm. Bạn vẫn cần bài kiểm thử đơn vị để phát hiện lỗi logic cấp thấp trong ứng dụng; các bài kiểm thử này thường không yêu cầu môi trường Android hoặc iOS. Bạn nên bổ sung cho thử nghiệm tập lệnh Robo bằng các bài kiểm thử đo lường được nhắm mục tiêu mà có thể câu nhận định cụ thể, chi tiết về logic kinh doanh (được thể hiện rõ nhất) trong mã.

Ghi tập lệnh Robo bằng Test Lab trong Android Studio

Trình ghi tập lệnh Robo trong Android Studio cho phép bạn ghi lại các tập lệnh Robo bằng tương tác trực tiếp với ứng dụng trên thiết bị của bạn. Hãy làm theo các hướng dẫn sau để bắt đầu sử dụng tập lệnh Robo thông qua công cụ Firebase trong Android Studio:

  1. Mở Android Studio rồi chọn Tools (Công cụ) -> Firebase.

  2. Trong ngăn Firebase, hãy nhấp vào Ghi lại tập lệnh Robo và sử dụng tập lệnh này để hướng dẫn quy trình kiểm tra Robo.

  3. Nhấp vào Ghi tập lệnh Robo. Hộp thoại Select Deployment Target (Chọn mục tiêu triển khai) sẽ xuất hiện.

  4. Chọn thiết bị mà bạn muốn ghi lại tập lệnh Robo.

  5. Sau khi bạn ghi lại tập lệnh Robo trong thiết bị, hãy lưu tệp này dưới dạng tệp JSON ở vị trí mong muốn.

  6. Mở trang Test Lab trong bảng điều khiển Firebase rồi tải tệp JSON lên tập lệnh và APK ứng dụng.

  7. Nhấp vào nút Tiếp tục. Bạn được nhắc chọn thiết bị và Cấp độ API. Sau khi tập lệnh kiểm thử hoàn tất, Test Lab sẽ tạo báo cáo thử nghiệm.

  8. (Không bắt buộc) Để sao chép hoặc tải logcat của báo cáo thử nghiệm và video xuống, nhấp vào Xem tệp nguồn.

Theo mặc định, cơ chế độ mạnh của tập lệnh Robo ngăn chặn tình trạng lỗi sớm. Nếu bạn chọn chế độ thực thi strict và tập lệnh Robo không thành công bất cứ lúc nào, Test Lab bỏ qua tất cả các bước tiếp theo trong tập lệnh và tiếp tục quy trình Thu thập thông tin robot. Thông thường, tập lệnh Robo không thành công vì Robo không tìm thấy yêu cầu nào trên màn hình. Để tránh thất bại, hãy đảm bảo tính năng điều hướng trong ứng dụng của bạn có thể dự đoán và màn hình của bạn được hiển thị theo thứ tự tất định.

Chạy tập lệnh Robo trong Test Lab

Để chạy tập lệnh Robo trong Test Lab, hãy làm theo các hướng dẫn sau:

  1. Mở trang Test Lab trong bảng điều khiển Firebase.

  2. Tải APK hoặc AAB của ứng dụng lên trường APK hoặc AAB của ứng dụng.

  3. Tải tệp tập lệnh Robo đã ghi hoặc tạo thủ công lên Trường Tập lệnh Robo (không bắt buộc).

Cung cấp tập lệnh Robo cho lần chạy thử nghiệm Robo tại địa phương

Để cung cấp tập lệnh Robo cho lần chạy thử nghiệm Robo tại địa phương, hãy sử dụng quy trình kiểm tra Robo sau tùy chọn:

--robo-script-file <robo-script-path>

Thay thế <robo-script-path> bằng một đường dẫn đến tệp tập lệnh Robo của bạn trong tệp cục bộ hệ thống tệp. Làm theo hướng dẫn cho quy trình kiểm tra Robo cục bộ chạy.

Chỉ định tập lệnh Robo trong lệnh gọi kiểm thử CLI trên gcloud

Để chỉ định tập lệnh Robo trong lệnh gọi kiểm thử CLI của gcloud, hãy sử dụng lệnh sau cờ CLI của gcloud:

--robo-script = <robo-script-path>

Thay thế <robo-script-path> bằng một đường dẫn đến tệp tập lệnh Robo của bạn trong tệp cục bộ hệ thống tệp hoặc trong Cloud Storage sử dụng ký hiệu gs://. Ví dụ:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Các bước tiếp theo