Monkey測試方法_第1頁
Monkey測試方法_第2頁
Monkey測試方法_第3頁
Monkey測試方法_第4頁
Monkey測試方法_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1. 環境搭建1.1. 軟件安裝步驟1.1.1. java jdk安裝1. 安裝java jdk2. 系統變量配置在電腦【屬性】【高級系統設置】【環境變量】【系統變量】中設置;java_home;path;classpath。java_home:輸入指明jdk安裝路徑,沒有需新建;path:輸入%java_home%bin;%java_home%jrebin,沒有path則新建,有則編輯,添加上述值;path使得系統可以在任何路徑下識別java命令;classpath:%java_home%libdt.jar;%java_home%libtools.jar; 沒有此環境變量需新增,有則編輯,添

2、加上述值;為java加載類(class or lib)路徑,只有類在classpath中,java命令才能識別3. 驗證java jdk環境變量配置成功與否;“開始”;“運行”,鍵入“cmd”;輸入命令“java -version”,“java”,“javac”幾個命令,出現畫面,說明環境變量配置成功;1.1.2. android sdk1. 下載最新的android sdk;2. 解壓android sdk文件,里面有兩個應用程序: “sdk manager.exe”(負責下載或更新sdk包) 和 avd manager.exe(負責創建管理虛擬機)。我們先運行“sdk manager.ex

3、e”進行sdk下載。3. 運行后出現下面的界面,我們選擇自己想安裝的 android 版本,我選擇了最新版本,然后點擊“install x packages”安裝。4. 在新出現的界面上,選擇接受并遵守所有許可內容(accept all),再點擊 “install”。* android sdk 管理器就開始下載并安裝你所選的包了,等待下載完成。1.2. 連接真機調試1.2.1. 設備設置1. 測試真機需要進行root處理,獲取root權限;使用360一鍵root工具;2. 設置手機,開發者模式,啟動【開發者選項】中開啟開發者選項,啟動usb調試;3. 使用usb數據線連接測試機;4. 確認設備

4、連接正確2. app性能測試2.1. 啟動控制臺啟動cmd控制臺。2.2. 啟動adb2.2.1. 啟動adb工具在cmd控制臺中,進入adb程序所在路徑,使用:adb version命令可以查看當前adb版本。2.2.2. 查看版本在adb目錄下,使用:adb version 命令查看adb當前版本,如下圖;2.2.3. 查看設備列表在adb目錄下,使用:adb devices 命令查看設備列表2.3. 啟動adb shell2.3.1. 啟動adb shell在adb目錄下,使用:adb shell 命令啟動adb shell2.3.2. unknown host service異常排除如

5、果在啟動adb shell時,出現“failed to start daemon *error: unknown host service”錯誤,是由于測試pc的5037端口被占用了,在cmd控制臺中“netstat -aon|findstr 5037”查找占用5037端口的進程id,關閉該進程;或者使用“tasklist /fi pid eq 2244”命令關閉進程。2.3.3. more than one device/emulator異常排除如果在啟動adb shell時,出現“error: more than one device/emulator”錯誤,是由于連接了多個設備或者模擬器

6、導致,進行測試時,需要指定設備,使用 s 參數;adb s 022nqs145l001556 shell2.3.4. 查看設備data目錄下的包名在adb shell下使用:su 命令獲取root權限,后再使用:# ls data/data 命令,連接設備data目錄下的包名。2.4. 進行monkey測試2.4.1. 進行monkey測試明確要測試的包名后,在進入root權限后使用:# monkey -p com.android.calculator2 -v 500;將其中com.android.calculator2替換為要測試的目標即可。*如果要將測試log導出到計算機,需要在adb目錄

7、下直接輸入命令開始測試,在原始測試命令后追加用于存放測試log的目錄及文件名稱,例:如“e:log.txt”;adb shell monkey p com.yuxuan.dancing v 200 e:log.txt測試結果log會被存放在e:log.tx中2.4.2. adb shell參數設置. 參數:-p參數-p用于約束限制,用此參數指定一個或多個包(package,即app)。指定包之后,monkey將只允許系統啟動指定的app。如果不指定包,monkey將允許系統啟動設備中的所有app。* 指定一個包: adb shell monkey -p com.htc.weath

