killApp

Force stop an app and optionally clear all its data and cache.

The killApp command terminates the running application. It is designed specifically for mobile environments to simulate the application being closed.

circle-info

The killApp has no effect over Web tests.

Syntax

The killApp command can take an optional appId. If no appId is provided, Maestro targets the application defined in the Flow's header.

# Terminates the default app
- killApp

# Terminates a specific app
- killApp: 
    appId: "com.example.otherapp"
circle-info

Android

On Android, this command triggers a system-initiated process death, which is equivalent to running adb shell am kill {package name}.

Usage examples

The following example demonstrates how to trigger and recover from a system-initiated process death on Android. This command is useful for testing an application's ability to gracefully launch after being terminated suddenly by the OS.

# trigger-process-death.yaml
appId: com.example
---
- pressKey: Home # Puts the app into the background
- killApp # Kills the app via system-initiated process death
- launchApp: # Relaunches the app
    stopApp: false # Don't attempt a clean stop of the app first

Best practices

Maestro team recommends defining the process death commands as a reusable subflow (e.g., trigger-process-death.yaml) and calling it via runFlow in your tests. This ensures that the screen under test maintains its data after the system-initiated process death.

The following example demonstrates how to verify data persistence:

Last updated