Chạy flow
Mở workspace, viết flow, chạy trên device và đọc kết quả.
Trang này nói về vòng lặp hằng ngày: mở workspace, viết flow, chạy trên device và đọc kết quả.
Workspace
Workspace là một thư mục chứa các flow Maestro (file .yaml) và bất cứ thứ gì khác bạn muốn đặt cạnh chúng. Dùng menu File, hoặc cửa sổ Welcome to Astra Scout khi chưa mở workspace nào:
| Lệnh | Chức năng |
|---|---|
Workspace mới… (Cmd+N) | Chọn hoặc tạo thư mục cho test của bạn và dựng sẵn cấu trúc workspace bên dưới. |
Mở workspace… (Cmd+O) | Mở thư mục đã có flow. |
| Đóng workspace | Đóng workspace hiện tại. |
| Mở gần đây | Mở lại workspace bạn đã dùng trước đó. |
Nếu thư mục workspace không còn tồn tại, app yêu cầu bạn mở lại thư mục dự án.
Workspace mới có sẵn cấu trúc sau. Mở workspace… giữ nguyên thư mục như hiện có.
<workspace>/
├── *.yaml các flow của bạn
├── subflows/ flow được flow khác gọi bằng runFlow
├── tracking-specs/ spec tracking, kèm README (xem Tracking)
└── artifacts/runs/ mỗi lượt chạy một thư mục: video và ảnh chụp màn hình, không commitNavigator File
Navigator File hiển thị các file và thư mục của bạn. Nút + và ô lọc ở cuối navigator giúp tạo mục mới và thu hẹp danh sách. Bấm chuột phải vào một mục để có các thao tác:
- File mới… (
Shift+Cmd+N), với các mẫu Mobile Test, Javascript File và Text File. Một mobile test hỏi tên, App ID (chọn từ Dùng gần đây hoặc, khi có device kết nối, Trên device đang kết nối) và Tag không bắt buộc. Khi dự án đã chọn app ở bộ chọn app trên toolbar, App ID mặc định là${APP_ID}: flow cóappId: ${APP_ID}chạy trên app đã chọn (server đặtAPP_IDcho mỗi run;APP_IDbạn truyền tự tay được ưu tiên). Flow cóappIdcố định không đổi. - Thư mục mới…
- Run Test
- Duplicate, Rename và Delete (mục được chuyển vào Thùng rác)
- Show in Finder
Bạn có thể kéo thả file và thư mục để di chuyển, và chọn nhiều mục cùng lúc.
Editor
Editor hiển thị một file tại một thời điểm. Dùng Go Back và Go Forward trên thanh công cụ (Ctrl+Cmd+← và Ctrl+Cmd+→) để chuyển giữa các file đã mở. Editor gợi ý lệnh Maestro khi bạn gõ và gạch chân các lệnh mà device đang kết nối không chạy được.
- File tự động lưu sau một khoảng trễ ngắn. Bạn có thể tắt bằng File → Tự động lưu hoặc trong Settings → Chung.
Cmd+Slưu ngay lập tức vàCmd+Wđóng file. - Khi flow chạy, mỗi dòng lệnh hiển thị trạng thái: đang chờ, đang chạy, hoàn tất hoặc fail.
- Bấm vào số dòng ở lề (gutter) để có Run “lệnh” hoặc Run from Here. Các lệnh này chạy trên device đang kết nối mà không rời editor.
Cần một lệnh nhanh?
Bật Device → Kiểm tra phần tử, bấm chuột phải vào một phần tử trên màn hình device và dùng Chèn vào trình soạn thảo. Xem Inspector.
Chạy một flow
- Kết nối device. Xem Device.
- Mở file flow.
- Bấm Chạy test trên thanh công cụ (
Cmd+R). Dùng Dừng (Cmd+.) để huỷ.
Trước khi một run bắt đầu, Astra Scout kiểm tra driver (và, trên iPhone, xem màn hình có đang khoá không). Các step giống mua hàng chạy như mọi step khác. Xem Test mua hàng.
Chạy tất cả flow trong workspace
Chọn Run → Chạy tất cả test (Shift+Cmd+R) để chạy mọi flow trong workspace, và Dừng tất cả test để dừng. Video của một run workspace dùng chung một thư mục, với _2, _3 được thêm vào các tên trùng.
Chọn môi trường
Menu Môi trường ở bên phải thanh của bảng chạy test áp dụng các biến và tag có đặt tên cho run. Xem Môi trường và biến.
Đọc kết quả
Navigator Test run liệt kê các run trong session này. Chọn một run để xem trạng thái từng flow và từng lệnh trong runner: mỗi flow một dòng (kết quả và thời điểm ở dưới tên, thời lượng ở bên phải), rồi mỗi step một dòng. Step fail có lý do hiện ngay bên dưới. Bấm chuột phải vào một dòng, hoặc chọn nó và dùng các nút ở khung chi tiết, để có các thao tác:
| Thao tác | Mục đích |
|---|---|
| Mở file | Nhảy tới file flow |
| Sao chép log | Sao chép toàn bộ log của một step fail |
| Xem bản ghi | Phát video của run lên trên mirror device |
| Sửa bằng AI và Tự sửa… | Giao flow fail cho AI. Xem Trợ lý AI. |
| Báo bug lên Jira… | Xem Jira |
Xoá lịch sử… ở cuối navigator xoá lịch sử chạy cục bộ của workspace.
Kết luận (verdict)
Ngoài pass hoặc fail theo từng step, mỗi run có một nhãn kết luận do Astra Scout tính từ các dữ kiện có cấu trúc. AI không bao giờ viết nó.
| Nhãn | Ý nghĩa | Exit code của CLI |
|---|---|---|
| Pass | Mọi step đều qua. | 0 |
| Fail | Bug thật của app hoặc flow: selector sai, assertion fail, app crash. | 1 |
| Chưa xong | Dừng trước khi có kết luận: bạn bấm Dừng, chạm giới hạn, AI hết thời gian. | 2 |
| Chưa chắc chắn | Một phép kiểm tra AI không kết luận được, nên cần người xem lại. | 2 |
| Bị chặn | Issue về device hoặc môi trường: mất kết nối, driver không phản hồi, app chưa cài, error ký, không có AI. | 3 |
Bấm vào một nhãn để xem lý do, step quyết định và báo cáo. Báo cáo được lưu cùng run dưới dạng Markdown và JSON.
Mã lý do
Một run Bị chặn luôn có mã lý do. Một run Chưa xong có mã khi biết nguyên nhân. Run có mã lý do không bao giờ bị coi là bug của app, nên không có báo cáo bug nào được đề xuất.
| Mã | Ý nghĩa |
|---|---|
ENVIRONMENT_UNAVAILABLE | Device hoặc driver chưa sẵn sàng (mất kết nối, WDA hoặc DeviceLab không phản hồi) |
APP_NOT_INSTALLED | App chưa được cài |
APP_FILE_REQUIRED | clearState trên iPhone thật cần một bản build .ipa hoặc .app. Xem Device. |
AUTOMATION_UNSUPPORTED | Lệnh không được hỗ trợ trên nền tảng này |
AI_PROVIDER_UNAVAILABLE | AI chưa cài, chưa đăng nhập, fail hoặc hết thời gian |
AI_BUDGET_EXHAUSTED | Hết lần gọi AI (khám phá) |
STEP_BUDGET_EXHAUSTED | Chạm giới hạn step, vòng hoặc thời gian |
POLICY_DENIED | Tester đã từ chối |
NEEDS_HUMAN | Tester phải thao tác trên device (hộp thoại mua hàng hoặc mật khẩu của hệ thống) |
SYSTEM_OVERLAY | Một hộp thoại hoặc sheet hệ thống iOS che app. Các step khớp text hoặc id trên hộp thoại đó sẽ thao tác trực tiếp lên nó. |
DEVICE_LOCKED | Màn hình iPhone đang khoá và có passcode |
UNKNOWN | Bị chặn, nhưng không có dữ kiện nào nêu nguyên nhân |
Video
Video của flow được lưu trong workspace đang mở:
<workspace>/artifacts/runs/<ngày_giờ bắt đầu run>/<tên file flow>.mp4takeScreenshot với đường dẫn tương đối, ví dụ - takeScreenshot: home, lưu home.png vào <ngày_giờ bắt đầu run>/<tên file flow>/, cạnh video, thay vì cạnh file flow, nên mỗi run giữ ảnh riêng. Đường dẫn tuyệt đối được giữ nguyên. Lệnh chạy ngoài file flow trong một workspace lưu ảnh vào một thư mục run riêng.
Astra Scout tạo artifacts/runs/.gitignore chứa * để video không bị commit. Nó không sửa .gitignore của riêng bạn. Video của các lệnh chạy ngoài file flow và của khám phá nằm trong thư mục dữ liệu của app, dưới tests/<session>/videos/.
Lịch sử chạy phát video từ các đường dẫn đó. Nếu bạn xoá file, video biến mất khỏi lịch sử.
Lệnh không chạy được
Các lệnh mà nền tảng đang kết nối không hỗ trợ được đánh dấu trong editor và bị AI cùng các tool MCP từ chối. Xem Nền tảng được hỗ trợ.
