【软件工程综合实践专题-第四次个人作业-1759106】

时间:2021-06-11 21:55:33

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),可以通过自动化高效地弥补app稳定性对测试人力和测试时间的要求

Monkey测试使用的是adb命令,因此只需要配置adb环境即可也可用真机通过USB连接电脑,连网方式可通过在安卓机上安装wifi adb应用实现。连上设备后在cmd终端中输入adb devices 查看设备连接情况

Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar

Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在shell窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了

虚拟机或者真机连接好后,直接在cmd中输入相关命令就可以进行monkey测试了,下面简单介绍下基本的命令和参数:

adb shell monkey -p 包名 –-throttle 毫秒数 --ignore-crashes --ignore-timeouts -s 9 -v -v -v 点击数 >电脑某一位置

1.直接查看手机中存在的apk包,进入adb shell 命令后,手机的data/data文件夹ls查看所有包名,找到要测apk的包名如果 是整机测试,就不需要包名

2.--throttle毫秒数:是指每两次执行之间的时间距离,可以防止由于实行过快软件还没来得及反应

3. --ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止,这里是防止Monkey测试终止

类似的参数:

--pct-trackball <percent> 调整滚动球事件百分比滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件如不规则滑动解锁

--ignore-security-exceptions 忽略权限问题的

--kill-process-after-error 当错误发生时杀进程

--monitor-native-crashes 监视崩溃时的本地代码

4. -s <seed> 伪随机数生成器的 seed 值,这里的9就是Seed值(影响随机事件的发生顺序),如果用相同的seed 值再次运行Monkey ,它将生成相同的事件序列

5.点击数一般设置30000-100000次

我选择使用Monkey测试的原因是,我们小组属于编程技术比较稚嫩的,我们开发的软件涉及的事件较简单,且我们不能确保我们编写的软件能够在手机上完美融合并能够使用,所以在电脑的模拟机上进行测试再适合不过了,Monkey测试没有额外的系统界面,也无需下载安装软件,我们只需要打开cmd,然后使用简单的语句就可以直接测试,大大的减轻了进行测试的难度,Monkey可以测试我们软件中所使用的事件的压力测试,然后它可以从内存、CPU、GPU、流量、电量五个方面去分析软件的性能,据此,我认为我们小组使用Monkey测试就可以将我们小组开发的软件所出现的问题暴露出来