多一点运气 發表於 2025-7-17 09:45:47

Monkey命令详解(压力测试工具)

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>基本语法</li><li>常用参数</li><ul class="second_class_ul"><li>2.1事件类型参数</li><li>2.2 约束测试范围</li><li>2.3 调试选项</li><li>2.4.1 示例命令</li><li>2.4.2 控制事件类型分布</li><li>2.4.3 设置事件间隔并忽略崩溃</li><li>2.4.4 测试多个App</li><li>2.4.5 监控Native 崩溃并生成内存分析</li></ul><li>进阶用法</li><ul class="second_class_ul"><li>3.1 保存日志到文件</li><li>3.2在特定Activity启动测试</li><li>3.3 组合多个参数</li></ul></ul></div><p>前言:Monkey是 Android SDK 提供的一种压力测试工具,通过向系统发送伪随机用户事件(如点击、滑动、按键等)来模拟用户操作,测试 App 的稳定性和健壮性</p>
<p class="maodian"></p><h2>基本语法</h2>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey &lt;event-count&gt;</pre></div>
<ul><li>event-count: 指定要发送的随机事件总数</li><li>options: 控件事件类型, 频率,约束条件等参数</li></ul>
<p class="maodian"></p><h2>常用参数</h2>
<p class="maodian"></p><h3>2.1事件类型参数</h3>
<div class="jb51code"><pre class="brush:bash;">--pct-touch &lt;percent&gt;      # 触摸事件百分比 (点击屏幕)
--pct-motion &lt;percent&gt;       # 手势事件百分比 (滑动操作)
--pct-trackball &lt;percent&gt;    # 轨迹球事件百分比 (模拟轨迹球输入)
--pct-nav &lt;percent&gt;          # 导航键事件百分比 (上下左右方向键)
--pct-majornav &lt;percent&gt;   # 主要导航事件百分比 (回退,菜单,Home键盘)
--pct-syskeys &lt;percent&gt;      #         系统按键百分比 (电源,音量键)
--pct-appswitch &lt;percent&gt;    # 启动Activity事件百分比
--pct-flip &lt;percent&gt;         # 键盘翻转事件百分比</pre></div>
<p class="maodian"></p><h3>2.2 约束测试范围</h3>
<div class="jb51code"><pre class="brush:bash;">-p&lt;package-name&gt;# 指定测试的app包名 (可重复使用多个-p)
-c &lt;main-category&gt;# 指定测试的Activity类别 (如android.intent.category.LAUNCHER)</pre></div>
<p class="maodian"></p><h3>2.3 调试选项</h3>
<div class="jb51code"><pre class="brush:bash;">-v                        # 详细级别(可重复使用多次,最多3次:-v -v -v)
--throttle &lt;milliseconds&gt;   # 事件间隔时间(毫秒)
--ignore-crashes            # 忽略崩溃继续测试
--ignore-timeouts         # 忽略超时继续测试
--ignore-security-exceptions # 忽略安全异常继续测试
--kill-process-after-error# 发生错误后终止进程
--monitor-native-crashes    # 监控Native代码崩溃
--hprof                     # 测试后生成HPROF内存分析文件</pre></div>
<p class="maodian"></p><h3>2.4.1 示例命令</h3>
<p>对单个App进行基础测试</p>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app -v 1000</pre></div>
<ul><li>对com.example.app 应用发送1000个随机事件</li><li>-v 显示详细日志</li></ul>
<p class="maodian"></p><h3>2.4.2 控制事件类型分布</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app \
--pct-touch 60 \
--pct-motion 30 \
--pct-appswitch 10 \
-v -v 5000</pre></div>
<ul><li>60%触摸事件,30%滑动事件,10%Activity切换事件</li><li>-v -v显示更详细的日志</li></ul>
<p class="maodian"></p><h3>2.4.3 设置事件间隔并忽略崩溃</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app \
--throttle 500 \
--ignore-crashes \
--ignore-timeouts \
10000</pre></div>
<ul><li>每个事件间隔500毫秒</li><li>忽略崩溃和超时错误,持续测试100000个事件</li></ul>
<p class="maodian"></p><h3>2.4.4 测试多个App</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app1 -p com.example.app2 -v 5000</pre></div>
<ul><li>同时测试两个app,随机在它们之间切换</li></ul>
<p class="maodian"></p><h3>2.4.5 监控Native 崩溃并生成内存分析</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app \
--monitor-native-crashes \
--hprof \
-v -v -v 2000</pre></div>
<ul><li>监控C/C++代码崩溃</li><li>测试结束后生成HPROF内存分析文件</li></ul>
<p class="maodian"></p><h2>进阶用法</h2>
<p class="maodian"></p><h3>3.1 保存日志到文件</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app -v 10000 &gt; monkey_log.txt 2&gt;&amp;1</pre></div>
<p class="maodian"></p><h3>3.2在特定Activity启动测试</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app \
-c android.intent.category.LAUNCHER \
1000</pre></div>
<p class="maodian"></p><h3>3.3 组合多个参数</h3>
<div class="jb51code"><pre class="brush:bash;">adb shell monkey -p com.example.app \
--throttle 300 \
--pct-touch 70 \
--pct-majornav 15 \
--pct-appswitch 15 \
--ignore-crashes \
--monitor-native-crashes \
-v -v 20000</pre></div>
<p>到此这篇关于Monkey命令详解的文章就介绍到这了,更多相关Monkey命令内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>Android SDK命令行工具Monkey参数及使用解析</li><li>利用 Monkey 命令操作屏幕快速滑动</li><li>android压力测试命令monkey详解</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: Monkey命令详解(压力测试工具)