本發(fā)明實(shí)施例涉及測試領(lǐng)域,尤其涉及一種monkey測試方法及裝置。
背景技術(shù):
monkey測試又稱隨機(jī)測試或穩(wěn)定性測試,是將monkey測試程序在模擬器或真實(shí)設(shè)備中運(yùn)行時,程序會產(chǎn)生一定數(shù)量或一定時間內(nèi)的隨機(jī)模擬用戶的點(diǎn)擊、按鍵和手勢等用戶操作事件以及一些系統(tǒng)級別的事件等,測試設(shè)備出現(xiàn)異常的次數(shù)或時間,進(jìn)而獲知待測設(shè)備的穩(wěn)定性。
現(xiàn)有技術(shù)中,通常采用手動獲取或手動選擇待測設(shè)備中的測試包名進(jìn)行后續(xù)測試,步驟繁瑣。同時,待獲取或待選擇的測試包名的專業(yè)性較強(qiáng),在進(jìn)行測試時匹配和查找較為困難,尤其不便于對monkey測試不了解的測試人員進(jìn)行測試操作,致使此類測試人員測試體驗(yàn)不佳。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種monkey測試方法和裝置,以實(shí)現(xiàn)對monkey測試不了解的測試人員能夠進(jìn)行測試操作,提高測試體驗(yàn)度。
第一方面,本發(fā)明實(shí)施例提供了一種monkey測試方法,該方法包括:
自動獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表;
獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表;
設(shè)置對所述待測試應(yīng)用程序進(jìn)行測試時的測試參數(shù),獲得測試參數(shù)列表;
在所述可測試包名稱列表中自動匹配所述待測試模塊名稱列表,獲得待測試包名稱列表;
根據(jù)所述測試參數(shù)列表中的所述測試參數(shù)對所述待測試包名稱列表中的所有待測試包進(jìn)行測試;
生成測試日志。
第二方面,本發(fā)明實(shí)施例還提供了一種monkey測試裝置,該裝置包括:
可測試包名稱獲取模塊,用于自動獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表;
待測試模塊名稱獲取模塊,用于獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表;
測試參數(shù)設(shè)置模塊,用于設(shè)置對所述待測試應(yīng)用程序進(jìn)行測試時的測試參數(shù),獲得測試參數(shù)列表;
待測試包名稱獲取模塊,用于在所述可測試包名稱列表中自動匹配所述待測試模塊名稱列表,獲得待測試包名稱列表;
測試模塊,用于根據(jù)所述測試參數(shù)列表中的所述測試參數(shù)對所述待測試包名稱列表中的所有待測試包進(jìn)行測試;
測試日志生成模塊,用于生成測試日志。
本發(fā)明通過在自動獲取的可測試包名稱列表中自動匹配獲取的待測試模塊名稱列表,獲得待測試包名稱列表,根據(jù)該待測試包名稱列表結(jié)合設(shè)置的測試參數(shù)列表對待測試包名稱列表中的待測試包進(jìn)行測試,并生成相應(yīng)的測試日志的技術(shù)方案,解決了采用手動獲取或手動選擇待測設(shè)備中的測試包名步驟繁瑣的問題。同時由于待獲取或待選擇的測試包名的專業(yè)性較強(qiáng),在進(jìn)行測試時匹配和查找較為困難,實(shí)現(xiàn)了對monkey測試不了解的測試人員也能進(jìn)行測試操作,提高此類測試人員的測試體驗(yàn)的有益效果。
附圖說明
圖1是本發(fā)明實(shí)施例一提供的一種monkey測試方法的流程示意圖。
圖2是本發(fā)明實(shí)施例二提供的一種monkey測試方法的流程示意圖。
圖3是本發(fā)明實(shí)施例三提供的一種monkey測試方法的流程示意圖。
圖4a是本發(fā)明實(shí)施例三中的一種測試結(jié)果分析餅狀圖的示意圖。
圖4b是本發(fā)明實(shí)施例三中的一種測試結(jié)果分析柱狀圖的示意圖。
圖5是本發(fā)明實(shí)施例四提供的一種monkey測試方法的流程示意圖。
圖6是本發(fā)明實(shí)施例五提供的一種monkey測試裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的一種monkey測試方法的流程示意圖,本實(shí)施例可用于對諸如手機(jī)、平板電腦等智能終端設(shè)備進(jìn)行穩(wěn)定性測試的情況,該方法可以由軟件和/或硬件來執(zhí)行,具體包括如下步驟:
步驟110、自動獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表;
其中,智能終端可以是移動終端設(shè)備,也可以是固定終端設(shè)備??蓽y試包名稱列表至少包括智能終端中所有應(yīng)用程序呈現(xiàn)給用戶的慣用名稱與智能終端中存儲的應(yīng)用程序包的專用名稱形成的名稱對照表。以智能手機(jī)為例,用戶直觀的獲取的智能手機(jī)中的短信圖標(biāo)下顯示的“短信”即為慣用名稱;在智能手機(jī)中存儲的短信應(yīng)用程序?qū)?yīng)的程序包“com.android.mms”即為專用名稱。
步驟120、獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表;
其中,待測試模塊名稱列表中的待測試應(yīng)用程序?qū)?yīng)的名稱均為慣用名稱。另外,對獲取待測試模塊名稱列表中每個慣用名稱的具體呈現(xiàn)方式不做限定。也即,如果智能終端針對以漢語為母語的用戶,則慣用名稱為中文形式;如果智能終端針對以其他語言為母語的用戶,則慣用名稱為對應(yīng)的語言形式。
步驟130、設(shè)置對所述待測試應(yīng)用程序進(jìn)行測試時的測試參數(shù),獲得測試參數(shù)列表;
其中,測試參數(shù)至少包括事件次數(shù)/測試時長、時間間隔以及測試策略。值得說明的是,事件次數(shù)是指執(zhí)行一次monkey測試需要循環(huán)的測試次數(shù),用戶可以根據(jù)需求自行輸入;測試時長是指對待測試的測試包在預(yù)設(shè)的時間段內(nèi)執(zhí)行monkey測試,當(dāng)時間超過該預(yù)設(shè)時長,則測試終止;時間間隔是指兩次monkey測試事件之間的間隔時間,用戶可以根據(jù)需求自行設(shè)定,默認(rèn)為500ms。
設(shè)置的事件次數(shù)/測試時長、時間間隔或者測試策略不同,則形成的測試參數(shù)列表也不同,最終形成的測試指令也就不同。
步驟140、在所述可測試包名稱列表中自動匹配所述待測試模塊名稱列表,獲得待測試包名稱列表;
其中,待測試包名稱列表中包含的每個待測試包的名稱均為專用名稱,以便形成最終的測試指令。
步驟150、根據(jù)所述測試參數(shù)列表中的所述測試參數(shù)對所述待測試包名稱列表中的所有待測試包進(jìn)行測試;
步驟160、生成測試日志。
該monkey測試方法的工作原理是:通過獲取智能終端中的所有應(yīng)用程序?qū)?yīng)的包名的慣用名稱和專用名稱形成的可測試包名稱列表,獲取待測試的應(yīng)用程序?qū)?yīng)的慣用名稱形成的待測試模塊名稱列表。將上述兩列表中的內(nèi)容進(jìn)行自動匹配后獲取由待測試模塊列表中的待測試應(yīng)用程序慣用名稱對應(yīng)的專用名稱形成待測試包名稱列表。并且,結(jié)合測試人員手動輸入和/或手動選擇的測試參數(shù)形成的測試參數(shù)列表,對待測試包名稱列表中的所有待測試包進(jìn)行monkey測試,最終生成測試日志。
本發(fā)明通過在自動獲取的可測試包名稱列表中自動匹配獲取的待測試模塊名稱列表,獲得待測試包名稱列表,根據(jù)該待測試包名稱列表結(jié)合設(shè)置的測試參數(shù)列表對待測試包名稱列表中的待測試包進(jìn)行測試,并生成相應(yīng)的測試日志的技術(shù)方案,解決了采用手動獲取或手動選擇待測設(shè)備中的測試包名步驟繁瑣的問題。同時由于待獲取或待選擇的測試包名的專業(yè)性較強(qiáng),在進(jìn)行測試時匹配和查找較為困難,實(shí)現(xiàn)了對monkey測試不了解的測試人員也能進(jìn)行測試操作,提高此類測試人員的測試體驗(yàn)的有益效果。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的一種monkey測試方法的流程示意圖,本實(shí)施例在上述各實(shí)施例的技術(shù)方案的基礎(chǔ)上,進(jìn)一步增加了其他特征。
進(jìn)一步地,在生成測試日志之后,還包括:
步驟170、自動分析所述測試日志,生成測試結(jié)果分析圖和/或測試結(jié)果分析表。
具體地,對測試日志進(jìn)行分析可以采用搜索關(guān)鍵字的方法,在測試日志中檢索anr(applicationnoresponse,應(yīng)用程序無響應(yīng))、crash(崩潰)和exception(異常)并將其定位到測試日志中的具體的關(guān)鍵段落,然后在段落中提取關(guān)鍵信息,生成測試結(jié)果分析圖和/或測試結(jié)果分析表。
進(jìn)一步地,在自動分析所述測試日志,生成測試結(jié)果分析圖和/或測試結(jié)果分析表之后,還包括:
步驟180、將所述測試日志和/或測試結(jié)果分析圖和/或測試結(jié)果分析表發(fā)送到指定郵箱。
具體地,將測試日志以及后續(xù)經(jīng)自動分析生成的測試結(jié)果分析圖和/或測試結(jié)果分析表自動發(fā)送至研發(fā)及測試的相關(guān)人員的電子郵箱中。其中,相關(guān)人員的郵箱地址可以在智能終端中進(jìn)行設(shè)置。
本實(shí)施例的技術(shù)方案,通過自動分析測試日志,生成測試結(jié)果分析圖和/或測試結(jié)果分析表能夠直觀呈現(xiàn)本次測試應(yīng)用程序的問題點(diǎn)。通過將測試日志以及后續(xù)經(jīng)自動分析后生成的測試結(jié)果分析圖和/或測試結(jié)果分析表自動發(fā)送至研發(fā)及測試的相關(guān)人員的電子郵箱,方便研發(fā)人員及測試的相關(guān)人員及時獲取測試信息,以便有針對性的進(jìn)行后續(xù)的優(yōu)化。
實(shí)施例三
圖3為本發(fā)明實(shí)施例三提供的一種monkey測試方法的流程示意圖。本實(shí)施例可以以上述各實(shí)施例的技術(shù)方案為基礎(chǔ),提供了一種優(yōu)選實(shí)施例。具體包括以下步驟:
步驟110、自動獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表;
具體地,在測試前需要將包含測試程序腳本文件組成的批量處理文件和安裝在智能終端中的安裝包文件放入電腦端的同一文件夾內(nèi)。將智能終端連接在電腦上,電腦端啟動該批量處理文件,通過運(yùn)行批量處理文件中的安卓測試橋接指令將安裝包文件安裝到智能終端內(nèi),并運(yùn)行該安裝包文件對應(yīng)的應(yīng)用程序。該應(yīng)用程序?qū)尸F(xiàn)用于與用戶進(jìn)行交互的monkey測試工具主界面,同時后臺運(yùn)行獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表。該列表存儲在智能終端中,方便后續(xù)測試操作。
其中,可測試包名稱列表至少包括智能終端中所有應(yīng)用程序呈現(xiàn)給用戶的慣用名稱與智能終端中存儲的應(yīng)用程序包的專用名稱形成的名稱對照表。其中,諸如“qq瀏覽器”、“電話服務(wù)”、“短信”等形式的名稱均為慣用名稱;與之對應(yīng)的“com.tencent.mtt”、“com.android.phone”、“com.android.mms”等形式的名稱均為專用名稱。另外,值得注意的是,可測試包名稱列表可以是txt文本格式,也可以是其他存儲格式。
需要說明的是,如果自動獲取成功,將繼續(xù)執(zhí)行后續(xù)步驟;否則將會以諸如彈窗等形式提醒用戶重新操作。
步驟120、獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表;
其中,待測試模塊名稱列表中的待測試應(yīng)用程序?qū)?yīng)的名稱均為慣用名稱。另外,對獲取待測試模塊名稱列表中每個慣用名稱的具體方式不做限定。
具體地,用戶可以通過智能終端中的monkey測試工具主界面輸入的所有的待測試應(yīng)用程序的慣用名稱形成待測試模塊名稱列表。在此,對該待測試模塊名稱列表在智能終端中的存儲格式和存儲路徑不做任何限定。
優(yōu)選地,步驟120可以包括:
步驟121a、測試人員文本輸入所述待測試應(yīng)用程序?qū)?yīng)的名稱;
步驟122a、根據(jù)所述名稱,獲得所述待測試模塊名稱列表。
具體地,用戶可以在monkey測試工具主界面的文本框中手動輸入待測試應(yīng)用程序的慣用名稱,然后采用上述慣用名稱形成待測試模塊名稱列表。
需要說明的是,用戶可以一次或者多次在monkey測試工具主界面的文本框中輸入待測試應(yīng)用程序的慣用名稱。在兩次文本輸入之間,該主界面可以出現(xiàn)選擇窗口供用戶選擇是否繼續(xù)輸入。在此,對選擇窗口的具體呈現(xiàn)形式不做任何限定。
步驟130、設(shè)置對所述待測試應(yīng)用程序進(jìn)行測試時的測試參數(shù),獲得測試參數(shù)列表;
具體地,用戶可以在monkey測試工具主界面中手動輸入或者手動選擇相應(yīng)的測試參數(shù)。
示例性地,當(dāng)用戶設(shè)置的事件次數(shù)為1200000000,選擇“-v–v–v;”、“--pct-trackball<percent>;”以及“--ignore-crashes;”,最終形成的測試參數(shù)列表為:忽略崩潰事件(--ignore-crashes);軌跡球事件占比0%(--pct-trackball<percent>);詳細(xì)輸出日志信息(-v–v–v);測試間隔500ms(--throttle500);事件次數(shù)(1200000000)。
步驟140、在所述可測試包名稱列表中自動匹配所述待測試模塊名稱列表,獲得待測試包名稱列表;
其中,待測試包名稱列表中包含的每個待測試包的名稱均為專用名稱,以便形成最終的測試指令。
具體地,智能終端將可測試包名稱列表、待測試模塊名稱列表和測試參數(shù)列表一并導(dǎo)入電腦端。電腦端在可測試包名稱列表中根據(jù)待測試包名稱列表中的每一個慣用名稱自動匹配相應(yīng)的專用名稱,形成待測試包名稱列表。
需要說明的是,如果用戶在未輸入任何待測試應(yīng)用程序的慣用名稱的情況下進(jìn)行測試,則可以設(shè)置為對可測試包名稱列表中的所有應(yīng)用程序包進(jìn)行測試,或者設(shè)置為不進(jìn)行任何測試。
另外,如果待測試模塊名稱列表中存在諸如用戶輸入名稱有誤或者智能終端中并未安裝該慣用名稱對應(yīng)的應(yīng)用程序等原因造成自動匹配的過程中可能存在匹配不成功的情況。此時,電腦端可以提醒用戶未匹配成功的慣用名稱,然后繼續(xù)執(zhí)行后續(xù)測試步驟;還可以終止后續(xù)步驟的操作,提醒用戶重新執(zhí)行步驟120。
步驟150、根據(jù)所述測試參數(shù)列表中的所述測試參數(shù)對所述待測試包名稱列表中的所有待測試包進(jìn)行測試;
步驟160、生成測試日志。
步驟170、自動分析所述測試日志,生成測試結(jié)果分析圖和/或測試結(jié)果分析表。
具體地,對測試日志進(jìn)行分析可以采用搜索關(guān)鍵字的方法,在測試日志中檢索anr(applicationnoresponse,應(yīng)用程序無響應(yīng))、crash(崩潰)和exception(異常)將測試日志中的相關(guān)內(nèi)容定位到具體的關(guān)鍵段落,然后在段落中提取關(guān)鍵信息,生成測試結(jié)果分析圖和/或測試結(jié)果分析表。
具體地,測試結(jié)果分析圖至少包括發(fā)生anr、crash、exception三種異常的異常次數(shù)。對該測試結(jié)果分析圖的具體呈現(xiàn)形式不做任何限定,本實(shí)施例示例性的提供測試結(jié)果分析餅狀圖(參見圖4a)和測試結(jié)果分析柱狀圖(參見圖4b)。
具體地,測試結(jié)果分析表至少包括monkey測試總結(jié)表和/或monkey日志異常信息統(tǒng)計(jì)表。
其中,monkey測試總結(jié)表的內(nèi)容至少包括anr次數(shù)、crash次數(shù)以及exception次數(shù)。示例性的給出一種具體的測試結(jié)果分析表的內(nèi)容如下表所示:
其中,monkey日志異常信息統(tǒng)計(jì)表中的內(nèi)容至少包括進(jìn)行測試的測試包的包名、異常類型、異常內(nèi)容以及異常原因等。示例性的給出一種具體的monkey日志異常信息統(tǒng)計(jì)表的內(nèi)容如下表所示:
步驟180、將所述測試日志和/或測試結(jié)果分析圖和/或測試結(jié)果分析表發(fā)送到指定郵箱。
本實(shí)施例的上述技術(shù)方案,用戶通過monkey測試工具主界面中的文本框手動輸入智能終端中待測試的應(yīng)用程序包的慣用名稱,降低了對測試人員的專業(yè)性要求,使對monkey測試不了解的測試人員也能進(jìn)行測試操作,提高此類測試人員的測試體驗(yàn)。
實(shí)施例四
圖5為本發(fā)明實(shí)施例四提供的一種monkey測試方法的流程示意圖,本發(fā)明實(shí)施例與實(shí)施例三的區(qū)別在于,將上述實(shí)施例步驟120中的“獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表”優(yōu)選為以下內(nèi)容:
步驟121b、測試人員語音輸入所述待測試應(yīng)用程序?qū)?yīng)的名稱;
步驟122b、根據(jù)語音識別后的名稱,獲得所述待測試模塊名稱列表。
具體地,用戶可以在monkey測試工具界面點(diǎn)擊語音輸入圖標(biāo),此時將會調(diào)用智能終端中的語音輸入模塊,智能終端根據(jù)自身的語音輸入模塊語音識別用戶輸入的待檢測應(yīng)用程序的慣用名稱,并根據(jù)上述慣用名稱匯總成待測模塊名稱列表,用于后續(xù)測試過程。
本實(shí)施例的技術(shù)方案,用戶通過在monkey測試工具主界面中點(diǎn)擊語音輸入圖標(biāo)來調(diào)用智能終端中的語音輸入模塊,智能終端獲取并識別用戶語音輸入的待測試應(yīng)用程序的慣用名稱,方便了用戶的測試操作,降低了對測試人員的專業(yè)性要求,使對monkey測試不了解的測試人員也能進(jìn)行測試操作,提高此類測試人員的測試體驗(yàn)。
實(shí)施例五
圖6為本發(fā)明實(shí)施例五提供的一種monkey測試裝置的結(jié)構(gòu)示意圖,該裝置包括:
可測試包名稱獲取模塊210、待測試模塊名稱獲取模塊220、測試參數(shù)設(shè)置模塊230、待測試包名稱獲取模塊240、測試模塊250以及測試日志生成模塊260。
其中,可測試包名稱獲取模塊210,用于自動獲取智能終端中所有應(yīng)用程序?qū)?yīng)的包名,獲得可測試包名稱列表;
待測試模塊名稱獲取模塊220,用于獲取所述智能終端中的待測試應(yīng)用程序?qū)?yīng)的待測試模塊名稱列表;
測試參數(shù)設(shè)置模塊230,用于設(shè)置對所述待測試應(yīng)用程序進(jìn)行測試時的測試參數(shù),獲得測試參數(shù)列表;
待測試包名稱獲取模塊240,用于在所述可測試包名稱列表中自動匹配所述待測試模塊名稱列表,獲得待測試包名稱列表;
測試模塊250,用于根據(jù)所述測試參數(shù)列表中的所述測試參數(shù)對所述待測試包名稱列表中的所有待測試包進(jìn)行測試;
測試日志生成模塊260,用于生成測試日志。
本發(fā)明實(shí)施例提供的monkey測試裝置,通過可測試包名稱獲取模塊210自動獲取智能終端中的可測試包名稱列表;并通過待測試包名稱獲取模塊240將待測試模塊名稱獲取模塊220獲取的智能終端中的待測試應(yīng)用程序的慣用名稱,在可測試包名稱列表中自動匹配該慣用名稱對應(yīng)的專用名稱,獲得待測試包名稱列表;測試模塊250結(jié)合測試參數(shù)設(shè)置模塊230中的測試參數(shù)列表包含的測試參數(shù),對待測試包名稱列表中的相關(guān)測試包執(zhí)行測試操作,并且測試日志生成模塊260生成對應(yīng)的測試日志。上述技術(shù)方案解決了采用手動獲取或手動選擇待測設(shè)備中的測試包名步驟繁瑣的問題。同時解決了由于待獲取或待選擇的測試包名的專業(yè)性較強(qiáng),在進(jìn)行測試時匹配和查找較為困難,實(shí)現(xiàn)了對monkey測試不了解的測試人員也能進(jìn)行測試操作,提高此類測試人員的測試體驗(yàn)的有益效果。
上述裝置,優(yōu)選地,還包括:
測試結(jié)果生成模塊270,用于自動分析所述測試日志,生成測試結(jié)果分析圖和/或測試結(jié)果分析表。
上述裝置,優(yōu)選地,還包括:
郵件發(fā)送模塊280,用于將所述測試日志和/或測試結(jié)果分析圖和/或測試結(jié)果分析表發(fā)送到指定郵箱。
示例性地,所述待測試模塊名稱獲取模塊230,包括:
文本輸入單元,用于測試人員手動輸入所述待測試應(yīng)用程序?qū)?yīng)的名稱;
第一名稱獲取單元,用于根據(jù)所述名稱,獲得所述待測試模塊名稱列表。
示例性地,所述待測試模塊名稱獲取模塊230,包括:
語音輸入單元,用于測試人員語音輸入所述待測試應(yīng)用程序?qū)?yīng)的名稱;
第二名稱獲取單元,根據(jù)語音識別后的名稱,獲得所述待測試模塊名稱列表。
上述monkey測試裝置可執(zhí)行本發(fā)明任意實(shí)施例所提供的monkey測試方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實(shí)施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。