一、Monkey常规测试
Monkey测试思考
.Monkey是做什么的
.如何对应用进行全面的测试 ?
.Monkey工具是好,但是如何能用好,发挥最大效用
.Monkey如何对应用不同的场景实施测试
.Monkey有哪些缺点与问题,该如何规避
.Monkey脚本可以使用在哪些地方
Monkey测试分解
命令的组合:
应用选取策略+随机种子策略+事件策略+异常策略+延时策略+事件数量
.应用选取策略:
1、单应用
2、多应用组合(1.配合关联性应用 2.与系统应用一起测,例:提高内存、cpu等问题)
3、黑白名单组合
4、整机测试
.随机种子策略:
1、固定种子,从小到极大的种子
2、随机种子
.事件策略:
1、用户故事策略:依据常见的用户场景划分各事件百分比
2、应用特性策略:依据应用策略对Monkey各事件进行划分百分比
3、专项测试策略:对某个事件提高到很高的百分比,对应用进行专项测试
.异常策略:
1、跑完:全部异常忽略
2、专门测试某个异常出现:不忽略某个异常,出现某个异常即停止测试
3、人在时候:上班过程中跑不忽略异常,出现异常马上停止,可以马上分析
4、验收策略:去除全部异常,出现错误则停止,则验收不通过
.延时策略
1、低延时
2、高延时
3、随机延时
4、用户操作延时
.事件数量
1、常规测试:10万
2、压力型测试:30万
3、稳定性测试:50万
4、长时间执行:100万
Monkey策略指导
依据软件处于不同的阶段,软件的成熟度,选用不同的策略
接下来就是使用表格或是文档,对这些策略进行计划性的填写,方便测试;
二、Monkey专项测试
事件压力专项
性能测试专项
1、分类
Monkey测试针对不一样的对象,不一样的目的,采用不一样的测略方案。
测试类型分为:android
应用程序的稳定性测试和压力测试shell
测试对象分为:浏览器
单个APK和多个APK集合网络
测试目的分为:
解决问题的测试(忽略异常)和验收测试(不忽略异常)测试
2、稳定性测试
一、针对单个APK命令行
1)不忽略异常的测试视频
例如:
adb shell monkey -p com.android.browser --throdttle 1000 -s 100 -v -v -v 15000 >f:\monkey_log.txt
在进行单个APK的验收测试时,则使用单一APK且不忽略异常的使用命令执行。
2)忽略异常的测试
在进行单个APK的解决问题的测试时,则使用单一APK且忽略异常的命令执行,这样能够在一次执行的过程当中发现应用程序的多个问题。
例如:
adb shell monkey -p com.android.browser --throttle 1000 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-carshes --monitor-native-crashes -v-v-v 15000 >f:\monkey_log.txt
二、APK集合(针对多个APK)
经过白名单对APK集合进行测试,命令:–pkg-whitelist-file
1)不忽略异常的测试
例如:
adb shell monkey -pkg-whilelist-file /data/whitelist.txt --thorttle 1000 -s 100 -v -v -v 15000 >f:\monkey_log.txt
2)忽略异常的测试
例如:
adb shell monkey -pkg-whilelist-file /data/whitelist.txt --throttle 1000 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-carshes --monitor-native-crashes -v-v-v 15000 >f:\monkey_log.txt
解释:
–ignore-crashes:
用于指定当应用程序崩溃时(Force& Close错误),Monkey是否中止运行。若是使用此参数,即便应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
–ignore-timeouts:
用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否中止运行。若是使用此参数,即便应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。
–ignore-security-exceptions:
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否中止运行。若是使用此参数,即便应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
–ignore-native-carshes:
忽略本地代码致使的崩溃
–monitor-native-crashes :
用于指定是否监视并报告应用程序发生崩溃的本地代码。
3、压力测试/健壮性测试
一、针对单个APK
主要是缩短Monkey测试中事件与事件之间的延迟时间,验证在快速的事件的响应过程当中,程序是否能正常运行。
能够将–throtthle的值设定为500毫秒,或者更小,通常都使用500毫秒的延迟事件。
二、多个APK集合
进行多个APK集合测试时,对于高频率使用的APK,长时间使用的APK,都要包含在所执行的应用程序中间。
三、APK的具体分类:
高频率使用的apk、长时间使用的apk、下载用户量可以让运营人员从后台导出数据