首页 > 其他 > 详细

Monkey随机脚本生成工具与优势

时间:2021-04-04 01:05:41      阅读:35      评论:0      收藏:0      [点我收藏+]

1. Monkey 脚本生成工具架构

1.1 Monkey 脚本生成工具架构

问题导向,工具限制:

?无法跳出测试应用,交互如何测试?
?部分页面无法使用Monkey测试?
?随意跳转页面,不受限制
?脚本容易实现,简单快速
?事件更多,比如长按
?事件可定制调整,比如可以指定一些区域不点击
?更容易测试交互影响
?整机测试,交互更彻底

解决方案:使用Monkey脚本来生成随机事件流

Monkey 脚本的测试方面优势:

技术分享图片

 技术分享图片

 

 

2. Monkey异常结果

2.1 ANR输出异常格式:

System.err.println("// NOT RESPONDING:" + processName + " (pid " + pid + ")");

Crash输出异常格式:

System.err.println("// CRASH: " + processName + " (pid " + pid + ")");

System.err.println("// Short Msg: " + shortMsg);

System.err.println("// Long Msg: " + longMsg);

System.err.println("// Build Label: " +Build.FINGERPRINT);

System.err.println("// Build Changelist: " + Build.VERSION.INCREMENTAL);

System.err.println("// Build Time: " + Build.TIME);

System.err.println("// " + stackTrace.replace("\n", "\n// "));

2.2 ANR输出输出LOG:

// NOT RESPONDING: com.android.quicksearchbox (pid 6333)

ANR in com.android.quicksearchbox (com.android.quicksearchbox/.SearchActivity)

CPU usage from8381ms to 2276ms ago:

procrank:     à adb shell procrank

anr traces:    à保存于/data/anr/traces.txt

meminfo:     àadb shell dumpsysmeminfo

Bugreport    àadb bugreport  可选通过 --bugreport参数控制

2.3 CRASH输出输出LOG:

// CRASH: com.android.quicksearchbox (pid 1699)

// Short Msg: java.lang.NullPointerException

// Long Msg: java.lang.NullPointerException: Attempt to invokevirtual method ‘com.android.quicksearchbox.SourceResultcom.android.quicksearchbox.Suggestions.getResult()‘ on a nullobject reference

// Build Label: generic/vbox86p/vbox86p:5.0/LRX21M/buildbot12160004:userdebug/test-keys

// Build Changelist: eng.buildbot.20141216.000103

// Build Time: 1418684697000

// java.lang.RuntimeException: Unable to stopactivity {com.android.quicksearchbox/com.android.quicksearchbox.SearchActivity}: java.lang.NullPointerException: Attempt to invokevirtual method ‘com.android.quicksearchbox.SourceResultcom.android.quicksearchbox.Suggestions.getResult()‘ on a nullobject reference

//   at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3344)

//   at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3390)

//   atandroid.app.ActivityThread.access$1100(ActivityThread.java:144)

//   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)

//   at android.os.Handler.dispatchMessage(Handler.java:102)

//   at android.os.Looper.loop(Looper.java:135)

 

技术分享图片

 

3. Monkey测试策略介绍

 技术分享图片

 

 

策略例子1:整机测试,而不测试拨号盘应用,忽略所有错误,次数100万次

? adb shellmonkey -- ignore-crashes --ignore-timeouts -- pkg -blacklist-file/data/local/ tmp /blacklist.txt-v -v 1000000

策略例子2:测试计算器30万次,随机种子为100,随机延迟0-1秒,忽略所有错误

? adb shell monkey  -pcom.android.calculator2  -s 100--throttle 1000 --randomize-throttle--ignore-crashes --ignore-timeouts -v -v 300000

策略例子3:测试计算器,触摸事件30%,其他按键50%,错误停止,延时200

? adb shell monkey -p com.android.calculator2 --throttle 200 -- pct -touch30 -- pct-anyevent 50 -v -v 100000

策略例子4:对计算器进行旋转压力测试,事件延时2秒,10万次

? adb shell monkey -p com.android.calculator2 -- pct -rotation 100 --throttle 2000100000

策略例子5:仅对整机的应用开启测试,事件延时5秒,10万次

? adb shell monkey -- pct-appswitch 100 --throttle 5000 100000

Monkey随机脚本生成工具与优势

原文:https://www.cnblogs.com/shenminle/p/14615374.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!