monkey 安装 - 使用 - 回归 - 日志输出 -排查
Posted bzdmz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了monkey 安装 - 使用 - 回归 - 日志输出 -排查相关的知识,希望对你有一定的参考价值。
monkey的简单介绍
Monkey测试是android app自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入等,看设备是否出异常。
当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机事件,所以可以用Monkey用随机重复的方法去测试app.
一:前提:电脑已经安装AndroidSDK
1.设安装包: xxx.apk ,包名为:com.xxx_xxx
2.把安装包放在:C:\monkey (monkey为新建的文件夹)
3.cmd进入命令行,手机和电脑连接。手机打开开发者模式,允许调试
4.输入:adb devices ,出现下图的提示,表示连接成功,就可以进行下一步操作。
二:输入命令:cd C:\monkey 这样就进入了放置安装包的目录下,就可以安装安装包了
1.安装包:adb install xxx.apk
2.查看包名:aapt dump badging C:\monkey\xxx.apk
3. 直接运行10次 :adb shell monkey -v -p com.xxx_xxx(包名) 10
4.重复以上操作: adb shell monkey -s (seed) -v <envent-count> 如:adb shell monkey -s 1535655135292 -v 10
5.生成txt日志:adb shell monkey -v -p com.xxx_xxx(包名) 10 >./monkey_log.txt
三:指定时间参数设置
在Monkey中,虽然输入的事件是随机产生的,但是可以指定输入事件类型的百分比,让其控制在我们需要的范围内。
在Monkey中,可以设定的事件类型有:
--pct-touch <percent>:指定触摸事件的百分比。--pct-motion <percent>:指定滑动事件的百分比--pct-trackball <percent>:指定轨迹球事件的百分比--pct-nav <percent>:指定导航事件中,up、down、left、right等事件的百分比--pct-majornav <percent>:指定导航事件中,back、menu等事件的百分比--pct-syskeys <percent>:指定系统按键的百分比,包括HOME、Back、音量等。--pct-appswitch <percent>:指定Activity之间切换的比例。--pct-anyevent <percent>:指定任意事件的百分比
默认情况下,如果不设置,会是-pct-anyevent为百分之百,也就是纯随机事件。如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。
四、日志参数
-v 较少的日志信息
-v -v 较为丰富的日志信息
-v -v -v 最高级别的日志信息
一般情况下单个app monkey 模拟测试10万次足矣。
五、以下是app monkey测试的详细步骤
1. 先进入cmd界面,输入adb devices,查看是否正常连接。
2. 输入adb logcat | findstr START 监控app,打开你要测试的app,cmd查看app的包名。cmp=右边的就是app的包名。
3. 输入adb logcat -c 先清除下logcat日志信息
4. 输入adb logcat -v time >F:\logcat.log
5. 输入adb shell monkey -p +app包名 -v 10000 >F:\monkey.log
0–> –pct-touch
1–> –pct-motion
3–> –pct-trackball
6–> –pct-nav
7–> –pct-majornav
8–> –pct-syskeys
9–> –pct-appswitch
11–> –pct-anyevent
六、通过adb命令做回归测试
当开发修改问题后,需要做回归测试验证是否修改ok,此时测试人员需要使用上一次跑的monkey测试中的seed值做回归测试。
** System appears to have crashed at event 468 of 1000 using seed 1557722456728
该seed值,在上次跑完脚本的时候,可以在最后一行显示打印出来,记得日志显示使用详细,即-v -v -v才能看到seed值
adb shell monkey -p +包名 -s +seed值 -v 10000
比如
adb shell monkey -p com.shanjian.originaldesign -s 1536629919450 -v10000
七、monkey日志分析
当monkey测试时出现问题,此时我们需要分析定位问题,我们需要分析monkey日志
Monkey测试出现的异常的原因:
一般是两种原因导致的,一个是crash 程序崩溃,导致crash原因如下
a)、程序存在空指针
b)、cpu不足
c)、内存不足
另一种是ANR 程序无响应,导致anr无响应原因如下:
a)、线程阻塞
b)、cpu不足
c)、内存不足
查找分析原因:
1. 当monkey测试出现异常终止,请打开logcat日志搜索关键字‘anrin’,如果存在该关键字,说明app出现了ANR异常,我们需要把/data/anr目录下的trace.txt文件取下来。
2. 取下来trace.txt文件后,将出现问题的进程号对应的日志发给软件工程师定位,如果在logcat日志里没有搜索到’anrin’关键字,就搜索’nullpointer’异常关键字的上下日志,发给开发定位
3. 当出现ANR后,需要导出,步骤如下:
1. 输入adb shell
2. 输入cd /data/anr/
3. 输入ls
退出exit后,直接在cmd下输入
4. adb pull /data/anr/traces.txt d:\trace.txt
5. 在logcat将出现anr问题的进程号复制,然后在trace.txt文件里按ctrl+F 查找,粘贴进程号,查找对应的问题
---------------------
作者:shawn xie123
来源:CSDN
原文:https://blog.csdn.net/xiezhiming1234/article/details/82121232
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于monkey 安装 - 使用 - 回归 - 日志输出 -排查的主要内容,如果未能解决你的问题,请参考以下文章
HDU - 6178:Monkeys (贪心&树上最大匹配输&输入优化)
跑健壮性Monkey,出现一次Crash全过程-日志分析-董浩-Dotest