Basic Usage and Parameter Configuration of Android Monkey for Automated Testing
This guide explains how to use the Android Monkey tool to generate random user events for stress testing, configure its parameters for different testing scenarios, and analyze the resulting logs to identify crashes, ANRs, and event sequences that affect app stability.
Monkey is an automated testing tool that generates pseudo‑random user event streams (such as clicks, touches, gestures) to stress‑test Android applications.
Basic command format: adb shell monkey [options] [event-count] . For example, to send 1,000 random events to the app with package com.example.myapp , run adb shell monkey -p com.example.myapp 1000 , which will execute the events and return the result.
To customize testing, you can add various options:
Ignore crashes and timeouts: adb shell monkey --ignore-crashes --ignore-timeouts -p com.example.myapp 5000
Set event interval (throttle) in milliseconds: adb shell monkey --throttle 300 -p com.example.myapp 5000
Adjust event type ratios, e.g., increase touch events to 50%: adb shell monkey --pct-touch 50 -p com.example.myapp 5000
Common event‑type options include:
--pct-touch : touch events
--pct-motion : motion (swipe) events
--pct-trackball : trackball events
--pct-nav : navigation (directional) events
--pct-majornav : major navigation events (menu, back)
After a Monkey run, logs are displayed in the terminal. To save them for later analysis, redirect output to a file: adb shell monkey -p com.example.myapp 5000 > monkey_log.txt . The log contains all generated events and their outcomes; pay special attention to ANR warnings, crash reports, and the event sequence that caused issues.
If a specific event sequence triggers a crash, you can reproduce it by using the same seed value, e.g., adb shell monkey -s 12345 -p com.example.myapp 5000 , which helps in debugging.
By mastering these commands, options, and log‑analysis techniques, you can improve app stability and user experience.
Test Development Learning Exchange
Test Development Learning Exchange
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.