8、er 100說明:com.htc.weather為包名,100是事件計數(即讓monkey程序模擬100次隨機用戶事件)。* 指定多個包:adb shell monkey -p com.htc.weather p com.htc.pdfreader -p com.htc.photo.widgets 100* 不指定包:adb shell monkey 100說明:monkey隨機啟動app并發送100個隨機事件。* 要查看設備中所有的包,在cmd窗口中執行以下命令: adb shell #cd data/data #ls. 參數:-v用于指定反饋信息級別(信息級別就是日志的詳細程

9、度),總共分3個級別,分別對應的參數如下表所示:1. 日志級別 level 0 示例 adb shell monkey -p com.htc.weather v 100說明 缺省值,僅提供啟動提示、測試完成和最終結果等少量信息;2. 日志級別 level 1示例 adb shell monkey -p com.htc.weather v -v 100說明 提供較為詳細的日志,包括每個發送到activity的事件信息;3. 日志級別 level 2示例 adb shell monkey -p com.htc.weather v -v v 100說明 最詳細的日志,包括了測試中選中/未選中的act

10、ivity信息;. 參數:-s用于指定偽隨機數生成器的seed值,如果seed相同,則兩次monkey測試所產生的事件序列也相同的。* 示例:monkey測試1:adb shell monkey -p com.htc.weather s 10 100monkey 測試2:adb shell monkey -p com.htc.weather s 10 100兩次測試的效果是相同的,因為模擬的用戶操作序列(每次操作按照一定的先后順序所組成的一系列操作,即一個序列)是一樣的。操作序列雖然是隨機生成的,但是只要我們指定了相同的seed值,就可以保證兩次測試產生的隨機操作序列是完全相同的

11、,所以這個操作序列偽隨機的;. 參數:-throttle 用于指定用戶操作(即事件)間的時延,單位是毫秒;* 示例:adb shell monkey -p com.htc.weather throttle 3000 100. 參數:-ignore-crashes用于指定當應用程序崩潰時(force & close錯誤),monkey是否停止運行。如果使用此參數,即使應用程序崩潰,monkey依然會發送事件,直到事件計數完成。* 示例1:adb shell monkey -p com.htc.weather -ignore-crashes 1000;測試過程中即使we

12、ather程序崩潰,monkey依然會繼續發送事件直到事件數目達到1000為止;* 示例2:adb shell monkey -p com.htc.weather 1000;測試過程中,如果weather程序崩潰,monkey將會停止運行。. 參數:-ignore-timeouts用于指定當應用程序發生anr(application no responding)錯誤時,monkey是否停止運行。如果使用此參數,即使應用程序發生anr錯誤,monkey依然會發送事件,直到事件計數完成。. 參數:-ignore-security-exceptions用于指定當應用程序發

13、生許可錯誤時(如證書許可,網絡許可等),monkey是否停止運行。如果使用此參數,即使應用程序發生許可錯誤,monkey依然會發送事件,直到事件計數完成。. 參數:-kill-process-after-error用于指定當應用程序發生錯誤時,是否停止其運行。如果指定此參數,當應用程序發生錯誤時,應用程序停止運行并保持在當前狀態(注意:應用程序僅是靜止在發生錯誤時的狀態,系統并不會結束該應用程序的進程)。. 參數:-monitor-native-crashes用于指定是否監視并報告應用程序發生崩潰的本地代碼。0. 參數:-pct-+事件類別 +事件類別

14、百分比用于指定每種類別事件的數目百分比(在monkey事件序列中,該類事件數目占總事件數目的百分比)參數:使用說明:示例:-pct-touch +百分比;調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置);adb shell monkey -p com.htc.weather -pct-touch 10 1000-pct-motion +百分比;調整動作事件的百分比(動作事件由屏幕上某處的一個down事件、一系列的偽隨機事件和一個up事件組成);adb shell monkey -p com.htc.weather -pct-motion 20 1000-pc

