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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Monkey框架(测试方法篇) - monkey测试实例

發(fā)布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Monkey框架(测试方法篇) - monkey测试实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、常規(guī)的穩(wěn)定性測試? ? ? ? ??

測試背景: 這是一個海外的合作項目,被測程序是Android應(yīng)用(App)。測試希望通過Monkey來模擬用戶長時間的隨機操作,檢查被測應(yīng)用是否會出現(xiàn)異常(應(yīng)用崩潰或者無響應(yīng))。 測試腳本: adb shell monkey -p com.xxx.xxx --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 12358 --throttle 400 --ignore-crashes --ignore-timeouts -v 500000 顯而易見,這個Monkey測試的命令相比上一節(jié)提到的要復(fù)雜得多,主要是對一些操作事件做了限制,從而減少了Monkey偽隨機化的無效操作。這體現(xiàn)在以下幾個方面。

1)使用-p參數(shù)來制定測試應(yīng)用的包名(Package)

因為被測程序是一個特定的Android應(yīng)用程序,需要指定被測程序的包名。指定包名后,Monkey會根據(jù)包名找到對應(yīng)的應(yīng)用,并啟動其main activity,然后執(zhí)行Monkey測試。 技巧 查找應(yīng)用包名的方法有很多,這里簡單列舉幾個常用方法: (1)通過pm命令查看。 在命令行窗口輸入: >adb shell >pm list package 此時將列出手機上所有的應(yīng)用包名,在列表中找到要測試的應(yīng)用包名即可。 (2)通過查看APK源碼下的AndroidManifest.xml文件。 (3)通過aapt命令查看。 (4)通過adb logcat抓取當前Android機運行的App的包名。

2)使用--pct-xxx參數(shù)限制Monkey執(zhí)行的事件類型和占比

前面已經(jīng)說了,這個測試的目的是希望模擬用戶操作,因此需要讓Monkey執(zhí)行的事件盡可能地接近用戶的常規(guī)操作,這樣才可以最大限度地發(fā)現(xiàn)用戶使用過程中可能出現(xiàn)的問題。因此需要對Monkey執(zhí)行的事件百分比做一些調(diào)整。 觸摸事件和手勢事件是用戶最常見的操作,所以通過--pct-touch和--pct-motion將這兩個事件的占比調(diào)整到40%與25%;目標應(yīng)用包含了多個Activity,為了能覆蓋大部分的Activity,所以通過--pct-appswitch將Activity切換的事件占比調(diào)整到10%;被測應(yīng)用之前在測試中出現(xiàn)過不少橫豎屏之間切換的問題,這個場景也必須關(guān)注,因此通過--pct-rotation把橫豎屏切換事件調(diào)整到10%。

3)使用-s參數(shù)來指定命令執(zhí)行的seed值

Monkey會根據(jù)seed值來生成對應(yīng)事件流,同一個seed生成的事件流是完全相同的。這里指定了seed值,是為了測試發(fā)現(xiàn)問題時,便于進行問題復(fù)現(xiàn)。

4)使用--throttle參數(shù)來控制Monkey每個操作之間的時間間隔

指定操作之間的時間間隔,一方面是希望能更接近用戶的操作場景,正常用戶操作都會有一定的時間間隔;另一方面也是不希望因為過于頻繁的操作而導(dǎo)致系統(tǒng)崩潰,尤其是在比較低端的手機上執(zhí)行測試時。因此通過--throttle設(shè)置Monkey每個操作固定延遲0.4秒。

5)使用--ignore-crash和--ignore-timeouts參數(shù)使Monkey遇到意外時能繼續(xù)執(zhí)行

在執(zhí)行Monkey測試時,會因為應(yīng)用的崩潰或沒有響應(yīng)而意外終止,所以需要在命令中增加限制參數(shù)--ignore-crash和--ignore-timeouts,讓Monkey在遇到崩潰或沒有響應(yīng)的時候,能在日志中記錄相關(guān)信息,并繼續(xù)執(zhí)行后續(xù)的測試。

6)使用-v指定log的詳細級別

Monkey的日志輸出有3個級別:默認的是level 0, -v -v日志級別為level 1, -v -v日志級別為level 2。日志的級別越高,其詳細程度也越高。為了方便問題的定位,將日志級別設(shè)置為level2。 在常規(guī)的穩(wěn)定性測試中,雖然可以自定義各種事件的操作占比,但畢竟是隨機事件流。在實際測試過程中,難免會遇到Monkey點了我們不希望它點擊的地方,比如誤點了工具欄導(dǎo)致網(wǎng)絡(luò)斷開的情況等。當測試過程中Wi-Fi斷開時,是否有可能自動重連呢?這在后面會講到

