学习笔记之Android自动化测试工具Monkey
Posted 软件测试培训
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记之Android自动化测试工具Monkey相关的知识,希望对你有一定的参考价值。
顾翔老师作品《软件测试技术实战 设计、工具及管理》
http://detail.youzan.com/show/goods?alias=3erp1xpd7hmoh&from=wsc&kdtfrom=wsc&sf=wx_sm
店铺二维码:
啄木鸟软件测试培训网:www.3testing.com
本文来自:火龙果软件工程网
一、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的主要内容,如果未能解决你的问题,请参考以下文章