一種Monkey測試系統(tǒng)及方法
【專利摘要】本發(fā)明提供一種Monkey測試系統(tǒng)及方法。所述Monkey測試系統(tǒng)包括:測試設(shè)置模塊,用于獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè)置,并生成相應(yīng)的測試命令;測試執(zhí)行模塊,與所述測試設(shè)置模塊相連,用于依據(jù)所述測試命令進行測試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息;測試結(jié)果處理模塊,與所述測試執(zhí)行模塊相連,用于對所述測試得到的結(jié)果進行處理,生成相應(yīng)的測試報告。本發(fā)明的技術(shù)方案通過不同的測試前的設(shè)置,進行不同的測試,得出最終的測試結(jié)果,并且獲取測試全程的日志信息和異常發(fā)生時的移動終端屏幕截圖,能夠滿足各種測試要求并能夠很好地減輕測試人員的工作強度。
【專利說明】-種Monkey測試系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及測試領(lǐng)域,特別是涉及一種Monkey測試系統(tǒng)及方法。
【背景技術(shù)】
[0002] 目前針對Monkey測試比較通用的自動化方法是人為地通過在CMD (系統(tǒng)命令執(zhí)行 程序)窗口中輸入Monkey指令,來進行移動終端的Monkey測試,或是把多個Monkey指令匯 集在一起,編寫成腳本來進行。該些使用Monkey測試的方法,是最常用也是最直接的辦法。 國內(nèi)外有關(guān)于自動化測試尤其是Monkey測試的研究,也主要集中在測試腳本該一塊,通過 運行腳本來完成Monkey的自動化測試,但是,如果有任何測試要求改變時,測試腳本就得 進行相應(yīng)的修改,再重新進行測試。因此,現(xiàn)有的可視化Monkey測試方法中,存在如下一些 問題;功能不夠全面,無法滿足現(xiàn)在測試中的需要,W及測試后提供的信息也不夠全面。具 體包括:一,設(shè)置Monkey測試信息中,沒有提供全面的測試選擇,W致最后生成的批處理過 于簡單,不能滿足復(fù)雜的測試要求。二,測試過程無法查看,也無法得知測試的狀態(tài)或進度。 H,當(dāng)出現(xiàn)測試出錯或失敗的情況時,只能得到測試過程的Log(日志)信息,而沒有提供測 試出錯或失敗時的移動終端屏幕截圖,不利于測試人員分析定位測試問題。
[0003] 鑒于此,如何進一步提高Monkey的自動化測試程度W更好地減輕測試人員的工 作強度成為了本領(lǐng)域技術(shù)人員亟待解決的問題。
【發(fā)明內(nèi)容】
[0004] 鑒于W上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種Monkey測試系統(tǒng)及 方法,用于解決現(xiàn)有技術(shù)中Monkey的自動化測試存在的功能無法滿足現(xiàn)在測試中的需要、 W及測試后提供的信息也不夠全面的問題。
[0005] 為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種Monkey測試系統(tǒng),所述Monkey 測試系統(tǒng)包括;測試設(shè)置模塊,用于獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè) 置,并生成相應(yīng)的測試命令;測試執(zhí)行模塊,與所述測試設(shè)置模塊相連,用于依據(jù)所述測試 命令進行測試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息;測試結(jié)果處理 模塊,與所述測試執(zhí)行模塊相連,用于對所述測試得到的結(jié)果進行處理,生成相應(yīng)的測試報 化 口 O
[0006] 可選地,所述當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息的具體實 現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符"CRASH"時,確定測試異常,并獲取屏幕截圖信息。
[0007] 可選地,所述測試相關(guān)信息包括;時間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)、測試類 型、日志種類中的至少一種;其中,所述測試類型為整體測試、依次測試、單包測試、多包測 試中的任一種;所述日志種類為Iogcat日志、kernel日志、radio日志中的任一種。
[000引可選地,所述測試執(zhí)行模塊還用于實時顯示測試信息或/和測試進度。
[0009] 可選地,所述測試結(jié)果處理模塊還用于通過郵件將所述測試報告發(fā)送給相關(guān)人 員,其中,所述測試報告包括測試結(jié)果表或/和移動終端性能圖;所述移動終端性能圖包括 移動終端故障分布柱圖或/和移動終端故障分布餅圖。
[0010] 可選地,所述Monkey測試系統(tǒng)還包括用戶登錄模塊,用于根據(jù)用戶的登錄信息確 定所述用戶的操作權(quán)限。
[0011] 本發(fā)明還提供一種Monkey測試方法,所述Monkey測試方法包括:獲取移動終端已 安裝的測試包,對測試相關(guān)信息進行設(shè)置,并生成相應(yīng)的測試命令;依據(jù)所述測試命令進行 測試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息;對所述測試得到的結(jié)果 進行處理,生成相應(yīng)的測試報告。
[0012] 可選地,所述當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息的具體實 現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符"CRASH"時,確定測試異常,并獲取屏幕截圖信息。
[0013] 可選地,時間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)、測試類型、日志種類中的至少一 種;其中,所述測試類型為整體測試、依次測試、單包測試、多包測試中的任一種;所述日志 種類為Iogcat日志、kernel日志、radio日志中的任一種。
[0014] 可選地,所述Monkey測試方法還包括實時顯示測試信息或/和測試進度。
[0015] 可選地,所述Monkey測試方法還包括通過郵件將所述測試報告發(fā)送給相關(guān)人員, 其中,所述測試報告包括測試結(jié)果表格或/和移動終端性能圖;所述移動終端性能圖包括 移動終端故障分布柱圖或/和移動終端故障分布餅圖。
[0016] 可選地,所述Monkey測試方法還包括根據(jù)用戶的登錄信息確定所述用戶的操作 權(quán)限。
[0017] 如上所述,本發(fā)明的一種Monkey測試系統(tǒng)及方法,具有W下有益效果;通過不同 的測試前的設(shè)置,進行不同的測試,得出最終的測試結(jié)果,并且獲取測試全程的Log(日志) 信息和異常發(fā)生時的移動終端屏幕截圖,能夠滿足各種測試要求并能夠很好地減輕測試人 員的工作強度。本發(fā)明的技術(shù)方案具備W下功能;1.實現(xiàn)了登錄功能,該樣保證了工具的 私有性,只有知道密碼的人員才可W使用此工具;2.實現(xiàn)了實時獲取移動終端中已安裝的 包,提供了測試的便利性,方便實時獲取移動終端中的包;3.提供了多種Monkey測試,包括 單包測試、多包測試、依次測試、整體測試,滿足了各種測試的需求;4.提供了多個測試參 數(shù)的設(shè)置,提供了多樣化的測試環(huán)境,進一步滿足多樣化的測試需求;5.提供了測試過程 的輸出和測試狀態(tài)的實時監(jiān)控,該樣很直觀地可W了解測試的進度和狀態(tài)。6.實現(xiàn)了測試 過程中如果出現(xiàn)異常,會給移動終端截圖并上傳至PC(電腦),該樣很大程度上,提供了更 多關(guān)于測試的異常的信息,使得測試的結(jié)果更具說服力。7.實現(xiàn)了測試報告的生成和發(fā)送, 該樣不僅節(jié)省了測試報告的整理時間,而且使得測試結(jié)果可W及時地傳送到相關(guān)人員的手 中。
【專利附圖】
【附圖說明】
[0018] 圖1顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的測試環(huán)境示意圖。
[0019] 圖2顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的模塊示意圖。
[0020] 圖3顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的界面示意圖。
[002。 圖4顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的測試報告示意圖。
[002引圖5顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的測試報告示意圖。
[002引圖6顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的界面示意圖。
[0024] 圖7顯示為本發(fā)明的Monkey測試系統(tǒng)的一實施例的界面示意圖。
[00巧]圖8顯示為本發(fā)明的Monkey測試方法的一實施例的流程示意圖。
[0026] 圖9顯示為本發(fā)明的Monkey測試方法的一實施例的流程示意圖。
[0027] 圖10顯示為本發(fā)明的Monkey測試方法的一實施例的流程示意圖。
[002引圖11顯示為本發(fā)明的Monkey測試方法的一實施例的流程示意圖。
[0029] 元件標(biāo)號說明
[0030] 1 Monkey 測試系統(tǒng)
[0031] 11 測試設(shè)置模塊
[0032] 12 測試執(zhí)行模塊
[0033] 13 測試結(jié)果處理模塊
[0034] Sl ?S3 步驟
【具體實施方式】
[0035] W下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書 所掲露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可W通過另外不同的具體實 施方式加W實施或應(yīng)用,本說明書中的各項細(xì)節(jié)也可W基于不同觀點與應(yīng)用,在沒有背離 本發(fā)明的精神下進行各種修飾或改變。
[0036] 需要說明的是,本實施例中所提供的圖示僅W示意方式說明本發(fā)明的基本構(gòu)想, 遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪 制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可 能更為復(fù)雜。
[0037] 本發(fā)明提供一種Monkey測試系統(tǒng)。所述Monkey測試系統(tǒng)應(yīng)用于移動終端的測試 中。所述移動終端包括手機。在一個實施例中,所述Monkey測試系統(tǒng)的測試環(huán)境如圖1所 示,Monkey工具(即Monkey測試系統(tǒng))是加載在PC (電腦)上運行的,用戶通過控制PC (電 腦)來控制Monkey工具的運行。當(dāng)PC(電腦)向移動終端發(fā)送指令后,移動終端(手機) 自動執(zhí)行相應(yīng)的操作,并把記錄下來的操作結(jié)果發(fā)送給PC(電腦)。在一個實施例中,如圖 2所示,所述Monkey測試系統(tǒng)1包括測試設(shè)置模塊11、測試結(jié)果處理模塊13 W及所述測試 執(zhí)行模塊12。其中:
[003引測試設(shè)置模塊11用于獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè)置, 并生成相應(yīng)的測試命令。具體地,所述測試相關(guān)信息包括;時間間隔、點擊次數(shù)、seed值、 循環(huán)次數(shù)中的至少一種。其中,測試的seed值參數(shù),是為了兩次測試中所產(chǎn)生的測試序列 一樣,從而產(chǎn)生相同的異常,W方便測試異常的復(fù)現(xiàn),問題的追蹤等。在一個實施例中,所 述測試設(shè)置模塊11使用java的10流,進行輸入數(shù)據(jù)的讀取和BAT腳本的導(dǎo)入。用戶通 過 JTextField 輸入數(shù)據(jù);使用 JAVA 命令巧cleNumber. getText 0,interval. getText 0, seedNumber. getText 0,clicknumber. getText 0分別獲取測試次數(shù),點擊次數(shù),點擊速度, 點擊次數(shù)。將W上四個參數(shù)分別傳入函數(shù),該函數(shù)作用是進行數(shù)據(jù)寫入功能,cycleNumber. getText 0 , interval. getText (), seedNumber. getText (), clicknumber. getText ()四個獲 取值分別代表;a, b,Seeds, Clicks。將四個參數(shù)值放入test函數(shù)public void test (String a, String b, String Seeds, String Clicks) {}進行函數(shù)操作。Test 函數(shù)中,調(diào)用 WtriterBeginBatQ函數(shù)操作,WtriterBeginBatQ函數(shù)具體內(nèi)容和功能如下;一,使用該 條命令先定義一個存放的bat文件夾String file化th = "D:\\XXX. bat";二,接著定義一 個@6油0 off 作為格式輸入語句 String ba1:Begin = "@echo off" ;H,導(dǎo)入巧cleNumber. getTextO的命令,意思是設(shè)置執(zhí)行次數(shù),cycleNumber就是用戶所輸入的數(shù)字,按照順 序依次寫入 adb shell monkey ;seedNumber. getText ()值;一throttle ;clicknumber. getTextO值等進行寫入到"D:\\XXX.bat"文件中,最后寫入IfincTCRA甜"。最后得到的 命令格式實例如下;adb shell monk巧-p com. android, settings-s 10-throttle 20-v 1000 I fincTCRA甜"。使用該命令形成執(zhí)行主程序命令;其中的10表示seed測試的步驟方法, W 10為隨機數(shù)單位。20代表每次隨機數(shù)按鍵的中間間隔時間,W毫砂為單位。1000表示每 個測試模塊中的按鍵次數(shù),是1000次。IfincTCRASH"方法代表在測試中,如果發(fā)現(xiàn)"CRAW" 的意思,意思是出錯發(fā)現(xiàn)的功能,能截取出錯時的問題。
[0039] 在一個實施例中,所述測試相關(guān)信息還包括測試類型,所述測試類型為整體測試、 依次測試、單包測試、多包測試中的任一種。其中,整體測試時,是對移動終端中的所有的包 進行隨機的測試;依次測試時,是對移動終端中選擇的包進行順序的測試;多包測試時,是 對移動終端中選擇的包進行隨機的測試;單包測試,就是選擇要測試的包后,進行對該個包 的測試。
[0040] 在一個實施例中,所述測試相關(guān)信息包括LOG種類,所述LOG(即日志)種類為 Iogcat日志、kernel日志、radio日志中的任一種??蒞由不同的LOG(即日至)管理單元 管理。日志中保存了測試中得到的測試信息,不同的日志種類包含的測試信息內(nèi)容有所不 同。
[0041] 在一個實施例中,Monkey測試系統(tǒng)1的主界面如圖3所示。其中,測試相關(guān)信息 包括時間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù);時間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)通過 填寫相關(guān)數(shù)據(jù)設(shè)置。測試相關(guān)信息還包括測試類型W及LOG種類,測試類型W及LOG種類 通過在列舉的類型或種類中選擇一種來設(shè)置。
[0042] 測試執(zhí)行模塊12與所述測試設(shè)置模塊11相連,用于依據(jù)所述測試命令進行測 試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息。在一個實施例中,所述當(dāng)測 試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息的具體實現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符 "CRA甜"時,確定測試異常,并獲取屏幕截圖信息。在一個實施例中,通過線程命令啟動運行 BAT腳本MyI"虹eadlBrun = new MyI"虹ead3()。MyI"虹ead3〇線程調(diào)用W下命令進行BAT腳 本的執(zhí)行.進行啟動;String[]cmd = new String[] {"cmd. exe", "/C", "D:\\XXX. bat"}。在 一個實施例中,通過 adb shell monk巧-p com. an化oid. settings-s 10-throttle 2〇-v lOOOlfincTCRASH"中的lfincTCRASH"命令進行實現(xiàn)。其具體原理是在運行該條命令中,如果 關(guān)鍵字符中出現(xiàn)"CRA甜",說明測試中遇到崩潰,通過if% ERR0RLEVEL% = = 0判斷,會運 行命令adb shell/system/bin/screencap-p/sdcard/screenshot. png截圖功能,并將該截 圖導(dǎo)出到電腦本地中,W故障發(fā)生的時間進行命名,并繼續(xù)執(zhí)行a化shell monkey-p com. an化oid. settings-s 10-throttle 20_v 1000 測試。
[0043] 可選地,所述測試執(zhí)行模塊還用于實時顯示測試信息或/和測試進度。在一個實 施例中,測試信息包括測試時在指定窗口實時輸出的測試日志(LOG或log)或/和輸出當(dāng) 前測試結(jié)果統(tǒng)計信息。
[0044] 測試結(jié)果處理模塊13與所述測試執(zhí)行模塊12相連,用于對所述測試得到的結(jié)果 進行處理,生成相應(yīng)的測試報告。具體地,所述測試報告包括測試結(jié)果表或/和移動終端性 能圖。在一個實施例中,所述測試報告包括測試結(jié)果表。所述測試結(jié)果表的主要內(nèi)容包括 測試包的名稱、測試中是否出現(xiàn)異常、異常的截圖信息、此包的測試結(jié)果、分析等。具體的測 試結(jié)果表的內(nèi)容如下表所示:
[0045] 挪設(shè)裡雨君攝 """測'設(shè)面巧是否出"""昇禁"""測'讀商醫(yī)典"""弦明 __體赫 躁異常薇閣__ com.android 聯(lián).系人 是 幻 Fail 新途朕系人中 XDniacts 容易出現(xiàn)異常 com.android.music 'n W ^ Pass Jc com.android.providcrs 設(shè)麗!西著 Pass 尤 .sellings
[0046] 所述移動終端性能圖包括移動終端故障分布柱圖或/和移動終端故障分布餅圖。 所述移動終端性能圖是對移動終端版本的性能的總結(jié)報告。主要是針對測試結(jié)果,進行分 析,用圖表的形式直觀的體現(xiàn)移動終端版本的性能。在一個實施例中,所述移動終端故障分 布柱圖為手機故障分布柱圖,如圖4所示,在手機故障分布柱圖可W直觀地體現(xiàn)出每個包 發(fā)生異常的個數(shù)的分布。在一個實施例中,所述移動終端故障分布餅圖為手機故障分布餅 圖,如圖5所示,在手機故障分布餅圖可W直觀地看出故障分布的百分比,從而分析出哪個 包的性能相對穩(wěn)定,哪個包測試時容易出現(xiàn)問題等。
[0047] 在一個實施例中,所述測試結(jié)果處理模塊還用于通過郵件將所述測試報告發(fā)送給 相關(guān)人員。具體地,所述測試結(jié)果處理模塊把測試報告,通過郵件的形式發(fā)送給相關(guān)的工作 人員,包括開發(fā)組成員和測試組成員等。在一個實施例中,所述發(fā)送郵件的界面圖如圖6所 示,通過選擇需要發(fā)送的人,W及選擇需要發(fā)送的報告,來發(fā)送給指定的人。當(dāng)發(fā)送成功時, 會彈出發(fā)送成功的提示框,便知道報告已成功發(fā)送出去了。當(dāng)發(fā)送失敗時,會彈出發(fā)送失敗 的提示框。該時,需要重新發(fā)送報告。
[0048] 在一個實施例中,所述Monkey測試系統(tǒng)還包括用戶登錄模塊,用于根據(jù)用戶的登 錄信息確定所述用戶的操作權(quán)限。在一個實施例中,所述用戶登錄模塊的界面如圖7所示, 所述用戶登錄模塊主要是輸入用戶名和密碼后,與Monkey測試系統(tǒng)預(yù)先設(shè)置的用戶名和 密碼進行比對,如果一致,則登錄成功,由登錄界面跳轉(zhuǎn)到測試主界面;如果登錄不成功,貝U 會彈出一個提示框,提示:"用戶名或密碼輸入錯誤,請重新輸入!",該時就得重新登錄了, 直到用戶名和密碼輸入正確,才能登錄成功。
[0049] 本發(fā)明還提供一種Monkey測試方法。在一個實施例中,如圖8所示,所述Monkey 測試方法包括:
[0050] 步驟SI,獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè)置,并生成相應(yīng) 的測試命令。具體地,所述測試相關(guān)信息包括;時間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)中 的至少一種。其中,測試的seed值參數(shù),是為了兩次測試中所產(chǎn)生的測試序列一樣,從 而產(chǎn)生相同的異常,W方便測試異常的復(fù)現(xiàn),問題的追蹤等。在一個實施例中,通過使用 java的10流,進行輸入數(shù)據(jù)的讀取和BAT腳本的導(dǎo)入。用戶通過JTextField輸入數(shù)據(jù): 使用 JAVA 命令 cycleNumber. getText O,interval. getText (), seedNumber. getText (), clicknumber.getTextO分別獲取測試次數(shù),點擊次數(shù),點擊速度,點擊次數(shù)。將W上四個 參數(shù)分別傳入函數(shù),該函數(shù)作用是進行數(shù)據(jù)寫入功能,cycleNumber. getText 0,interval. getText 0,seedNumber. getText 0,clicknumber. getText 0 四個獲取值分別代表;a, b, Seeds, Clicks。將四個參數(shù)值放入 test 函數(shù) public void test(String a, String b, String Seeds, String Clicks) {}進行函數(shù)操作。Test 函數(shù)中,調(diào)用 WtriterBeginBatQ 函數(shù)操作,WtriterBeginBatO函數(shù)具體內(nèi)容和功能如下;一,使用該條命令先定義一個存 放的bat文件夾String file化th = "D:\\XXX. bat";二,接著定義一個@echo off作為格 式輸入語句 String batBegin = "@echo off" ;H,導(dǎo)入巧cleNumber. getText 0 的命令, 意思是設(shè)置執(zhí)行次數(shù),cycleNumber就是用戶所輸入的數(shù)字,按照順序依次寫入a化shell monkey ;seedNumber. getText 0 值;一throttle ;clicknumber. getText ()值等進行寫入至Ij "D:\\XXX.bat"文件中,最后寫入IfincTCRA甜"。最后得到的命令格式實例如下;adb shell monk巧-p com. an化oid. settings-s 10-t虹ottle 20_v 100〇|find"CRA甜"。使用該命令 形成執(zhí)行主程序命令;其中的10表示seed測試的步驟方法,W 10為隨機數(shù)單位。20代表 每次隨機數(shù)按鍵的中間間隔時間,W毫砂為單位。1000表示每個測試模塊中的按鍵次數(shù),是 1000次。I fincTCRA甜"方法代表在測試中,如果發(fā)現(xiàn)"CRA甜"的意思,意思是出錯發(fā)現(xiàn)的功 能,能截取出錯時的問題。
[0051] 在一個實施例中,所述測試相關(guān)信息還包括測試類型,所述測試類型為整體測試、 依次測試、單包測試、多包測試中的任一種。其中,整體測試時,是對移動終端中的所有的包 進行隨機的測試;依次測試時,是對移動終端中選擇的包進行順序的測試;多包測試時,是 對移動終端中選擇的包進行隨機的測試;單包測試,就是選擇要測試的包后,進行對該個包 的測試。在一個實施例中,所述測試相關(guān)信息包括日志(LOG)種類,所述日志(LOG)種類為 Iogcat日志、kernel日志、radio日志中的任一種。
[0052] 在一個實施例中,如圖9所示,所述單包測試的主要的步驟包括W下幾步;首先, 在測試的主界面中點擊獲取包名的按鈕;然后判斷是否獲取成功,當(dāng)獲取失敗時,會提 示:"重新連接手機,再獲取",該時,用戶只有重新連接手機,直到手機與PC(電腦)連接成 功,獲取包名時不會再彈出提示框為止,當(dāng)獲取成功時,便會在測試包名的選擇列表框中出 現(xiàn)手機中所安裝的所有包的名稱。然后,在測試包名的選擇列表框中選擇要測試的包的名 稱,再選擇"單包測試",該時,會判斷選擇的包的數(shù)量是否為1,如果為1,則可W進行單包 測試,如果數(shù)量不是1,那么就會彈出一個提示框;"請選擇1個包進行單包測試",直到選擇 的包的名稱數(shù)量是1為止。再然后選擇測試的設(shè)置參數(shù),包括時間間隔、循環(huán)次數(shù)、點擊次 數(shù)和seed的值(此參數(shù)是用來復(fù)現(xiàn)相同的測試過程,W得到相同的測試異常,便于追蹤問 題),如果該些參數(shù)不進行設(shè)置,也是可W的,直接使用默認(rèn)值也是可W測試的。最后,對抓 取的Log(日志)類型進行選擇,包括logcat、kernel、radio H種Log(日志)類型,如果不 選擇的話,默認(rèn)下是抓取Iogcat該一 Log(日志)類型。該樣幾步下來,便可W進行單包測 試了,在測試進行中,可W通過測試輸出查看測試的進程。最后測試結(jié)束后,可W查看測試 結(jié)果,包括測試抓取的Log(日志)和異常時的截圖。
[0053] 在一個實施例中,如圖10所示,所述的整體測試,是對手機上所有已安裝的包進 行Monkey測試,操作的步驟和單包測試大致一樣,不一樣的地方在于整體測試中,不需要 進行選包和判斷包的數(shù)量的步驟,而是直接選擇整體測試,然后進行Monkey測試。首先,在 測試的主界面中點擊獲取包名的按鈕;然后判斷是否獲取成功,當(dāng)獲取失敗時,會提示:"重 新連接手機,再獲取",該時,用戶只有重新連接手機,直到手機與PC (電腦)連接成功,獲取 包名時不會再彈出提示框為止,當(dāng)獲取成功時,便會在測試包名的選擇列表框中出現(xiàn)手機 中所安裝的所有包的名稱。然后,選擇"整體測試"。再然后選擇測試的設(shè)置參數(shù),包括時 間間隔、循環(huán)次數(shù)、點擊次數(shù)和seed的值(此參數(shù)是用來復(fù)現(xiàn)相同的測試過程,W得到相同 的測試異常,便于追蹤問題),如果該些參數(shù)不進行設(shè)置,也是可W的,直接使用默認(rèn)值也是 可W測試的。最后,對抓取的Log(日志)類型進行選擇,包括logcat、kernel、radio H種 Log(日志)類型,如果不選擇的話,默認(rèn)下是抓取Iogcat該一 Log(日志)類型。該樣幾步 下來,便可W進行單包測試了,在測試進行中,可W通過測試輸出查看測試的進程。最后測 試結(jié)束后,可W查看測試結(jié)果,包括測試抓取的Log(日志)和異常時的截圖。
[0054] 步驟S2,依據(jù)所述測試命令進行測試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài) 下的屏幕截圖信息。在一個實施例中,所述當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下 的屏幕截圖信息的具體實現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符"CRASH"時,確定測試異常,并獲 取屏幕截圖信息。在一個實施例中,通過線程命令啟動運行BAT腳本My化read化un = new My化read3()。My化read3()線程調(diào)用W下命令進行BAT腳本的執(zhí)行.進行啟動: String [] cmd = new String [] {"cmd. exe", "/C", "D: \\XXX. bat"}。在一個實施例中,通 過 adb shell monk巧-pcom. an化oid. settings-s 10-t虹ottle 20_v 100〇|find"CRA甜" 中的lfincTCRASH"命令進行實現(xiàn)。其具體原理是在運行該條命令中,如果關(guān)鍵字符中出 現(xiàn)"CRA甜",說明測試中遇到崩潰,通過if % ERR0RLEVEL % = = 0判斷,會運行命令a化 shell/system/bin/screencap-p/sdcard/screenshot. png 截圖功能,并將該截圖導(dǎo)出到電 腦本地中,W故障發(fā)生的時間進行命名,并繼續(xù)執(zhí)行a化shell monk巧-p com. an化oid. settings-s 10-t虹ottle 2〇-v 1000測試。在一個實施例中,所述Monkey測試方法還包 括實時顯示測試信息或/和測試進度。測試信息包括測試時在指定窗口實時輸出的測試日 志(LOG或log)或/和輸出當(dāng)前測試結(jié)果統(tǒng)計信息。
[00巧]步驟S3,對所述測試得到的結(jié)果進行處理,生成相應(yīng)的測試報告。具體地,所述測 試報告包括測試結(jié)果表或/和移動終端性能圖。在一個實施例中,所述測試報告包括測試 結(jié)果表。所述測試結(jié)果表的主要內(nèi)容包括測試包的名稱、測試中是否出現(xiàn)異常、異常的截圖 信息、此包的測試結(jié)果、分析等。具體的測試結(jié)果表的內(nèi)容如下表所示:
[0056] 測試包的名稱 I測試的具'足巧出 '巧常I測試的結(jié)果I說明 體內(nèi)容 現(xiàn)巧常截閣I '…'誦,android 賴系滅H 可 薪蓮照累滅吊""""""" .CO咖Cts I 巧切化現(xiàn)林常 com.android. music 。樂 fr A: MPass A: eom.android, providers 設(shè)背 巧 -Pass Jc ,settings
[0057] 所述移動終端性能圖包括移動終端故障分布柱圖或/和移動終端故障分布餅圖。 所述移動終端性能圖是對移動終端版本的性能的總結(jié)報告。主要是針對測試結(jié)果,進行分 析,用圖表的形式直觀的體現(xiàn)移動終端版本的性能。在一個實施例中,所述移動終端故障分 布柱圖為手機故障分布柱圖,如圖4所示,在手機故障分布柱圖可W直觀地體現(xiàn)出每個包 發(fā)生異常的個數(shù)的分布。在一個實施例中,所述移動終端故障分布餅圖為手機故障分布餅 圖,如圖5所示,在手機故障分布餅圖可W直觀地看出故障分布的百分比,從而分析出哪個 包的性能相對穩(wěn)定,哪個包測試時容易出現(xiàn)問題等。
[0058] 在一個實施例中,所述Monkey測試方法還包括通過郵件將所述測試報告發(fā)送給 相關(guān)人員。具體地,所述測試結(jié)果處理模塊把測試報告,通過郵件的形式發(fā)送給相關(guān)的工作 人員,包括開發(fā)組成員和測試組成員等。在一個實施例中,通過選擇需要發(fā)送的人,W及選 擇需要發(fā)送的報告,來發(fā)送給指定的人。當(dāng)發(fā)送成功時,會彈出發(fā)送成功的提示框,便知道 報告已成功發(fā)送出去了。當(dāng)發(fā)送失敗時,會彈出發(fā)送失敗的提示框。該時,需要重新發(fā)送報 告。
[0059] 在一個實施例中,所述Monkey測試方法根據(jù)用戶的登錄信息確定所述用戶的操 作權(quán)限。在一個實施例中,如圖11所示,在輸入用戶名和密碼后,與預(yù)先設(shè)置的用戶名和密 碼進行比對,如果一致,則登錄成功,由登錄界面跳轉(zhuǎn)到測試主界面;如果登錄不成功,則會 彈出一個提示框,提示:"用戶名或密碼輸入錯誤,請重新輸入!",該時就得重新登錄了,直 到用戶名和密碼輸入正確,才能登錄成功。
[0060] 綜上所述,本發(fā)明的一種Monkey測試系統(tǒng)及方法,具有W下有益效果;通過不同 的測試前的設(shè)置,進行不同的測試,得出最終的測試結(jié)果,并且獲取測試全程的Log(日志) 信息和異常發(fā)生時的移動終端屏幕截圖,能夠滿足各種測試要求并能夠很好地減輕測試人 員的工作強度。所W,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點而具高度產(chǎn)業(yè)利用價值。
[0061] 上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟 悉此技術(shù)的人±皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因 此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識者在未脫離本發(fā)明所掲示的精神與技術(shù)思想下所完 成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1. 一種Monkey測試系統(tǒng),其特征在于,所述Monkey測試系統(tǒng)包括: 測試設(shè)置模塊,用于獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè)置,并生成 相應(yīng)的測試命令; 測試執(zhí)行模塊,與所述測試設(shè)置模塊相連,用于依據(jù)所述測試命令進行測試;當(dāng)測試出 現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信息; 測試結(jié)果處理模塊,與所述測試執(zhí)行模塊相連,用于對所述測試得到的結(jié)果進行處理, 生成相應(yīng)的測試報告。
2. 根據(jù)權(quán)利要求1所述的Monkey測試系統(tǒng),其特征在于:所述當(dāng)測試出現(xiàn)異常時,獲 取測試異常狀態(tài)下的屏幕截圖信息的具體實現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符"CRASH"時,確定 測試異常,并獲取屏幕截圖信息。
3. 根據(jù)權(quán)利要求1所述的Monkey測試系統(tǒng),其特征在于:所述測試相關(guān)信息包括:時 間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)、測試類型、日志種類中的至少一種;其中,所述測試 類型為整體測試、依次測試、單包測試、多包測試中的任一種;所述日志種類為logcat日 志、kernel日志、radio日志中的任一種。
4. 根據(jù)權(quán)利要求1所述的Monkey測試系統(tǒng),其特征在于:所述測試執(zhí)行模塊還用于實 時顯示測試信息或/和測試進度。
5. 根據(jù)權(quán)利要求1所述的Monkey測試系統(tǒng),其特征在于:所述測試結(jié)果處理模塊還用 于通過郵件將所述測試報告發(fā)送給相關(guān)人員,其中,所述測試報告包括測試結(jié)果表或/和 移動終端性能圖;所述移動終端性能圖包括移動終端故障分布柱圖或/和移動終端故障分 布餅圖。
6. 根據(jù)權(quán)利要求1所述的Monkey測試系統(tǒng),其特征在于:所述Monkey測試系統(tǒng)還包 括用戶登錄模塊,用于根據(jù)用戶的登錄信息確定所述用戶的操作權(quán)限。
7. -種Monkey測試方法,其特征在于:所述Monkey測試方法包括: 獲取移動終端已安裝的測試包,對測試相關(guān)信息進行設(shè)置,并生成相應(yīng)的測試命令; 依據(jù)所述測試命令進行測試;當(dāng)測試出現(xiàn)異常時,獲取測試異常狀態(tài)下的屏幕截圖信 息; 對所述測試得到的結(jié)果進行處理,生成相應(yīng)的測試報告。
8. 根據(jù)權(quán)利要求7所述的Monkey測試方法,其特征在于:所述當(dāng)測試出現(xiàn)異常時,獲 取測試異常狀態(tài)下的屏幕截圖信息的具體實現(xiàn)包括:當(dāng)檢測到關(guān)鍵字符"CRASH"時,確定 測試異常,并獲取屏幕截圖信息。
9. 根據(jù)權(quán)利要求7所述的Monkey測試方法,其特征在于:所述測試相關(guān)信息包括:時 間間隔、點擊次數(shù)、seed值、循環(huán)次數(shù)、測試類型、日志種類中的至少一種;其中,所述測試 類型為整體測試、依次測試、單包測試、多包測試中的任一種;所述日志種類為logcat日 志、kernel日志、radio日志中的任一種。
10. 根據(jù)權(quán)利要求7所述的Monkey測試方法,其特征在于:所述Monkey測試方法還包 括實時顯示測試信息或/和測試進度。
11. 根據(jù)權(quán)利要求7所述的Monkey測試方法,其特征在于:所述Monkey測試方法還包 括通過郵件將所述測試報告發(fā)送給相關(guān)人員,其中所述測試報告包括測試結(jié)果表格或/和 移動終端性能圖;所述移動終端性能圖包括移動終端故障分布柱圖或/和移動終端故障分 布餅圖。
12.根據(jù)權(quán)利要求7所述的Monkey測試方法,其特征在于:所述Monkey測試方法還包 括根據(jù)用戶的登錄信息確定所述用戶的操作權(quán)限。
【文檔編號】G06F11/36GK104331373SQ201410712955
【公開日】2015年2月4日 申請日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】李麗萍, 惠曉輝, 韓繼梁 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司