您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
安卓App压力测试 - Monkey的使用
 
作者:SailWu
  2559  次浏览      16
2020-8-24 
 
编辑推荐:
本文主要介绍了Monkey的使用步骤、Monkey命令的扩展等相关内容,希望本文对大家有所帮助。
本文来自于csdn,由火龙果软件Alice编辑、推荐。

Monkey是安卓开发工具包SDK自带的一个命令行工具,可用于安卓App的压力测试,其原理是通过命令行向手机发送随机事件的指令,随机事件包括点击,划屏和输入等操作,这些操作都是随机不可控的,可控的是需要操作的App,每次操作间隔的时间以及随机事件的次数等。

Monkey的使用步骤是:

1.安卓手机装好待测App,跟电脑连接,或者从SDK中打开安卓模拟器

2.打开命令行,输入adb start-server开启adb服务

3.输入adb devices测试手机连接是否正常

4.输入adb shell进入手机shell界面

5.monkey -p {App包名} {次数}

第5步就是调用monkey命令对安卓App进行压力测试。

例如:monkey -p com.tencent.mobileqq 100

即对包名为com.tencent.mobileqq的App发送100次随机事件的命令,发送完成后手机会自动运行该App并进行一系列随机操作。

Monkey命令的扩展:

monkey命令还可以带其它参数,如–throttle 150,这个参数表示每个随机事件之间的间隔时间为150毫秒。

monkey -p com.tencent.mobileqq –throttle 150 100

表示一百个随机事件,每个事件间隔时间150毫秒

还可以设置输出的log的级别,使用参数 -v 10,如果没有调用这个参数,默认是-v 0,也就是说除了启动App,提示测试完成和最终结果,没有其它详细信息了,这里不利于App崩溃原因的追踪。数值越大,log也就越详细。

monkey -p com.tencent.mobileqq -v 10 100

如果想把运行的log保存到本地,可以不需要进入到shell界面中,直接用adb命令连起来写,例如:

adb shell monkey -p com.tencent.mobileqq 100 > c:\monkey\test.txt

查看该路径下面的文件

查看txt文本文件

一般来说,我们可以一次发送5万次随机事件的请求,每个请求之间间隔150毫秒,完成这个测试大概需要40分钟左右,完成以后就可以在设置的本地路径下面找到报告的文本文件,若出现App崩溃的问题,会有详细的log记录。

这里表示腾讯QQ在执行第9061次时间的时候发生了崩溃,我们只需要向App开发组提供这份log就可以去跟踪崩溃的原因了。

综上,我们做安卓压力测试的一个完整命令是

adb shell monkey -p com.tencent.mobileqq -v 10 –throttle 150 50000 > c:\monkey\test.txt

另外有一个小彩蛋,在执行这个命令的时候,由于安卓手机可以下来打开通知栏,因手机的不同,播放音乐也会在通知栏里面,很可能会点到播放音乐,所以采用真机测试的时候,将手机调为振动或者无声吧,如果想制作气氛并且把放歌的责任推卸到monkey身上,请无视上面的建议。

还有其它的参数,比如设置点击屏幕,home键,back键,音量键,划屏和输入这些操作的比例,也可以实现,因为使用不太多,这里就不详细介绍了。

 

 
   
2559 次浏览       16
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
Flutter-你还在滥用StatefulWidget吗
移动APP安全测试要点
深入浅出 Kotlin 协程
iOS 组件化 —— 路由设计思路分析
移动端跨平台开发的深度解析
最新课程
Android高级移动应用程序开发
Android应用开发
Android系统开发
Android应用高级开发
移动互联网应用开发(iOS,Android,HTML5)
更多...   
成功案例
北京 iOS开发技术深入研究
某企业 Android高级移动应用程序开发
中体彩 Android产品级测试
移动通信 移动互联网应用开发原理
某电力行 android开发平台最佳
更多...