跑monkey命令:
adb shell monkey -p com.test.app --ignore-crashes --hprof --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -s 800 --throttle 400 100000
解析:
这个monkey命令是用于在Android设备上进行应用程序的压力测试,模拟用户随机事件以检测应用程序的异常行为。下面是该命令各部分的详细解释:
-
adb shell
: 这个部分表示命令将通过 Android Debug Bridge (ADB) 在连接的 Android 设备的 shell 中执行。 -
monkey
: 这是调用 Android Monkey 工具的命令,它用于生成伪随机用户事件流,如点击、触摸、手势、按键等,来模拟用户操作。 -
-p com.test.app
: 这个参数指定了Monkey测试的目标应用程序包名,这里是com.test.app
。 -
--ignore-crashes
: 当应用崩溃或发生任何未响应错误时,这个参数指示Monkey继续执行,而不是停止。 -
--hprof
: 这个参数指示当发生第一个错误时,Monkey应该转储 HEAP 分析(.hprof 文件)。这对于后续的内存分析很有用。 -
--ignore-timeouts
: 使用此参数让Monkey在应用程序发生ANR(应用程序无响应)时继续运行,而不是停止。 -
--ignore-security-exceptions
: 指示Monkey忽略由于发出的事件触发安全异常而引起的崩溃。 -
--ignore-native-crashes
: 即使是由于本地代码崩溃导致的错误,Monkey也会继续运行。 -
--monitor-native-crashes
: 监视并报告本地代码崩溃的情况。 -
-s 800
: 这是种子值,用于使事件序列具有确定性。使用同一种子值将重复相同的事件序列。 -
--throttle 400
: 在每个事件之间插入400毫秒的延迟。这样做是为了更接近真实用户操作的速度。 -
100000
: 这个数字指定了Monkey将执行的总事件数。在这个例子中,Monkey会发送 100,000 个随机事件。
综上所述,这个命令配置了Monkey工具在特定设备上对 com.hmdglobal.app.camera
应用执行 100,000 个伪随机事件的测试,忽略了各种可能的异常情况,允许测试在出现问题时继续执行,同时每个事件之间有一定的延迟时间。
停止monkey:
方式一:
-
输入以下命令查找正在运行的monkey进程的PID(进程ID):
adb shell ps | grep monkey
这将列出所有包含“monkey”字符串的进程。查找包含"com.android.commands.monkey"的那一行,该行就表示monkey进程。通常,进程ID是行中的一串数字,位于用户名之后。
-
一旦找到PID,您可以使用以下命令结束monkey进程:
adb shell kill <PID>
其中
<PID>
需要替换为实际的进程ID。
方式二:
如果您无法确定PID或者找到多个进程,可以使用更加直接的方法强制停止所有monkey进程:
adb shell killall com.android.commands.monkey
或者,如果您的Android设备支持pkill
命令,您可以尝试以下命令:
adb shell pkill -f com.android.commands.monkey