Android App压力测试(Monkey和ADB)

压力测试是软件质量保证的关键环节,Android的Monkey工具提供了一种自动化压力测试方式。Monkey通过发送随机事件流模拟用户行为,暴露应用的Crash和ANR问题。ADB是Android调试桥梁,用于设备管理、文件传输和调试。Monkey与ADB结合使用,可以进行更深入的测试实践,例如通过Monkey的高级参数定制测试行为,使用Monkey Script执行复杂测试场景。
摘要由CSDN通过智能技术生成

压力测试简介

压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。要减少用于测试的资源,可运行一个称为压力器 (stressor) 的工具。

Monkey简介

  • 什么是Monkey test?
    如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试。在规定的时间或次数范围内做任何随机的操作,随即操作包括点击、滑动……
  • Monkey测试目标:通过模拟用户随机操作时间,暴露应用内Crash,降低Crash率
  • Monkey Test范围预期:除了一些系统设置,我们希望范围维持在待测试应用内,另外可以补充一些中断测试
  • 只能发现Crash,单复现和解决Crash还是需要靠开发人员
  • 暴露所有的Crash不太现实,只能在一定程度上降低Crash

Monkey是Android SDK提供的一个命令行工具(Android平台下一个命令行自动化测试工具),可以运行在模拟器里或实际设备中。 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:

  • 基本配置选项,如设置尝试的事件数量
  • 运行约束选项,如设置只对单独的一个包进行测试
  • 事件类型和频率
  • 调试选项

在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):

  • 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
  • 如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
  • 如果应用程序产生了应用程序不响应(ANR:application not responding)的错误,Monkey将会停止并报错。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件 。

  1. Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar
  2. Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了

ADB简介

adb的全称为Android Debug Bridge,就是起到调试桥的作用。说白了就是debug工具。

adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机).  它的主要功能有:

  • 运行设备的shell(命令行)
  • 管理模拟器或设备的端口映射
  • 计算机和设备之间上传/下载文件
  • 将本地apk软件安装至模拟器或android设备

ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

异常测试结果

压力测试结果
1.CRASH:崩溃,应用程序在使用过程中,非正常退出
2.ANR(Application Not Responding):等待时间过长

配置ADB环境变量

进入SDK所在的目录,找到SDK,将…\sdk\platform-tools;…\sdk\tools添加到变量值中,再把变量加入path中,这样就可以使用ADB命令了。

压力测试实践

Step 1: 在手机开发者选项中,将USB调试连上
Step 2: 确认手机和电脑已经成功连接 adb devices
Step 3: 安装测试APP adb install package.apk
Step 4: 发送压力测试指令 adb shell monkey 1000(具体事件数)
Step 5: 获取APP包名 adb logcat | findstr start
Step 6: adb shell monkey-p package(包名) 1000(具体事件数)

Monkey高级参数的应用

1) 参数: -p
参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

  • 指定一个包: adb shell monkey -p com.ht.weather 100
    说明:com.ht.weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。
  • 指定多个包:adb shell monkey -p com.ht.weather –p com.ht.pdfreader -p com.ht.photo.widgets 100
  • 不指定包:adb shell monkey 100 说明:Monkey随机启动APP并发送100个随机事件。
  • 要查看设备中所有的包,在CMD窗口中执行以下命令:
adb shell
cd data/data
ls

2) 参数: –throttle <毫秒>
用于指定用户操作(即事件)间的时延,单位是毫秒;

示例:adb shell monkey -p com.ht.weather –throttle 3000 100

3)参数: -s
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同。

示例:
 Monkey 测试1:adb shell monkey -p 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值