15、t-trackball +百分比;調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊);adb shell monkey -p com.htc.weather -pct-trackball 30 1000-pct-nav +百分比;調整“基本”導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成);adb shell monkey -p com.htc.weather -pct-nav 40 1000-pct-majornav +百分比;調整“主要”導航事件的百分比(這些導航事件通常引發圖形界面中的動作,如:5-way鍵盤的中間按鍵、回

16、退按鍵、菜單按鍵);adb shell monkey -p com.htc.weather -pct-majornav 50 1000-pct-syskeys +百分比;調整“系統”按鍵事件的百分比(這些按鍵通常被保留,由系統使用,如home、back、start call、end call及音量控制鍵);adb shell monkey -p com.htc.weather -pct-syskeys 60 1000-pct-appswitch +百分比;調整啟動activity的百分比。在隨機間隔里,monkey將執行一個startactivity()調用,作為最大程度覆蓋包中全部activ

17、ity的一種方法;adb shell monkey -p com.htc.weather -pct-appswitch 70 1000-pct-anyevent +百分比;調整其它類型事件的百分比。它包羅了所有其它類型的事件,如:按鍵、其它不常用的設備按鈕、等等;adb shell monkey -p com.htc.weather-pct -anyevent 100 1000* 指定多個類型事件的百分比;adb shell monkey -p com.htc.weather -pct-anyevent 50 -pct-appswitch 50 1000*注意:各事件類型的百分比總數不能超過1

18、00%;3. monkey測試結果分析3.1. 測試log導出需要將測試log導出到計算機時,需要在在adb目錄下,進行monkey測試,在adb目錄下輸入測試命令,在原始測試命令后追加用于存放測試log的目錄及文件名稱,例如:“e:log.txt”;adb shell monkey p com.yuxuan.dancing v 200 e:log.txt3.2. 測試結果分析3.2.1. 初步分析monkey測試出現錯誤后,一般的差錯步驟為以下幾步:1、 找到是monkey里面的哪個地方出錯2、 查看monkey里面出錯前的一些事件動作,并手動執行該動作3、 若以上步驟還不能找出,可以使用之

19、前執行的monkey命令再執行一遍,注意seed值要一樣一般的測試結果分析:1、 anr問題:在日志中搜索“anr”2、 奔潰問題:搜索“crash”2、 異常問題:在日志中搜索“exception”3.2.2. 詳細分析將執行monkey生成的log,從手機中導出并打開查看該log;在log的最開始都會顯示monkey執行的seed值、執行次數和測試的包名。首先我們需要查看monkey測試中是否出現了anr或者異常,具體方法如上述。然后我們要分析log中的具體信息,方法如下:查看log中第一個switch,主要是查看monkey執行的是那一個activity,譬如下面的log中,執行的是co

20、m.tencent.smtt.splashactivity,在下一個swtich之間的,如果出現了崩潰或其他異常,可以在該activity中查找問題的所在。:switch:#intent;action=ent.action.main;category=ent.category.launcher;launchflags=0x10000000;component=com.tencent.smtt/.splashactivity;end/ allowing start of intent act=ent.action.main cat

21、=ent.category.launchercmp=com.tencent.smtt/.splashactivity in package com.tencent.smtt在下面的log中,sending pointer action_down和sending pointer action_up代表當前執行了一個單擊的操作;sleeping for 500 milliseconds這句log是執行monkey測試時,throttle設定的間隔時間,每出現一次,就代表一個事件。sendkey(action_down) /keycode_dpad_down 代表當前執行了一個

22、點擊下導航鍵的操作;sending pointer action_move 代表當前執行了一個滑動界面的操作。:sending pointer action_down x=47.0 y=438.0:sending pointer action_up x=47.0 y=438.0sleeping for 500 milliseconds:sendkey (action_down): 20 /keycode_dpad_down:sendkey (action_up): 20 /keycode_dpad_downsleeping for 500 milliseconds:sending pointe

23、r action_move x=-2.0 y=3.0:sending pointer action_move x=4.0 y=-3.0:sending pointer action_move x=-5.0 y=-3.0:sending pointer action_move x=3.0 y=4.0:sending pointer action_move x=-4.0 y=1.0:sending pointer action_move x=-1.0 y=-1.0:sending pointer action_move x=-2.0 y=-4.0如果monkey測試順利執行完成,在log的最后,會打印出當前執行事件的次數和所花費的時間;/ monkey finished代表執行完成。monkey執行中斷,在log的最后也能查看到當前已執行的次數。monkey執行完成的log具體如下:events injected: 6000:dropped: keys=0 pointers=9 trackballs=0 flips=0# network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)/ monkey fi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論