日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android测试-Monkey Test

發布時間:2023/12/10 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android测试-Monkey Test 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

APP開發過程中,開人員往往自己做一些功能測試和穩定性測試,使用MonkeyTest做壓力測試是常用方法,及時修復ANR、CRASH提高項目組整體的開發效率。

一、Monkey簡介

Monkey是一種命令行工具,這個工具存在于Android系統/system/framework/monkey.jar,Android設備/模擬器連接到PC后通過adb shell使用此工具,monkey測試流程如下。

因此兩種方式使用monkey,第一種在PC端直接運行命令行:

adb shell monkey --[params]

第二種進入shell中使用:

adb shell> shell@android: monkey --[params]

二、基本使用

使用如下命令進行monkey測試:

adb shell monkey -p org.blackist.modulize --throttle 100 -v -v 100 > test.log
  • -p org.blackist.modulize:測試包名為org.blackist.modulize
  • –throttle 100:每100ms發送一次事件
  • -v -v:指定日志級別
  • > test.log:輸出日志到文件

如下是monkey日志中測試到的ANR和CRASH:

Sleeping for 100 milliseconds :Sending Key (ACTION_DOWN): 23 // KEYCODE_DPAD_CENTER // CRASH: cn.edu.zstu.sdmp (pid 17698) // Short Msg: java.lang.NullPointerException // Long Msg: java.lang.NullPointerException: Attempt to invoke virtual method 'com.wuhenzhizao.titlebar.widget.CommonTitleBar cn.edu.zstu.sdmp.manage.view.ManageActivity.getCommonTitle()' on a null object reference // Build Label: vivo/PD1603/PD1603:5.1.1/LMY47V/compiler07131528:user/release-keys // Build Changelist: eng.compiler.20180713.152451 // Build Time: 1531466945000 // java.lang.NullPointerException: Attempt to invoke virtual method 'com.wuhenzhizao.titlebar.widget.CommonTitleBar cn.edu.zstu.sdmp.manage.view.ManageActivity.getCommonTitle()' on a null object reference // at cn.edu.zstu.sdmp.manage.view.repair.RepairDetailFragment.initView(RepairDetailFragment.java:153) // at cn.edu.zstu.sdmp.manage.view.repair.RepairDetailFragment.initViewAndData(RepairDetailFragment.java:113) // at cn.edu.zstu.sdmp.common.base.BaseFragment.onCreateView(BaseFragment.java:135) // at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354) // at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419) // at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740) // at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809) // at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799) // at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580) // at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367) // at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322) // at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229) // at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700) // at android.os.Handler.handleCallback(Handler.java:739) // at android.os.Handler.dispatchMessage(Handler.java:95) // at android.os.Looper.loop(Looper.java:135) // at android.app.ActivityThread.main(ActivityThread.java:5418) // at java.lang.reflect.Method.invoke(Native Method) // at java.lang.reflect.Method.invoke(Method.java:372) // at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1037) // at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) // // NOT RESPONDING: cn.edu.zstu.sdmp (pid 17698) ANR in cn.edu.zstu.sdmp (cn.edu.zstu.sdmp/.manage.view.ManageActivity) PID: 17698 Reason: Input dispatching timed out (Waiting to send key event because the focused window has not finished processing all of the input events that were previously delivered to it. Outbound queue length: 0. Wait queue length: 1.)

可以清楚分析出錯誤所在的地方,所以monkey是個物美價廉的測試工具啊~

三、參數說明

monkey工具參數如下(圖片來源):

3.1 基礎參數

-p <允許的包名列表>

用此參數指定一個或多個包。指定包之后,monkey將只允許系統啟動指定的app。如果不指定包, monkey將允許系統啟動設備中的所有app。

指定一個包:adb shell monkey -p org.blackist.modulize 100

指定多個包:adb shell monkey -p org.blackist.modulize –p org.blackist.brouter 100

-v

用亍指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別,分別對應的參數如下:

Level 0 : adb shell monkey -p org.blackist.modulize -v 100 // 缺省值,僅提供啟動提示、測試完成和最終結果等少量信息

Level 1 : adb shell monkey -p org.blackist.modulize -v -v 100 // 提供較為詳細的日志,包括每個發送到Activity的事件信息

Level 2 : adb shell monkey -p org.blackist.modulize -v -v -v 100 // 最詳細的日志,包括了測試中選中/未選中的Activity信息

一般來說,使用Level0即可。

-s (隨機數種子)

用亍指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。 示例:

monkey測試1:adb shell monkey -p org.blackist.modulize –s 101 100

monkey測試2:adb shell monkey -p org.blackist.modulize –s 101 100

這個參數其實比較重要,比如我們只看日志不容易確定錯誤位置,需要結合monkey的UI測試過程,這時需要執行相同的隨機序列復現步驟。

–throttle (延時ms)

用亍指定用戶操作(即事件)間的時延,單位是毫秒;如果不指定這個參數,monkey會盡可能快地生成和發送消息。 示例:

adb shell monkey -p org.blackist.modulize --throttle 3000 100

3.2 發送的事件類型

–pct-touch (點擊事件)

參數percent為此事件的百分比,比如要求monkey完成10次點擊事件:

adb shell monkey -p org.blackist.modulize -v --pct-touch 100 10

可以看到如下日志,Event percentages是事件百分比,點擊事件100%,其余都是0:

:Monkey: seed=1552849997195 count=10 :AllowPackage: cn.edu.zstu.sdmp :IncludeCategory: android.intent.category.LAUNCHER :IncludeCategory: android.intent.category.MONKEY // Event percentages: // 0: 100.0% // 1: 0.0% // 2: 0.0% // 3: 0.0% // 4: -0.0% // 5: 0.0% // 6: 0.0% // 7: 0.0% // 8: 0.0% // 9: 0.0% // 10: 0.0% :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=cn.edu.zstu.sdmp/.main.view.SplashActivity;end// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cn.edu.zstu.sdmp/.main.view.SplashActivity } in package cn.edu.zstu.sdmp

–pct-motion (動作事件)

–pct-trackball (軌跡球事件)

–pct-nav (基本導航事件,輸入設備的上、下、左、右)

–pct-majornav (主要導航事件,兼容中間鍵,返回鍵,菜單按鍵)

–pct-syskeys (系統導航事件,HOME、BACK及撥號音量鍵)

–pct-appswitch (啟動App事件)

–pct-anyevent (不常用事件)

–ignore-crashes (忽略崩潰事件 CRASH)

–ignore-timeouts (忽略超時事件 ANR)

日志分析

monkey test 執行后分析保存的日志,可以搜索CRASH、ANR、Exception等關鍵字查看錯誤信息,詳細的日志分析參考http://www.cnblogs.com/wfh1988/archive/2010/11/16/1878224.html

參考

https://yuti.site/2019/03/02/MonkeyTesting/?tdsourcetag=s_pctim_aiomsg

https://www.cnblogs.com/TankXiao/p/4815134.html

https://blog.csdn.net/gzh0222/article/details/6631988

https://blog.csdn.net/viewsky11/article/details/53889143

https://www.cnblogs.com/TankXiao/p/4815134.html

https://blog.csdn.net/MTbaby/article/details/78792215

(完)

總結

以上是生活随笔為你收集整理的Android测试-Monkey Test的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲日本激情 | 国产黑丝在线 | 欧美日韩三区 | 日日干夜夜撸 | 中文字幕 视频一区 | 人妻洗澡被强公日日澡 | 欧美另类高清videos的特点 | 黄色三级三级 | 丰满人妻熟妇乱偷人无码 | 久久中文字幕国产 | 三级做爰在线观看视频 | 欧美理论片在线观看 | 伊人影院在线观看视频 | 日韩在线观看av | 激情视频网站在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美www | 亚洲午夜在线视频 | 超碰caoprom | 日噜 | 欧美狠狠操 | 88av在线播放 | 日韩免费黄色 | 激情婷婷六月天 | 日韩精品电影在线观看 | 91精品国产成人www | a级片免费在线观看 | 香蕉视频一级片 | a天堂在线观看 | 亚洲福利视频一区 | 免费小视频在线观看 | 九色一区 | 人乳喂奶hd无中字 | 涩涩久久 | 欧美成一区二区三区 | 香蕉钻洞视频 | 亚洲久久久久 | av中出在线 | 91免费视频 | 久久久精品视频一区 | 丁香婷婷六月 | 999国产视频 | 亚洲第一黄色片 | 亚洲av永久无码精品一百度影院 | 在线看免费毛片 | 在线爱情大片免费观看大全 | www.xxx日韩 | 日韩经典午夜福利发布 | 国产免费av一区 | 超碰免费在 | 国产精品蜜臀 | 国产av 一区二区三区 | 777精品视频 | 黄色一级大片在线免费看国产 | 国产精品99久久久 | 四虎免费久久 | 国产第一页在线 | 亲子乱对白乱都乱了 | 国产成人区 | 欧美成人a交片免费看 | 久久免费视频6 | 99国产精品久久久久久久久久久 | 18视频在线观看男男 | 亚洲天堂网在线观看视频 | 国产精品久久久久毛片软件 | 欧美夜夜 | 男人的天堂av片 | 亚洲αv| 亚洲经典三级 | 欧美丰满熟妇bbbbbb百度 | 91国偷自产一区二区三区观看 | 亚洲精品午夜精品 | 国产日韩精品中文字无码 | 亚一区 | 国产在线视频一区二区 | xx视频在线 | 久久不卡av | 少妇做爰免费理伦电影 | 国产精品久久久久毛片大屁完整版 | 日韩精品一区二区三区丰满 | www.av天天 | 三级五月天 | 毛片a级片 | 中文无码精品一区二区三区 | 国产精品天天狠天天看 | 人人澡人人澡人人澡 | 久久综合激的五月天 | 成人免费xxxxx在线视频 | 成人a在线观看 | 中国女人内谢69xxxx | 午夜免费网址 | 亚洲精品视频中文字幕 | 中文字幕日韩欧美一区二区 | 色眯眯影院 | 国产主播精品在线 | 欧美乱色| 能看的黄色网址 | 台湾少妇xxxx做受 | 日韩第一页在线观看 |