学习笔记之Android自动化测试工具Monkey

原创 2017年01月03日 16:36:51

一、Monkey简介

          Monkey测试是Android平台下自动化测试的一种快速有效的手段,通过Monkey工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。至于Monkey的名字是有何而来的呢?这个没有去怎么考究,Monkey这个工具就是一个调皮的猴子,在App中乱按、乱摸、乱滚、乱跳。

二、使用过程

1.安装你要测试的apk(秽话...)

2.在电脑上运行cmd,找到Android SDK的playform-tools目录,并输入命令

adb shell monkey -p com.xxx... -v  10000 >D:\monkeylog.txt

3.回车执行,手机进入monkey测试,测试结束后log日志在对应设置的路径位置(PC)

三、Monkey命令参数说明

通过上文我们已经了解到,通过adb命令开始执行monkey测试,monkey命令的基本格式为:

adb shell monkey –p com.xxx –v 10000 这条命令中,-p代表一个包,即我们monkey测试的对象,一条命令可以有多个包,每添加一个包则需要一个-p,如 adb shell monkey –p 包1 –p 包2…..com.xxx 就是我们需要执行测试的对象-v 代表返回结果的详尽程度,分为3级,分别是level 1 level 2 level 3,级别越高,返回的log会更详尽,1级为-v ,2级为-v –v,3级为 –v –v –v .更为详细格式:

adb shell monkey -p com.xxx...--ignore-crashes --ignore-timeouts --throttle 500 -v -s 3500 10000 > D:\monkeylog.txt

--ignore-crashes代表当应用程序崩溃时,如果执行次数不到将继续执行,默认不设置应用崩溃Monkey会停止

--throttle 500 代表间隔时间,即每次操作的时间间隔。为了更好的模拟用户操作,需要在每次操作之间增加时间间隔,单位是毫秒,此命令的含义就是增加500ms的时间间隔。
-s 3500 代表伪随机数 10000 代表执行次数,根据实际测试需要来修改。

通过参数的设置,可以完成更多的调试功能,Monkey命令行参数中文相关说明见下表。官方英文版



四、注意事项

如果提示error: unknown host service说明adb的5037端口被哪个应用程序占用的被占用

解决办法:运行cmd输入命令netstat -ano | findstr "5037",查看到对应的进程的PID是12216




Ctrl+alt+delete,打开任务管理器,查看是哪个进程占用了12216



 

这里是LdsMobileLink.exe(鲁大师手机助手)占用了此进程,需要将该进程结束




如果无法结束进程,那么我们可以修改adb的端口号

1.打开我的电脑右键属性-高级系统设置-环境变量-系统变量-新建

2.变量名:ANDROID_ADB_SERVER_PORT 变量值:6666(你要的端口号这里为6666)

3.打开cmd输入命令netstat -ano |findstr "6666",没有返回任何结果证明该端口号没有被占用,如果有请重新设置变量值

4.在Android SDK的playform-tools目录,并输入命令adb kill-server,回车,再输入命令adb start-server,回车。


红色位置说明重启adb成功并且端口号为6666,若端口号不正确,请重新打开cmd,还是不对那就是环境变量设置有误。如果想设置为默认端口号只需要将添加的环境变量删除






版权声明:本文为博主原创文章,未经博主允许不得转载。

Android自动化测试--monkey详细到炸的总结

1.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正...
  • zjnuwsf
  • zjnuwsf
  • 2016年09月26日 16:36
  • 4075

android开发之Monkey测试_自动化测试_看看你的应用够不够健壮

教你使用android SDK自带的测试工具Monkey,对你的应用进行压力测试,看健壮性如何?...
  • jason0539
  • jason0539
  • 2015年05月11日 15:49
  • 7669

LDS文件格式分析

最近在看Linux内核时,总是遇到一些和连接脚本相关的东东,搞得人一头雾水,终于下定决心把它搞明白,写下一点心得,希望对和我一样的人有所帮助!        连接脚本的格式 ========...
  • tangg555
  • tangg555
  • 2017年03月22日 10:25
  • 153

Android软件安全与逆向分析笔记(2)

1.使用Apktool反编译apk文件后,所有的索引值保存在string.xml文件同目录下的public.xml文件中。DEX文件结构从头往下依次为:dex header->string_ids->...
  • u010725842
  • u010725842
  • 2015年08月17日 22:18
  • 330

分析.lds文件格式

连接脚本的格式 ==================== 连接脚本是文本文件. 你写了一系列的命令作为一个连接脚本. 每一个命令是一个带有参数的关键字,或者是一个对符号的赋值. 你可 ...
  • lsn946803746
  • lsn946803746
  • 2015年03月28日 10:49
  • 364

LDS文件格式分析

最近在看Linux内核时,总是遇到一些和连接脚本相关的东东,搞得人一头雾水,终于下定决心把它搞明白,写下一点心得,希望对和我一样的人有所帮助!        连接脚本的格式 ========...
  • yourgo
  • yourgo
  • 2014年09月02日 10:45
  • 100

Android系统启动过程---uboot,kernel,android

图解启动过程连接原文    http://ticktick.blog.51cto.com/823160/1659473 摘要:本文讲解Android系统在启动过程中的关键动作...
  • wjzhangcsu
  • wjzhangcsu
  • 2016年01月21日 16:29
  • 2457

Android系统启动流程分析

本文讲解Android系统在启动过程中的关键动作,摈弃特定平台之间的差异,讨论共性的部分,至于启动更加详细的过程,需要结合代码分析,这里给出流程框架,旨在让大家对开机过程更明了。 Android启动概...
  • galensphang
  • galensphang
  • 2013年10月30日 20:24
  • 4765

安卓启动流程

摘要:本文讲解Android系统在启动过程中的关键动作,摈弃特定平台之间的差异,讨论共性的部分,至于启动更加详细的过程,需要结合代码分析,这里给出流程框架,旨在让大家对开机过程更明了。   ...
  • yyyyyyyyyywwwwwwwwww
  • yyyyyyyyyywwwwwwwwww
  • 2015年07月17日 11:35
  • 516

android开发(42) 使用andorid操作蓝牙打印机

最近接到一个需求,使用android发起打印任务,通过蓝牙连接打印机。条件如下:   打印机:南京富士通DPK760E,具有蓝牙功能   Android手机:普通手机,Android 4.4版本,...
  • vir56k
  • vir56k
  • 2015年08月14日 15:22
  • 423
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习笔记之Android自动化测试工具Monkey
举报原因:
原因补充:

(最多只允许输入30个字)