第一步:下载并安装 Android Studio 开发工具到磁盘目录下
我选用目前主流的 Android 开发工具Android Studio作为以后整个系列的主要工具,后续不再一一说明。
![](/uploads/photo/2016/16bcaf9243502f882758489862cda0bf.png!large)
第二步:设置系统环境变量
将D:\Android\SDK\platform-tools放到path中
![](/uploads/photo/2016/2216de3711d1f9a6799603281fa154b4.png!large)
第三步:创建模拟器,并进行初始化
选中MainActivity,点击run,等待模拟器加载完毕
![](/uploads/photo/2016/fb3d688ce779219e5af557135bb38cd3.png!large)
第四步:连接模拟器
打开 cmd,使用 adb devices 命令连接 Google Emulator
![](/uploads/photo/2016/be3790e14152050faf19ae72ce41a536.png!large)
第五步:安装所测 APK 文件到模拟器中
- 复制所测 apk 文件到platform-tools文件的目录下,然后切换到D:\Android\SDK\platform-tools,进入platform-tools文件的目录下
![](/uploads/photo/2016/fda01b9642b8a4b6e9ff84a8416a2b6e.png!large)
- 在 CMD 命令行中输入命令 adb install xxx.apk,将需要测试的 apk 文件安装到 Google Emulator 中
![](/uploads/photo/2016/09ca8743ddc0b31675a84f4a03a426ec.png!large)
![](/uploads/photo/2016/f095564297ab44990df89428e39f5f3f.png!large)
第六步:找到所测 package name
使用adb shell,输入 ls,第一次 cd data,然后再次输入 ls,第二次 cd data,最后找到com.xxx.xxx为名的 package name
![](/uploads/photo/2016/9df1850f61535a4107d614745c15aba5.png!large)
第七步:使用 monkey 命令随机操作 1000 次 (具体用法参考 Google Doc)
在 CMD 中输入 monkey -p package name -v --ignore-timeouts --ignore-crashes --ignore-security-exceptions 1000命令,对所测目标进行操作。
![](/uploads/photo/2016/eec980e43ff4ccf0cae82013232a5ef6.png!large)
命令讲解
-
--ignore-timeouts:忽略超时事件继续运行
-
--ignore-crashes:忽略崩溃事件继续运行
-
--ignore-security-exceptions:忽略异常事件继续运行
-
1000:随机操作 1000 次
1000 次随机操作运行结束
![](/uploads/photo/2016/567678e01ce0fd90989d3579792f1f10.png!large)
第八步:输出带有 W 和 E 级别的日志信息
使用 adb logcat > D:/monkeylog.txt 导出筛选过的日志信息
![](/uploads/photo/2016/7baabb0b3ecfc16046e0f14a1d275d58.png!large)
整个操作过程中遇到的坑
- 问题:How to solve INSTALL_FAILED_DEXOPT this error?
答案:Android Studio >Build > Clean Project
问题: 运行 adb shell monkey XXX,控制台提示 error:device offline
答案: 在 adb shell 里面运行 monkey ,直接用 monkey 命令,去掉 adb shell 这个前缀。在电脑的命令行里 adb shell monkey 等价于先进入 adb 的 shell ,然后在 shell 里面启动 Monkey ,你本来就在 adb 的 shell 里面,所以 adb shell 这个前缀可以去掉。
问题:如何导出 monkey 操作日志到本地
-
答案:使用如下命令可以将 logcat 中的内容输出到文本文件中:
- 第一种事例:adb logcat > /sdcard/monkeylog.txt 保存 log 文件到 sd 卡中
- 第二种事例:adb logcat > D:/monkeylog.txt
问题:如何过滤并输出含有 W,E 两个级别的日志信息
-
答案:adb logcat -s '*:E *:W'
- The priority is one of the following character values, ordered from lowest to highest priority:
- V — Verbose (lowest priority)
- D — Debug
- I — Info
- W — Warning
- E — Error
- F — Fatal
- S — Silent (highest priority, on which nothing is ever printed)
参考资料
↙↙↙阅读原文可查看相关链接,并与作者交流