二、自定義腳本的穩(wěn)定性測試? ? ? ? ? ? ? ? ? ? ? ? ??

常規(guī)Monkey測試執(zhí)行的是隨機的事件流,但如果只是想讓Monkey測試某個特定場景(執(zhí)行固定的事件流)呢?這時候就需要用到自定義腳本了,Monkey支持執(zhí)行用戶自定義腳本的測試,用戶只需要按照Monkey腳本的規(guī)范編寫好腳本,存放到手機上,啟動Monkey通過-f scriptfile參數(shù)調(diào)用腳本即可。 Monkey自定義腳本的編寫模板如代碼清單4-1所示。 代碼清單4-1 Monkey自定義腳本的編寫模板 #頭文件,控制Monkey發(fā)送消息的參數(shù),固定寫即可 #腳本類型,一般不用更改 type=raw events #腳本執(zhí)行次數(shù),但是由于Monkey命令本身可以指定執(zhí)行次數(shù),所以這里的設(shè)置是不生效的 count=10 #命令執(zhí)行速率,速率也可以通過Monkey命令設(shè)置,這里的設(shè)置是不生效的 speed=1.0 #以下為Monkey命令 start data>> LaunchActivity(pkg_name, cl_name) DispatchPress(KEYCODE_HOME) … monkey腳本常見API 技巧 Monkey腳本只能通過坐標的方式來定位點擊和移動事件的屏幕位置,這里就需要提前獲取坐標信息。獲取坐標信息的方法很多,最簡單的方法就是打開手機中的開發(fā)人員選項,打開“顯示指針位置”。隨后,在屏幕上的每次操作,在導(dǎo)航欄上都會顯示坐標信息 下面來看一個簡單的例子: 這里要測試的是應(yīng)用寶App,測試的操作是打開應(yīng)用寶,點擊輸入框,輸入“yyb”,點擊搜索。搜索完成后,點擊返回鍵返回應(yīng)用寶首頁。 首先,將在本地編寫需要的測試腳本命名為monkey.script(文件格式無要求),腳本內(nèi)容如代碼清單4-2所示。 代碼清單4-2 Monkey自定義腳本實現(xiàn)進入應(yīng)用寶進行搜索 #啟動測試 type = user count = 49 speed = 1.0 start data >> #啟動應(yīng)用寶 LaunchActivity(com.tencent.android.qqdownloader, com.tencent.assistant.activity. SplashActivity) UserWait(2000) #點擊搜索框 Tap(463,150,1000) UserWait(2000) #輸入字母“yyb” DispatchString(yyb) UserWait(2000) #點擊搜索 Tap(960,150,1000) UserWait(2000) #點擊返回鍵返回首頁 DispatchPress(KEYCODE_BACK) 其次,將文件push到手機或模擬器的sdcard中: >adb push monkey.script /sdcard/ 最后,執(zhí)行腳本: >adb shell monkey -f /sdcard/monkey.script -v 1 如果需要重復(fù)執(zhí)行某個腳本,只要在monkey啟動命令中修改執(zhí)行次數(shù)即可。例如 >adb shell monkey -f /sdcard/monkey.script -v 10

三、結(jié)合輔助命令,獲取更多信息? ? ? ? ? ? ? ? ? ? ? ??

常規(guī)測試只要記錄下Monkey日志,再分析Monkey日志檢查是否有異常即可。但是,很多時候,測試除了想知道執(zhí)行過程是否有異常,還需要能獲取執(zhí)行過程中的一些詳細信息或性能數(shù)據(jù),比如想知道Monkey執(zhí)行過程中是否存在內(nèi)存泄漏,需要獲取內(nèi)存信息。這時候就需要借助一些輔助的命令來獲取更多信息了。下面列舉了幾種Monkey測試中常用的輔助命令,使用方法也非常簡單,只要在執(zhí)行Monkey的同時,另起一個CMD命令行窗口輸入對應(yīng)命令執(zhí)行即可。 ? 獲取logcat日志信息: adb shell logcat -v time>log.txt ? 獲取內(nèi)存信息: adb shell dumpsys meminfo <進程名> ? 獲取CPU消耗信息: adb shell top -n 1 |find“進程名” ? 獲取電量信息: adb shell dumpsys battery ? 獲取GPU信息: GPU信息命令:adb shell dumpsys gfxinfo <進程名> ? 獲取流量信息: adb shell cat/proc/uid_stat/<被測應(yīng)用的uid>/tcp_rcv 技巧 如何獲取被測應(yīng)用的UID 步驟1:查看被測應(yīng)用的進程ID(PID) adb shell ps | grep <被測應(yīng)用包名> 步驟2:查看被測應(yīng)用的用戶ID(UID) adb shell cat /proc/$pid/status

