一種基于Monkey命令的應(yīng)用測試方法、裝置及終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種基于Monkey命令的應(yīng)用測試方法、裝置及終端。
【背景技術(shù)】
[0002]Monkey命令是谷歌提供的測試穩(wěn)定性的命令行工具。雖然通過_p參數(shù)可以指定被測試的應(yīng)用包的名稱。但實(shí)際測試中,經(jīng)常會遇到無法有效控制隨機(jī)事件,而使之后的測試失去價(jià)值的情況。
[0003]例如,以測試“清理大師的穩(wěn)定情況”為例,Monkey命令的格式為adb shellmonkey - P com.cleanmaster.mguard_cn 30000,即指定針對“清理大師”這個(gè)應(yīng)用執(zhí)行3萬個(gè)偽隨機(jī)事件。但在實(shí)際測試中,可能會在執(zhí)行到5000個(gè)事件的時(shí)候,觸發(fā)了 home鍵事件,回到主屏,此后,Monkey命令控制終端進(jìn)入到了另一個(gè)應(yīng)用,如“ QQ”,此時(shí)在有效Monkey進(jìn)程結(jié)束之前,剩下的隨機(jī)事件已經(jīng)不發(fā)生在“清理大師中”,也自然不是針對“清理大師”的有效測試,屬于無效測試。可見,目前基于Monkey命令的應(yīng)用測試無法保證盡可能多的有效測試。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種基于Monkey命令的應(yīng)用測試方法、裝置及終端,以盡可能保證基于Monkey命令的應(yīng)用測試中的有效測試,提高應(yīng)用測試的有效性。
[0005]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種基于Monkey命令的應(yīng)用測試方法,包括:
[0006]接收針對目標(biāo)應(yīng)用的Monkey命令,所述Monkey命令包括所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口、預(yù)設(shè)的針對各測試入口的偽隨機(jī)事件數(shù)量,以及預(yù)設(shè)的偽隨機(jī)事件總數(shù);
[0007]響應(yīng)所述Monkey命令,運(yùn)行所述目標(biāo)應(yīng)用;
[0008]分別將各測試入口作為Monkey的入口,執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0009]在所述針對該測試入口的偽隨機(jī)事件的執(zhí)行過程中,監(jiān)測終端最上層窗口的窗口名與該測試入口對應(yīng)的窗口名是否匹配;
[0010]若不匹配,暫停執(zhí)行所述針對該測試入口的偽隨機(jī)事件,控制終端將窗口名與該測試入口對應(yīng)的窗口名匹配的窗口設(shè)置為最上層窗口,并繼續(xù)執(zhí)行所述針對該測試入口的偽隨機(jī)事件;
[0011]當(dāng)所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成,且偽隨機(jī)事件的執(zhí)行總數(shù)達(dá)到所述預(yù)設(shè)的偽隨機(jī)事件總數(shù),確定所述目標(biāo)應(yīng)用測試完成。
[0012]其中,所述分別將各測試入口作為Monkey的入口,并執(zhí)行所述針對該測試入口的偽隨機(jī)事件包括以下步驟:
[0013]步驟Al、將任一未測試的測試入口作為Monkey的入口,并執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0014]步驟B1、當(dāng)針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),判斷是否存在未測試的測試入口,若判斷為是,轉(zhuǎn)至步驟Al ;否則,確定所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成。
[0015]其中,所述分別將各測試入口作為Monkey的入口,并執(zhí)行所述針對該測試入口的偽隨機(jī)事件包括以下步驟:
[0016]步驟A2、按照預(yù)先設(shè)定的測試順序,將為測試的測試入口中測試順序最優(yōu)的測試入口作為Monkey的入口,執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0017]步驟B2、當(dāng)針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到所述預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),判斷是否存在未測試的測試入口,若判斷為是,轉(zhuǎn)至步驟A2 ;否則,確定所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成。
[0018]其中,所述監(jiān)測終端最上層窗口的窗口名與該測試入口對應(yīng)的窗口名是否匹配之后,還包括:
[0019]若匹配,則當(dāng)所述針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到所述預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),確定該測試入口測試完成。
[0020]其中,所述控制終端將窗口名與該測試入口對應(yīng)的窗口名匹配的窗口設(shè)置為最上層窗口,包括:
[0021]當(dāng)所述終端最上層窗口為桌面窗口時(shí),判斷終端是否打開了與該測試入口對應(yīng)的窗口名匹配的窗口;
[0022]若判斷為是,將所述窗口名與該測試入口對應(yīng)的窗口名匹配的窗口最大化;
[0023]否則,控制終端運(yùn)行所述目標(biāo)應(yīng)用,并控制所述目標(biāo)應(yīng)用進(jìn)入該測試入口 ;
[0024]當(dāng)所述終端最上層窗口為該目標(biāo)應(yīng)用對應(yīng)的窗口,控制該目標(biāo)應(yīng)用進(jìn)入該測試入
□O
[0025]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種基于Monkey命令的應(yīng)用測試裝置,包括:
[0026]接收模塊,用于接收針對目標(biāo)應(yīng)用的Monkey命令,所述Monkey命令包括所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口、預(yù)設(shè)的針對各測試入口的偽隨機(jī)事件數(shù)量,以及預(yù)設(shè)的偽隨機(jī)事件總數(shù);
[0027]運(yùn)行模塊,用于響應(yīng)所述Monkey命令,運(yùn)行所述目標(biāo)應(yīng)用;
[0028]執(zhí)行模塊,用于分別將各測試入口作為Monkey的入口,執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0029]監(jiān)測模塊,用于在所述針對該測試入口的偽隨機(jī)事件的執(zhí)行過程中,監(jiān)測終端最上層窗口的窗口名與該測試入口對應(yīng)的窗口名是否匹配;
[0030]控制模塊,用于當(dāng)所述監(jiān)測模塊的監(jiān)測結(jié)果為不匹配時(shí),控制所述執(zhí)行模塊暫停執(zhí)行所述針對該測試入口的偽隨機(jī)事件,控制終端將窗口名與該測試入口對應(yīng)的窗口名匹配的窗口設(shè)置為最上層窗口,并控制所述執(zhí)行模塊繼續(xù)執(zhí)行所述針對該測試入口的偽隨機(jī)事件;
[0031]確定模塊,用于當(dāng)所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成,且偽隨機(jī)事件的執(zhí)行總數(shù)達(dá)到所述預(yù)設(shè)的偽隨機(jī)事件總數(shù),確定所述目標(biāo)應(yīng)用測試完成。
[0032]其中,所述執(zhí)行模塊,具體用于通過以下步驟實(shí)現(xiàn)將各測試入口作為Monkey的入口,并執(zhí)行所述針對該測試入口的偽隨機(jī)事件:
[0033]步驟Al、將任一未測試的測試入口作為Monkey的入口,并執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0034]步驟B1、當(dāng)針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),判斷是否存在未測試的測試入口,若判斷為是,轉(zhuǎn)至步驟Al ;否則,確定所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成。
[0035]其中,所述執(zhí)行模塊,具體用于通過以下步驟實(shí)現(xiàn)將各測試入口作為Monkey的入口,并執(zhí)行所述針對該測試入口的偽隨機(jī)事件:
[0036]步驟A2、按照預(yù)先設(shè)定的測試順序,將為測試的測試入口中測試順序最優(yōu)的測試入口作為Monkey的入口,執(zhí)行針對該測試入口的偽隨機(jī)事件;
[0037]步驟B2、當(dāng)針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到所述預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),判斷是否存在未測試的測試入口,若判斷為是,轉(zhuǎn)至步驟A2 ;否則,確定所述目標(biāo)應(yīng)用的至少兩個(gè)測試入口均測試完成。
[0038]其中,所述執(zhí)行模塊,還用于當(dāng)所述監(jiān)測模塊的監(jiān)測結(jié)果為匹配,且針對該測試入口的偽隨機(jī)事件的執(zhí)行數(shù)量達(dá)到所述預(yù)設(shè)的針對該測試入口的偽隨機(jī)事件數(shù)量時(shí),確定該測試入口測試完成。
[0039]其中,所述控制模塊,具體用于通過以下方式實(shí)現(xiàn)控制終端將窗口名與該測試入口對應(yīng)的窗口名匹配的窗口設(shè)置為最上層窗口:
[0040]當(dāng)所述終端最上層窗口為桌面窗口時(shí),判斷終端是否打開了與該測試入口對應(yīng)的窗口名匹配的窗口;
[0041]若判斷為是,將所述窗口名與該測試入口對應(yīng)的窗口名匹配的窗口最大化;
[0042]否則,控制終端運(yùn)行所述目標(biāo)應(yīng)用,并控制所述目標(biāo)應(yīng)用進(jìn)入該測試入口 ;
[0043]當(dāng)所述終端最上層窗口為該目標(biāo)應(yīng)用對應(yīng)的窗口,控制該目標(biāo)應(yīng)用進(jìn)入該測試入
□O
[0044]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種終端,包括上述基于Monkey命令的應(yīng)用測試
目.ο
[0045]實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0046]當(dāng)接收到針對目標(biāo)應(yīng)用的Monkey命令時(shí),響應(yīng)該Monkey命令,運(yùn)行該目標(biāo)應(yīng)用,并分別將Monkey命令中包括的各測試入口作為Monkey的入口,執(zhí)行針對該測試入口的偽隨機(jī)事件,在針對該測試入口的偽隨機(jī)事件的執(zhí)行過程中,監(jiān)測終端最上層窗口的窗口名與該測試入口對應(yīng)的窗口名是否匹配,若不匹配,則暫停執(zhí)行針對該測試入口的偽隨機(jī)事件,控制終端將窗口名與該測試入口對應(yīng)的窗口名匹配的窗口設(shè)置為最上層窗口,并繼續(xù)執(zhí)行針對該測試入口的偽隨機(jī)事件,當(dāng)目標(biāo)應(yīng)用的所有測試入口均測試完成,且偽隨機(jī)事件的執(zhí)行總數(shù)達(dá)到預(yù)設(shè)的偽隨機(jī)事件總數(shù),確定該目標(biāo)應(yīng)用測試完成,由于預(yù)先設(shè)定了至少兩個(gè)測試入口,并分別設(shè)定針對各測試入口的偽隨機(jī)事件數(shù)量,因而,可以避免所有偽隨機(jī)事件僅以單一的測試入口(即目標(biāo)應(yīng)用的功能選項(xiàng))為Monkey的入口,保證了針對目標(biāo)應(yīng)用的測試覆蓋更加全面;同時(shí),由于在執(zhí)行針對各測試入口的偽隨機(jī)事件的過程中,會監(jiān)測該終端最上層窗口是否與該測試入口對應(yīng)的窗口名匹配,因而,能夠保證針對該測試入口的偽隨機(jī)事件的執(zhí)行是在與該測試入口對應(yīng)的窗口中執(zhí)行的,保證了基于Monkey命令的應(yīng)用測試中的有效測試,提高了應(yīng)用測試的有效性。
【附圖說明】
[0047]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0048]圖1是本發(fā)明實(shí)施例提供的一種基于Monkey命令的應(yīng)用測試方法的流程示意圖;
[0049]圖2是本發(fā)明實(shí)施例提供的另一種基于Monkey命令的應(yīng)用測試方法的流程示意圖;
當(dāng)前第1頁
1 
2 
3 
4 
5