Tự động hóa flow Contacts của Android
Tự động hóa app Danh bạ Android để tạo liên hệ với dữ liệu ngẫu nhiên.
Test cách app tương tác với danh bạ hệ thống, hoặc đơn giản là test chính app Contacts gốc, là cách tốt để khám phá khả năng của Astra Scout với các app cấp hệ thống. Công thức này minh họa cách tạo một contact mới từ đầu, dùng tính năng tạo dữ liệu có sẵn để mỗi run test đều độc nhất.
Quy trình
Vì bạn sẽ tương tác với một app hệ thống, flow tập trung vào việc điều hướng theo các mẫu UI chuẩn của Android và xử lý trạng thái bàn phím.
- Mở package danh bạ gốc của Android làm đích.
- Dùng các lệnh có sẵn để tạo tên, số điện thoại và email thực tế ngay khi chạy.
- Dùng lệnh
backđể đóng bàn phím mềm khi nó che các ô nhập phía sau. - Lưu contact vào cơ sở dữ liệu của device.
1. Flow Contacts
Flow này tương tác với app Contacts mặc định trên Android emulator. App id và các nhãn có thể khác nhau giữa các system image, nên hãy điều chỉnh nếu emulator của bạn dùng app Contacts khác. Tạo một file YAML trong thư mục test và dùng đoạn code sau để định nghĩa flow:
# contacts.yaml
appId: com.android.contacts
---
- launchApp
# Bắt đầu quy trình tạo
- tapOn: "Create new contact"
# Một tên thực tế được tạo tự động
- tapOn: "First name"
- inputRandomPersonName
- tapOn: "Last name"
- inputRandomPersonName
- tapOn: "Phone"
- inputRandomNumber:
length: 10
# Bàn phím thường che ô 'Email'.
# Ta dùng 'hideKeyboard' để đóng nó an toàn.
- hideKeyboard
- tapOn: "Email"
- inputRandomEmail
# Hoàn tất contact
- tapOn: "Save"Flow trên tự động hóa việc tạo contact, nhưng cần hiểu cách nó được cấu trúc, nhất là với người mới dùng Astra Scout:
- Bằng cách dùng
inputRandomPersonNamevàinputRandomEmail, bạn tránh được bug contact trùng lặp vốn sẽ xảy ra nếu dùng chuỗi hardcode. Nhờ vậy test lặp lại được mà không cần dọn dẹp thủ công sau mỗi run. - Một nguyên nhân phổ biến gây test flaky trên Android là bàn phím mềm che nút kế tiếp bạn cần bấm. Dùng lệnh
hideKeyboardlà cách đáng tin cậy để ẩn bàn phím và đưa phần còn lại của form trở lại tầm nhìn. - Vì app hệ thống được Google cập nhật, resource ID của chúng có thể thay đổi. Nhắm vào các nhãn accessibility ổn định như
"First name"hay"Save"giúp flow bền hơn trước các bản cập nhật OS.
2. Triển khai
Tùy nhu cầu, bạn có thể chạy trực tiếp automation này hoặc tích hợp vào một test lớn hơn. Để chạy trực tiếp, khởi động một Android emulator, mở contacts.yaml trong Astra Scout và chạy từ đó (xem Chạy flow).
Bạn cũng có thể dùng contacts.yaml như một subflow. Khi đó, nếu app của bạn cần đảm bảo một contact tồn tại trước khi thực hiện hành động (như "Invite a Friend"), bạn có thể gọi file này như subflow từ test chính:
# invite_friend_test.yaml
appId: com.your.app
---
# Đảm bảo có một contact trong OS trước khi test lời mời
- runFlow: contacts.yaml
# Tiếp tục test app của bạn
- launchApp
- tapOn: "Invite Friends"
- assertVisible: "Invite"Nội dung liên quan
Khám phá các trang sau để tìm hiểu thêm về các mẫu automation dùng trong công thức này:
- inputText: xem mọi bộ tạo dữ liệu ngẫu nhiên có sẵn, gồm địa chỉ và email.
- Tạo dữ liệu giả lập: tìm hiểu cách tạo dữ liệu test ngẫu nhiên.
