Test mua hàng
Test flow mua hàng trên device test: cần chuẩn bị gì và các step mua hàng hoạt động ra sao.
Astra Scout chỉ chạy trên device test. Không có purchase guard và không có chế độ đặc biệt: các step giống mua hàng trong flow, tự sửa bằng AI, Khám phá app và CLI (MCP) cứ thế chạy, không hỏi gì.
Bạn tự chuẩn bị môi trường test bên dưới. Tuyệt đối không dùng tài khoản hay thẻ thật.
Các step mua hàng hoạt động ra sao
- Trong Khám phá app, nút mua hàng và paywall được đưa cho AI với nhãn "(mua hàng – sandbox)". AI không bao giờ gõ mật khẩu hay số thẻ. Ngoại lệ duy nhất là mật khẩu sandbox trên sheet mua hàng của hệ thống iOS, lấy từ biến môi trường
SANDBOX_PASSWORDcủa runner. Không có biến này, khám phá dừng ở trạng thái Cần tester. - Trên iPhone thật, AI không nhìn thấy hộp thoại mua hàng của SpringBoard, nên khám phá dừng ở trạng thái Cần tester (
NEEDS_HUMAN) và bạn làm tiếp trên device. - Hành động duy nhất còn cần bạn xác nhận là đăng báo cáo bug lên Jira (Chờ xác nhận). Xem Jira.
Môi trường
| Môi trường | Thiết lập |
|---|---|
| iOS Simulator với StoreKit Configuration | Thêm file .storekit vào scheme của app và chạy app từ Xcode (Astra Scout không kiểm tra được điều này, nên bạn tự bảo đảm). Xoá giao dịch giữa các lần test bằng Debug → StoreKit → Manage Transactions trong Xcode. |
| iPhone thật với tài khoản Sandbox | Tạo Sandbox Tester trong App Store Connect và đăng nhập ở Settings → App Store → Sandbox Account trên iPhone. Kết nối bằng USB, giữ máy mở khoá, bật Focus hoặc Do Not Disturb. Bật Allow Purchases & Renewals trong Settings → Developer → Sandbox Apple Account. |
| Android với License tester | Thêm tài khoản Google của device ở Setup → License testing trong Play Console, cài app từ một test track, và chỉ dùng thẻ test ("Test card, always approves"). |
Tài khoản đã từng mua sẽ không thấy lại ưu đãi dùng thử. Hãy xoá lịch sử mua ngay trong Astra Scout (xem Sandbox tester), đặt lại trong App Store Connect, hoặc dùng tài khoản khác.
Tự động hoá màn hình mua hàng trên iOS
Astra Scout có thể thao tác trên sheet mua hàng và hộp thoại mật khẩu của hệ thống bằng selector (text hoặc id), không cần toạ độ. Trên iPhone, hãy tắt Face ID & Passcode → iTunes & App Store, để thanh toán không hỏi Face ID hay passcode nữa và sheet chỉ hiện nút Subscribe. Giữ toàn bộ chuỗi thao tác trong một flow:
- tapOn: "6 Month" # nút trong app; sheet xuất hiện sau 1-12 giây
- tapOn: "Subscribe" # trên sheet; text thường phải khớp toàn bộ chuỗi
- tapOn: "Password" # ô mật khẩu sandbox
- inputText: ${SANDBOX_PASSWORD}
- tapOn: "Confirm"Việc khớp text theo Maestro: một regex phải khớp toàn bộ text của phần tử, không phân biệt hoa thường với text thường. Dùng ".*Subscribe.*" để khớp một phần. Trên hộp thoại hệ thống chỉ dùng được selector text và id (cộng với index). Nếu text không có trên sheet, step sẽ fail với SYSTEM_OVERLAY. Mỗi step trên sheet mất khoảng 3 đến 12 giây trên iPhone thật. Ví dụ: flows/mydmv/purchase_6month_selectors.yaml.
