学习笔记之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命令行参数中文相关说明见下表。官方英文版

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

四、注意事项

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

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

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

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

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

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

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

如果无法结束进程,那么我们可以修改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,回车。

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

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

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


顾翔凡言:

 软件的基本功能质量应该主要由开发人员负责,测试人员的主要责任在于非功能质量,比如:性能、易用性、可靠性。以及边缘问题及深层问题,边缘问题及深层问题主要靠探索式测试完成




以上是关于学习笔记之Android自动化测试工具Monkey的主要内容,如果未能解决你的问题,请参考以下文章

monkey学习笔记

Android App压力测试之Monkey

Android自动化之Monkey环境搭建

Android自动化测试之Monkey

Android自动化测试之Monkey

Android自动化测试之Monkey