Tham chiếu
Tham chiếu cho command, selector và cấu hình workspace của Astra Scout.
Astra Scout chạy flow YAML của Maestro trên iOS Simulator, iPhone thật và device Android, dùng engine maestro-runner. Phần tham chiếu này nói về các command, selector và cấu hình workspace mà runner hỗ trợ. Cú pháp YAML giống hệt Maestro, nên các flow Maestro có sẵn chạy được nguyên trạng, miễn là chỉ dùng những gì được liệt kê ở đây.
Khám phá phần tham chiếu
| Mục | Nội dung |
|---|---|
| Commands | Mọi command của flow mà Astra Scout hỗ trợ, kèm tham số và ví dụ. |
| Selectors | Cách chọn phần tử UI theo text, ID, vị trí, trạng thái và kích thước. |
| Cấu hình workspace | Các key trong config.yaml chọn và sắp thứ tự các flow của một run. |
Để học cách viết và tổ chức flow, bắt đầu từ hướng dẫn về flow.
Commands
Mức hỗ trợ:
- Hỗ trợ: hoạt động trên cả Android và iOS như mô tả.
- Hỗ trợ một phần: hoạt động có giới hạn, ví dụ chỉ trên một nền tảng hoặc chỉ trên iOS Simulator. Trang command mở đầu bằng một khung lưu ý liệt kê các giới hạn đó.
"Chỉ Simulator" nghĩa là command hoạt động trên iOS Simulator và fail trên iPhone thật.
| Command | Mô tả | Android | iOS | Hỗ trợ |
|---|---|---|---|---|
acceptAlert | Chấp nhận một hộp thoại alert của hệ thống trên iOS. | Không | Có | Hỗ trợ một phần |
addMedia | Thêm ảnh hoặc video vào thư viện của device để test chọn media. | Có | Chỉ Simulator | Hỗ trợ một phần |
assertCondition | Khẳng định một điều kiện hiển thị hoặc script đang đúng. | Có | Có | Hỗ trợ |
assertDarkMode | Kiểm tra device đang ở chế độ tối. | Có | Chỉ Simulator | Hỗ trợ một phần |
assertEvents | Xác nhận app đã gửi các analytics event (chỉ có trong Astra Scout). | Có | Có | Hỗ trợ |
assertLightMode | Kiểm tra device đang ở chế độ sáng. | Có | Chỉ Simulator | Hỗ trợ một phần |
assertNotVisible | Kiểm tra một phần tử UI không có mặt hoặc không hiển thị trên màn hình. | Có | Có | Hỗ trợ |
assertNoDefectsWithAI | AI kiểm tra màn hình không có bug hiển thị. Cần cấu hình AI CLI trong Settings. | Có | Có | Hỗ trợ |
assertScreenshot | Test hồi quy giao diện của app so với các ảnh chụp màn hình có sẵn. | Có | Có | Hỗ trợ |
assertTrue | Kiểm tra một biểu thức JavaScript có giá trị true. | Có | Có | Hỗ trợ |
assertWithAI | Dùng AI kiểm tra một mệnh đề bằng ngôn ngữ tự nhiên về màn hình. Cần cấu hình AI CLI trong Settings. | Có | Có | Hỗ trợ |
assertVisible | Kiểm tra một phần tử UI đang hiển thị trên màn hình, có tự động thử lại. | Có | Có | Hỗ trợ |
back | Nhấn nút back của hệ thống để quay lại màn hình trước. | Có | Không | Hỗ trợ một phần |
clearKeychain | Xoá dữ liệu keychain iOS của app đang test. | Không | Chỉ Simulator | Hỗ trợ một phần |
clearState | Xoá dữ liệu, cache và preferences của app để đưa về trạng thái mới cài. | Có | Có | Hỗ trợ |
copyTextFrom | Sao chép nội dung text từ một phần tử UI vào clipboard hoặc biến. | Có | Có | Hỗ trợ |
defineVariables | Định nghĩa biến của flow từ các cặp key-value. | Có | Có | Hỗ trợ |
dismissAlert | Bỏ qua một hộp thoại alert của hệ thống trên iOS. | Không | Có | Hỗ trợ một phần |
doubleTapOn | Chạm đúp vào một phần tử UI hoặc tọa độ trên màn hình. | Có | Có | Hỗ trợ |
dragAndDrop | Nhấn một phần tử hoặc điểm rồi kéo nó tới một phần tử hoặc điểm khác. | Có (Android 12+) | Có | Hỗ trợ một phần |
eraseText | Xoá text trong ô nhập theo số ký tự hoặc xoá toàn bộ. | Có | Có | Hỗ trợ |
evalScript | Chạy các biểu thức JavaScript inline trong ngữ cảnh của flow. | Có | Có | Hỗ trợ |
evalWebViewScript | Chạy JavaScript trong WebView đang hiện. | Có | Không | Hỗ trợ một phần |
extendedWaitUntil | Chờ một phần tử với timeout tùy chỉnh dài hơn mặc định. | Có | Có | Hỗ trợ |
extractTextWithAI | Dùng AI đọc text trên màn hình vào một biến. Cần cấu hình AI CLI trong Settings. | Có | Có | Hỗ trợ |
hideKeyboard | Ẩn bàn phím trên màn hình nếu đang hiện. | Có | Có | Hỗ trợ |
inputRandom | Gõ dữ liệu ngẫu nhiên theo loại đã chọn vào ô đang focus. | Có | Có | Hỗ trợ |
inputRandomEmail | Nhập một địa chỉ e-mail ngẫu nhiên. | Có | Có | Hỗ trợ |
inputRandomNumber | Nhập một chuỗi chữ số ngẫu nhiên. | Có | Có | Hỗ trợ |
inputRandomPersonName | Nhập một tên người ngẫu nhiên. | Có | Có | Hỗ trợ |
inputRandomText | Nhập một chuỗi chữ cái và chữ số ngẫu nhiên. | Có | Có | Hỗ trợ |
inputText | Nhập text vào ô đang focus, có option xử lý bàn phím. | Có | Có | Hỗ trợ |
killApp | Buộc dừng một app và option xoá toàn bộ dữ liệu và cache của app. | Có | Có | Hỗ trợ |
launchApp | Mở một app, có option cấu hình quyền và xoá trạng thái. | Có | Có | Hỗ trợ |
longPressOn | Nhấn giữ phần tử để mở context menu hoặc kéo thả. | Có | Có | Hỗ trợ |
openBrowser | Mở một URL trong trình duyệt của device. | Có | Có | Hỗ trợ |
openLink | Mở một URL hoặc deep link trong app hoặc trình duyệt hệ thống. | Có | Có | Hỗ trợ |
openNotifications | Kéo xuống thanh thông báo trên Android. | Có | Không | Hỗ trợ một phần |
pasteText | Dán text từ clipboard vào ô nhập đang focus. | Có | Chỉ sau copyTextFrom | Hỗ trợ một phần |
pressKey | Nhấn các phím cứng như home, back, enter hoặc nút âm lượng. | Có | Một số phím | Hỗ trợ một phần |
removeMedia | Xoá chỉ mục media trên Android, hoàn tác addMedia. | Có | Không | Hỗ trợ một phần |
repeat | Lặp một khối command theo số lần chỉ định. | Có | Có | Hỗ trợ |
retry | Thử lại một khối command khi fail, với số lần có thể cấu hình. | Có | Có | Hỗ trợ |
runFlow | Chạy một file subflow, có thể kèm biến môi trường. | Có | Có | Hỗ trợ |
runScript | Chạy một file JavaScript bên ngoài và lấy kết quả đầu ra. | Có | Có | Hỗ trợ |
runShell | Chạy một lệnh shell trên máy Mac và có thể giữ lại kết quả của nó. | Có | Có | Hỗ trợ |
runWebViewScript | Chạy một file JavaScript trong WebView đang hiện. | Có | Không | Hỗ trợ một phần |
scroll | Cuộn dọc đơn giản xuống dưới để xem nội dung phía dưới. | Có | Có | Hỗ trợ |
scrollUntilVisible | Tự động cuộn cho đến khi phần tử đích hiển thị trên màn hình. | Có | Có | Hỗ trợ |
setAirplaneMode | Bật chế độ máy bay để test hành vi khi offline. | Có | Không có tác dụng trên Simulator | Hỗ trợ một phần |
setClipboard | Đặt nội dung clipboard của device thành một giá trị text chỉ định. | Có | Không | Hỗ trợ một phần |
setDarkMode | Bật hoặc tắt chế độ tối để test giao diện sáng/tối. | Có | Chỉ Simulator | Hỗ trợ một phần |
setLocation | Đặt vị trí GPS của device về tọa độ cụ thể để test vị trí. | Có | Chỉ Simulator | Hỗ trợ một phần |
setOrientation | Đổi hướng device giữa chế độ dọc và ngang. | Có | Có | Hỗ trợ |
setPermissions | Cấp hoặc từ chối quyền của app trong khi chạy flow. | Có | Một phần trên iPhone thật | Hỗ trợ một phần |
startRecording | Bắt đầu quay màn hình để lưu video cho các run test. | Có | Không | Hỗ trợ một phần |
stopApp | Dừng một app đang chạy mà không xoá dữ liệu hay trạng thái. | Có | Có | Hỗ trợ |
stopRecording | Dừng quay màn hình hiện tại và lưu file video. | Có | Không | Hỗ trợ một phần |
swipe | Vuốt theo mọi hướng với tốc độ và khoảng cách tùy chỉnh. | Có | Có | Hỗ trợ |
takeScreenshot | Chụp ảnh màn hình và lưu vào thư mục kết quả của test. | Có | Có | Hỗ trợ |
tapOn | Chạm vào phần tử UI theo text, ID hoặc tọa độ, có option lặp và độ trễ. | Có | Có | Hỗ trợ |
tapOnPoint | Chạm hoặc nhấn giữ tại một toạ độ trên màn hình. | Có | Có | Hỗ trợ |
toggleAirplaneMode | Bật hoặc tắt chế độ máy bay trong khi chạy test. | Có | Không có tác dụng trên Simulator | Hỗ trợ một phần |
toggleDarkMode | Bật hoặc tắt chế độ tối trong khi chạy test. | Có | Chỉ Simulator | Hỗ trợ một phần |
travel | Giả lập du hành thời gian bằng cách chỉnh đồng hồ hệ thống của device. | Có | Không | Hỗ trợ một phần |
wait | Tạm dừng flow trong một khoảng thời gian cố định. | Có | Có | Hỗ trợ |
waitForAnimationToEnd | Chờ animation UI hoàn tất trước khi tiếp tục. | Có | Có | Hỗ trợ |
Không hỗ trợ trong Astra Scout
Mọi command Maestro có trang trong phần tham chiếu này đều được hỗ trợ. Ba command AI (assertWithAI, assertNoDefectsWithAI và extractTextWithAI) chạy qua AI CLI bạn cấu hình trong Settings → AI, xem Trợ lý AI.
Các tính năng Maestro thuộc Maestro Cloud hoặc Maestro Studio (upload lên cloud, thông báo, device hosted) cũng nằm ngoài phạm vi, vì Astra Scout chạy hoàn toàn cục bộ và không cần đăng nhập.
