——————·今天距2020年86天·——————
这是ITester软件测试小栈第50次推文
要问coco这个假期有什么特别的
毫无疑问的
就是应萌新们的呼吁
写了一系列APP测试相关
码了七篇很长长又很干干的文
本来预计要嗨七天
结果五天已经闪电结束
既然如此
我们继续朝着APP这块香馍馍粗发 今天开始Monkey(一) 明天还有Monkey (二)咳咳
认真严肃
下面正文开始
(一)Monkey简介
![e941be77710515b4e2b91c99caa0169e.gif](https://img-blog.csdnimg.cn/img_convert/e941be77710515b4e2b91c99caa0169e.gif)
Monkey包括许多选项,它们大致分为四大类:
(1)基本配置选项,如设置尝试的事件数量;
(2)运行约束选项,如设置只对单独的一个包进行测试;
(3)事件类型和频率;
(4)调试选项;
![5cc66d4f011f3132f0383fb78f61e4e3.png](https://img-blog.csdnimg.cn/img_convert/5cc66d4f011f3132f0383fb78f61e4e3.png)
(二)Money原理
![e941be77710515b4e2b91c99caa0169e.gif](https://img-blog.csdnimg.cn/img_convert/e941be77710515b4e2b91c99caa0169e.gif)
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):
(1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止;
(2)如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错;
(3)如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错;
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
(1)Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:
/system/framework/monkey.jar;
(2)Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;
(3)通过在cmd窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试;
![5cc66d4f011f3132f0383fb78f61e4e3.png](https://img-blog.csdnimg.cn/img_convert/5cc66d4f011f3132f0383fb78f61e4e3.png)
(三)Monkey命令详解
关于环境,我们已经在之前搭建好了,还没搭建好的小可爱请参照:速看,APP测试之ADB最全指南, 根据文章介绍下载对应工具并完成工具安装,熟悉操作环境。查看Monkey
在system的bin目录下可以看到Monkey
需要知道待测试app的包名,可以通过使用“uiautomatorviewer.bat”工具来获取,也可以直接询问提供app的开发小哥哥,或者直接使用adb命令获取包名。
以下简单介绍两种通过adb命令获取包名的方法。
方法一:首先要先打开手机中需要获取包名的app,然后分别输入命令即可。
//获取APP包名方法一
adb shell
dumpsys activity | grep mFocusedActivity