学习笔记——测试进阶之路 [深入浅出 Android 自动化测试] 第一篇:Android 开发环境部署和 Monkey 用法入门
第一步:下载并安装 Android Studio 开发工具到磁盘目录下
我选用目前主流的 Android 开发工具Android Studio作为以后整个系列的主要工具,后续不再一一说明。
第二步:设置系统环境变量
将D:\Android\SDK\platform-tools放到path中
第三步:创建模拟器,并进行初始化
选中MainActivity,点击run,等待模拟器加载完毕
第四步:连接模拟器
打开 cmd,使用 adb devices 命令连接 Google Emulator
第五步:安装所测 APK 文件到模拟器中
- 复制所测 apk 文件到platform-tools文件的目录下,然后切换到D:\Android\SDK\platform-tools,进入platform-tools文件的目录下
- 在 CMD 命令行中输入命令 adb install xxx.apk,将需要测试的 apk 文件安装到 Google Emulator 中
- 成功安装后的,APP 就会显示在模拟器中
第六步:找到所测 package name
使用adb shell,输入 ls,第一次 cd data,然后再次输入 ls,第二次 cd data,最后找到com.xxx.xxx为名的 package name
第七步:使用 monkey 命令随机操作 1000 次 (具体用法参考 Google Doc)
在 CMD 中输入 monkey -p package name -v --ignore-timeouts --ignore-crashes --ignore-security-exceptions 1000命令,对所测目标进行操作。
命令讲解
- --ignore-timeouts:忽略超时事件继续运行
- --ignore-crashes:忽略崩溃事件继续运行
- --ignore-security-exceptions:忽略异常事件继续运行
- 1000:随机操作 1000 次
1000 次随机操作运行结束
第八步:输出带有 W 和 E 级别的日志信息
使用 adb logcat > D:/monkeylog.txt 导出筛选过的日志信息
整个操作过程中遇到的坑
- 问题: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)
参考资料
- 《深入理解 Android 自动化测试》- 许奔著 - 机械工业出版社,2015-11-01
- http://adbshell.com/
- https://developer.android.com/studio/intro/index.html
- http://stackoverflow.com/questions/31431200/example-for-using-monkey-command-with-almost-all-options-in-android