什么是稳定性测试?
稳定性测试就是指软件⻓时间的持续运⾏,系统版本是否稳定,是否持续的为⽤户提供服务。
如何判断稳定性指标?
1.异常次数 (参考数据:竞品软件数据/前⼀次测试数据)
2.异常频率
什么是Monkey?
monkey是向系统发送随机的⽤户事件流(如按键输⼊、触屏控制、⼿势控制等),实现对正在开发的应⽤程序进⾏稳定性测试。可以更好的模拟⽤户操作,确保APP稳定性。
Monkey稳定性测试的本质
网上很多人说的是app的稳定性,实际上本质是指,你的应用安装到移动设备之后,对移动设备影响的稳定性
Monkey的运行原理
adb shell monkey --> monkey.shell --> monkey.jar --> 安卓进程 --> 设备上执⾏测试
Monkey命令
1.基本配置
-v --> 指定打印信息的详细级别,⼀个 -v增加⼀个级别 , 默认级别为 0
-s --> 指定产⽣随机事件种⼦值,相同的种⼦值产⽣相同的事件序列。
–throttle --> 在事件之间插⼊固定的延迟时间。你可以使⽤此选项减慢 Monkey 速度。如果未指定,则不延迟,系统会尽快地⽣成事件。
-p --> 如果你通过这种⽅式指定⼀个或多个软件包,Monkey 将仅允许系统访问这些软件包内的 Activity。如果应⽤需要访问其他软件包中的 Activity(例如选择联系⼈),你还需要指定这些软件包。如果未指定任何软件包,Monkey 将允许系统启动所有软件包中的 Activity。要指定多个软件包,请多次使⽤ -p 选项,每个软件包对应⼀个 -p 选项。
2.事件类型与频率控制
3.调试选项
Monkey发送事件类型的命令如下:
简单示例
adb shell monkey 150
150次随机事件随机频率模拟
指定包—>单包
adb shell monkey -p com.zhao.myreader 10
指定包—>多包
adb shell monkey -p package:com.zhao.myreader -p com.android.messaging -p com.android.egg 10
⽇志
-v
Level 0 除启动提示、测试完成和最终结果之外,提供较少信息
-v -v
Level 1 提供较为详细的测试信息,⽐如逐个发送Activity事件
-v -v -v
Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的Activity
举例:
adb shell monkey -p com.zhao.myreader -v 100
adb shell monkey -p com.zhao.myreader -v-v 100
adb shell monkey -p com.zhao.myreader -v-v-v 100
⽇志导出
adb shell monkey -p com.zhao.myreader -v-v-v 10 >test.txt
日志分析
–在日志中找有哪些错误
ANR/CRASH/Excepion/重启(稳定性测试的时间没有达到)
--找到错误后再定位是哪些APP或者哪些事件出错
--提交bug,并附上日志信息
1)每发现一个问题,就去提交一个bug
如果发现的问题,不属于同一个apk,则应该分开提交,因为不同的开发负责的是不同的apk
1:执行monkey12个小时,在58同城apk出现ANR问题
步骤:monkey。。。。。
实际结果:在58同城apk出现ANR问题,ANR in com.wuba (com.wuba/.activity.launch.LaunchActivity)
预期结果:执行money测试,不会出现ANR问题
附件:wuba_100_error.log
2)汇总Monkey测试过程中的所有bug,然后提交一个整的bug
如果发现的问题都是来自一个apk,则汇总后进行一个bug的提交即可
2:执行monkey12个小时,出现了anr,crash等问题
步骤:monkey。。。。。
实际结果:在58同城apk出现anr,crash等问题
预期结果:执行money测试,不会出现anr,crash问题
附件:wuba_100_error.log
--开发修复bug后,进行回归验证。使用之前的monkey命令再执行一遍,注意seed值要一样
monkey命令,注意seed值要一样