assertEvents
Xác nhận app đã gửi các analytics event (chỉ có trong Astra Scout).
Chỉ có trong Astra Scout
assertEvents không phải command của Maestro. Flow dùng nó không chạy được trên Maestro thường. Các event lấy từ phần capture Amplitude, xem Tracking.
Command assertEvents kiểm tra app đã gửi các analytics event bạn liệt kê. Với event chưa tới, nó chờ tối đa bằng timeout.
Event nào được tính
Cửa sổ mở ra 500 ms trước command cuối cùng tác động lên app (tap, nhập text, swipe, launchApp...). Các command chỉ quan sát hoặc chờ (assertVisible, assertTrue, extendedWaitUntil, takeScreenshot, evalScript, assertEvents khác...) không làm cửa sổ dịch đi. Một runFlow, repeat hay retry có command bên trong tác động lên app được tính như một action bắt đầu lúc khối bắt đầu: assertEvents đặt ngay sau khối kiểm mọi event khối đó gửi, ví dụ event đầu tiên của app sau một vòng trả lời các hộp xin quyền hiện theo thứ tự bất kỳ. Khối không làm gì (when không khớp) thì cửa sổ giữ nguyên. Nếu chưa có action nào, cửa sổ mở từ đầu flow. Vì vậy tapOn, assertVisible, assertEvents kiểm tra các event của lần tap.
Thời gian chờ là timeout mili giây tính từ chính assertEvents, không phải từ command trước.
Lưu ý: event mà action trước gửi trước lúc action tiếp theo bắt đầu chưa đến 500 ms có thể bị tính cho action tiếp theo.
Mỗi event trong danh sách phải khớp đúng một event app đã gửi: event đầu tiên, theo thứ tự thời gian, có đúng tên và đúng các property bạn mô tả. Event đã được một assertEvents khớp thì assertEvents sau trong cùng run không khớp lại. Thứ tự các event trong cùng một step không quan trọng. Các event nội bộ của SDK như $identify bị bỏ qua.
Nếu thiếu event, step fail và nói rõ event nào, cùng các event đã nhận được. Nếu event tới nhưng sai property, thông báo ghi property và giá trị nhận được. assertEvents fail không dừng flow: các command sau vẫn chạy, nhưng run kết thúc ở trạng thái fail.
Cú pháp
- assertEvents: [Onboarding Step Viewed]
- assertEvents:
- License Selected:
license type: car
- assertEvents:
timeout: 8000
events:
- Paywall Viewed: { placement: onboarding }Tham số
| Tham số | Kiểu | Mô tả |
|---|---|---|
events | List | Các event cần có. Mỗi event là một tên, hoặc tên kèm map các property. |
timeout | Integer | Số mili giây chờ tối đa cho các event. Mặc định 5000. |
Giá trị của một property là một giá trị thường, phải bằng giá trị nhận được, hoặc một map điều kiện:
| Điều kiện | Mô tả |
|---|---|
equals | Giá trị phải bằng giá trị này. |
in | Giá trị phải thuộc danh sách này. |
min | Giá trị phải là số, lớn hơn hoặc bằng giá trị này. |
max | Giá trị phải là số, nhỏ hơn hoặc bằng giá trị này. |
regex | Giá trị phải là chuỗi khớp biểu thức chính quy này. |
type | string, boolean, integer hoặc number. |
Ví dụ sử dụng
- tapOn: "Continue"
- assertEvents:
- Onboarding Step Viewed:
step: { in: [1, 2] }
source: { regex: "^onb" }