四、Monkey測試策略制定思路? ? ? ? ? ? ?

前面介紹了幾種常見的Monkey測試方法,但在實際項目中,選擇哪種Monkey測試策略,則需要根據(jù)實際項目的情況來做判斷。主要是看測試目的及被測應(yīng)用自身的特點。假如我們想測試瀏覽器的雙指縮放功能是否有異常,那就需要選擇--pct-pinchzoom參數(shù),調(diào)大雙指縮放事件的占比進行Monkey測試;假如我們想驗證ROM的橫豎屏切換功能是否正常,那就需要選擇--pct-rotation參數(shù),調(diào)大橫豎屏切換事件的占比進行Monkey測試;假如我們想驗證重復(fù)某種特定操作時,應(yīng)用是否會存在異常,那可以選擇-f參數(shù),自定義Monkey腳本進行驗證;假如我們想驗證長時間操作時應(yīng)用是否會存在內(nèi)存泄漏,那就需要結(jié)合-hprof參數(shù)和dumpsys meminfo <進程名>進行Monkey測試。 總之,Monkey測試策略是需要依據(jù)測試目的和被測程序的特點來制定的。

轉(zhuǎn)載于:https://www.cnblogs.com/Chilam007/p/10941064.html

總結(jié)

以上是生活随笔為你收集整理的Monkey框架(测试方法篇) - monkey测试实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99精品一区 | 看成人片| 美女高潮视频在线观看 | 我的大叔| 日本精品视频一区 | 亚洲免费视频网 | 精品久久国产字幕高潮 | 中国久久 | av资源网址 | 91视频亚洲 | 亚洲国产网址 | 澳门一级黄色片 | 久草免费在线 | 久久久久久久久久成人 | 4438亚洲最大 | 自偷自拍av | av免 | 国产欧美一级片 | 亚洲欧洲另类 | 欧美一级免费看 | 国产农村熟妇videos | 夜夜爽网站 | 国产天堂| 久久久久久久综合色一本 | 免费国产一区二区 | 天天狠天天干 | 久草热播| 日日操夜夜干 | 黄a视频 | 91l九色lporny | 亚洲自拍偷拍一区二区 | 日韩一级片在线播放 | 成人黄色在线视频 | 91蝌蚪在线观看 | 久久在线视频精品 | 成人夜晚视频 | 日韩色影院 | 超碰三级 | 日本色综合网 | 麻豆影视在线 | 啪视频免费 | 精品国产精品 | 日韩三级在线免费观看 | 亚洲资源在线观看 | 奇米在线观看 | 久久偷拍免费视频 | 91丨九色丨海角社区 | 黄毛片在线观看 | 色婷婷视频 | 午夜啪视频 | 午夜av在线| 国产女人水真多18毛片18精品 | 欧美精品免费一区二区 | 亚洲va国产va天堂va久久 | jizz黑人| 日日射视频 | 51调教丨国产调教视频 | 高清乱码毛片 | 亚洲一区二区三区免费 | 国产香蕉视频在线播放 | av网站在线播放 | 桃谷绘里香番号 | 国产精品久久久久久久久晋中 | 亚洲精品乱码久久久久久蜜桃麻豆 | 麻豆影视| 高清不卡一区 | 精品不卡视频 | 91av免费在线观看 | 88xx成人永久免费观看 | 黄色国产在线播放 | 亚洲午夜精品久久久久久浪潮 | 奇米网久久 | 香蕉视频免费 | 69精品人妻一区二区三区 | 91麻豆国产在线观看 | 欧洲亚洲一区 | 日韩欧美一区二区在线 | av日韩中文字幕 | 免费污片软件 | 午夜看看 | 欧美一区在线观看视频 | 吊视频一区二区三区 | 一级黄色片看看 | 乱色熟女综合一区二区三区 | 久久人妻精品白浆国产 | 香蕉视频网站入口 | 国产欧美日韩91 | 日韩91av| 九九热精品视频 | 欧亚一区二区三区 | 亚洲无限码 | 欧美日韩中文字幕在线视频 | av综合导航 | 永久av在线免费观看 | 亚洲成av人片一区二区 | 亚洲成人二区 | 青青草视频在线看 | 久草三级 | 欧美成人天堂 |