App稳定性测试
⼀、什么是稳定性测试
1:稳定性测试概念
稳定性测试就是指软件长时间的持续运⾏,系统版本是否稳定,是否能否持续的为⽤户提供服务。
稳定性测试其实也是性能测试范畴中的⼀种⽅式。
2:稳定性测试指标
异常的次数
异常的频率
3:稳定性测试⼯具
1:⾸选Monkey
Monkey是向系统发送随机的⽤户事件流(如按键输⼊、触摸屏输⼊和⼿势输⼊等),实现对正在开发的应⽤程序进⾏稳定性测试。可以更好的模拟⽤户操作,确保App的稳定性。
通过Monkey程序模拟⽤户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常
2:MonkeyRunner
monkeyRunner 对monkey 命令进⾏封装后的api
3:Monkey 局限性
1)发送的事件⽆法指定,是随机发送的
2)测试的应⽤只能是app
3)Monkey虽然可以通过指令来发送事件,但是没有⽀持条件判断,也不⽀持读取待测界⾯的信息来执⾏验证操作
4:Monkey原理
Monkey 程序是由 Android 系统⾃带,使⽤ Java 语⾔写成,其本⾝是安卓系统下的⼀个monkey.jar⽂件。在Android⽂件系统中的存放路径是: /system/framework/monkey.jar;
Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;
Monkey 启动⽅式:在 cmd 命令提⽰符⾥⾯输⼊命令⾏来启动 monkey 测试。
命令⾏:adb shell monkey——monkey.shell——monkey.jar——安卓进程——设备上执⾏测试
⼆、如何⽤Monkey进⾏稳定性测试
1:Monkey环境搭建
1)Android SDK环境:下载⽹址:www.androiddevtools/
2)设备(真机/模拟器)
夜神、mumu等都可以
2:Monkey⽀持参数
1)连接设备
连接设备
设备:开启USB调试选项
通过在命令⾏输⼊adb devices来进⾏连接
android11系统更新包下载2)事件数
Monkey⽀持的所有命令:adb shell monkey查看
必选的命令:COUNT:事件数 通过事件数量来测试稳定性
3)事件间隔时间设置
--throttle <milliseconds> 在事件之间插⼊固定延迟。通过这个选项可以控制Monkey发送事件的频率。时间单位是ms
例1:发送10个事件,持续执⾏时间1分钟
adb shell monkey --throttle 6000 10
例2:模拟⽤户操作,持续执⾏时间1分钟
adb shell monkey --throttle 500 120
4)指定执⾏apk包
-p <allowed-package-name> 此参数指定了⼀个包,Monkey将只允许系统启动这些包⾥的Activity
-p <allowed-package-name1> -p <allowed-package-name2> 如果⽤此参数指定了⼏个包,Monkey将只允许系统启动这些包⾥的Activity
例3:对58同城进⾏稳定性测试,执⾏100次事件
adb shell monkey -p com.wuba 100
获取包名
adb shell pm list packages
5)⽇志
-v Level 0 除启动提⽰、测试完成和最终结果之外,提供较少信息
-v-v Level 1 提供较为详细的测试信息,如逐个发送到Activity的事件
-v-v-v Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。
例4:对58同城进⾏稳定性测试,执⾏100次事件,分别查看不同⽇志级别记录的信息情况
adb shell monkey -p com.wuba -v 100
adb shell monkey -p com.wuba -v-v 100
adb shell monkey -p com.wuba -v -v -v 100
⽇志导出到本地
adb shell monkey -p com.wuba -v-v-v 100 >d:\
6)seed值
在Monkey运⾏过程中,肯定会发现异常、奔溃、⽆响应等问题,对于此类问题如何进⾏复现呢?
-s <seed> 伪随机数⽣成器的seed值。如果⽤相同的seed值再次运⾏Monkey,它将⽣成相同的事件序列。
使⽤场景:
复现bug,回归测试(验证bug)
adb shell monkey -s 1593077384911 -p com.wuba -v-v-v 100 >d:\
adb shell monkey -s 100 -p com.wuba -v-v-v 50
7)调试选项
在Monkey运⾏过程中,我们可以通过结束进程的⽅式来终⽌Monkey的执⾏,当然在运⾏过程中遇到异常、奔溃等情况Monkey也会停⽌。为了保证执⾏的事件数执⾏完整,我们可以通过调试选项的设置来防⽌在运⾏过程中Monkey命令的提前结束。
--ignore-crashes 忽略在应⽤程序出现crash时导致的monkey停⽌
--ignore-timeouts 忽略在应⽤程序出现ANR问题时导致monkey停⽌
--ignore-security-exceptions 忽略应⽤程序发⽣许可错误时导致monkey停⽌
例5:对58同城进⾏稳定性测试,执⾏50次事件,忽略过程中遇到的异常,直到50次事件完成
adb shell monkey -p com.wuba --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 50
三、Monkey事件类型
1:操作事件简介
monkey所操作的随机事件流中包含11⼤事件,分别是触摸事件、⼿势事件、⼆指缩放事件、轨迹球事
件、屏幕旋转事件、基本导航事件、主要导航事件、系统按键事件、启动activity事件、键盘事件、其他类型事件
2:操作事件简要说明
1. 触摸事件:指在屏幕某处按下并抬起的操作,可通过--pct-touch参数来配置其事件百分⽐。
2. ⼿势事件:指在屏幕某处的按下、随机移动、抬起的操作,即直线滑动操作;可通过--pct-motion参数来配置其事件百分⽐
3. ⼆指缩放事件:⼆指缩放事件是指在屏幕上的两处同时按下,并同时移动,最后同时抬起的操作,即智能机上的放⼤缩⼩⼿势操作;
可通过--pct-pinchzoom参数来配置其事件百分⽐。
4. 轨迹球事件:轨迹事件是由⼀个或多个随机的移动组成的,有时会伴随着点击,即⼀系列的曲线滑动操作;可通过--pct-trackball参数
来配置其事件百分⽐。
5. 屏幕旋转事件:模拟的Android⼿机的横屏和竖屏切换;可通过--pct-rotation参数来配置其事件百分⽐。
6. 基本导航事件:现在⼿机上很少有上、下、左、右按键,这种事件⼀般⽤得⽐较少;可通过--pct-nav参数来配置其事件百分⽐。 -- ⽤
的⽐较少
7. 主要导航事件:主要导航事件是指点击“主要导航”按键的操作,这些按键通常会导致UI界⾯中的动作,如键盘的中间键、回退按键、菜
单按键,可通过--pct-majornav参数来配置其事件百分⽐。
8. 系统按键事件:系统按键事件是指点击系统保留使⽤的按键的操作,如点击Home键、返回键、⾳量调节键等。
9. 启动activity事件:启动Activity事件是指在⼿机上启动⼀个Activity的操作。在随机的时间间隔中,Monkey将执⾏⼀个startActivity()
⽅法,作为最⼤限度上覆盖被测包中全部Activity的⼀种⽅法。可通过--pct-appswitch参数来配置其事件百分⽐。
10. 键盘事件:键盘事件主要是⼀些与键盘相关的操作。⽐如点击输⼊框键盘弹起、点击输⼊框以外区域键盘收回等。可通过--pct-flip参数
来配置其事件百分⽐。
11. 其他类型事件:其他类型事件包括了除前⾯提到的10种事件外其他所有的事件,如按键、其他不常⽤的设备上的按钮等。可通过--pct-
anyevent参数来配置其事件百分⽐。 -- ⽤的⽐较少
12. 指定执⾏触摸事件--pct-touch 100次 adb shell monkey -v -v -v -s 6789 --throttle 300 --ignore-crashes --ignore-timeouts --pct-touch 100 -p com.android.calculator2
100 > ⽇期.log
13.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论