Bỏ qua, đến nội dung

killApp ​

Buộc dừng một app và có thể xoá toàn bộ dữ liệu và cache của nó.

Command killApp kết thúc app đang chạy. Được thiết kế riêng cho môi trường di động để giả lập việc app bị đóng.

Cú pháp ​

Command killApp có thể nhận appId không bắt buộc. Nếu không có appId, Astra Scout nhắm tới app khai báo ở phần header của flow.

yaml
# Kết thúc app mặc định
- killApp

# Kết thúc một app cụ thể
- killApp: 
    appId: "com.example.otherapp"

Android

Trên Android, command này kích hoạt việc process bị hệ thống tắt (system-initiated process death), tương đương với chạy adb shell am kill {package name}.

Ví dụ sử dụng ​

Ví dụ sau minh họa cách kích hoạt và phục hồi sau khi process bị hệ thống tắt trên Android. Command này hữu ích để test khả năng app khởi chạy ổn thỏa sau khi bị hệ điều hành tắt đột ngột.

yaml
# trigger-process-death.yaml
appId: com.example
---
- pressKey: Home # Đưa app vào nền
- killApp # Tắt app bằng system-initiated process death
- launchApp: # Mở lại app
    stopApp: false # Không cố dừng app một cách sạch trước

Thực hành tốt nhất ​

Nên định nghĩa các command process death thành một subflow tái sử dụng được (ví dụ trigger-process-death.yaml) và gọi bằng runFlow trong test. Cách này đảm bảo màn hình đang test giữ nguyên dữ liệu sau khi process bị hệ thống tắt.

Ví dụ sau minh họa cách xác minh dữ liệu được giữ lại:

yaml
appId: com.example
---
- launchApp

- tapOn:
    id: "com.example:id/enter_name"
- inputText: "John Doe"
- tapOn:
    id: "com.example:id/next"

- assertVisible:
    id: "com.example:id/show_name"
    text: "Name = John Doe"
    enabled: true

- runFlow: trigger-process-death.yaml

- assertVisible:
    id: "com.example:id/show_name"
    text: "Name = John Doe"
    label: "Asserts that \"Name = John Doe\" meaning the screen kept its data after System-initiated Process Death"
    enabled: true