一種在安卓設(shè)備上測試應(yīng)用程序的方法和裝置制造方法
【專利摘要】本申請(qǐng)公開了一種在安卓設(shè)備上測試應(yīng)用程序的方法和裝置。該方法包括:將需要測試的安卓設(shè)備連接到服務(wù)器上,服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中,服務(wù)器遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試,并生成測試結(jié)果。應(yīng)用本發(fā)明能夠提高測試效率。
【專利說明】一種在安卓設(shè)備上測試應(yīng)用程序的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及測試【技術(shù)領(lǐng)域】,尤其涉及一種在安卓設(shè)備上測試應(yīng)用程序的方法和裝置。
【背景技術(shù)】
[0002]目前,市面上的安卓(android)設(shè)備類型繁多,在安卓設(shè)備上運(yùn)行的應(yīng)用程序在正式發(fā)布之前,需要在各種類型的安卓設(shè)備上進(jìn)行測試,以使得各種類型的安卓設(shè)備都能兼容該應(yīng)用程序。
[0003]目前,常常通過用戶體驗(yàn)的方式在安卓設(shè)備上進(jìn)行應(yīng)用程序測試。
[0004]具體地,當(dāng)體驗(yàn)用戶的數(shù)量較多時(shí),常常能夠覆蓋較多類型的安卓設(shè)備,因此,將待測試應(yīng)用程序和測試用例分發(fā)給大量的體驗(yàn)用戶,由體驗(yàn)用戶利用所述測試用例對(duì)待測試應(yīng)用程序進(jìn)行測試,并返回測試結(jié)果。
[0005]可見,通過用戶體驗(yàn)的方式在安卓設(shè)備上進(jìn)行應(yīng)用程序測試的方法,除了需要維護(hù)龐大的體驗(yàn)用戶群以外,由于測試結(jié)果依賴于體驗(yàn)用戶的測試行為,而眾多的體驗(yàn)用戶難以在短時(shí)間內(nèi)都完成測試行為,因此往往測試效率較低。
【發(fā)明內(nèi)容】
[0006]本申請(qǐng)?zhí)峁┝艘环N在安卓設(shè)備上測試應(yīng)用程序的方法和裝置,能夠提高測試效率。
[0007]—種在安卓設(shè)備上測試應(yīng)用程序的方法,該方法包括:
[0008]將需要測試的安卓設(shè)備連接到或服務(wù)器上,
[0009]服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中,
[0010]服務(wù)器遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試,并生成測試結(jié)果O
[0011]一種在安卓設(shè)備上測試應(yīng)用程序的裝置,該裝置包括連接模塊、獲取模塊、測試執(zhí)行模塊和結(jié)果生成模塊;
[0012]所述連接模塊,用于連接需要測試的安卓設(shè)備;
[0013]所述獲取模塊,用于獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中;
[0014]所述測試執(zhí)行模塊,用于遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試;
[0015]所述結(jié)果生成模塊,用于生成所述測試執(zhí)行模塊的測試結(jié)果。
[0016]由上述方案可見,本發(fā)明通過將需要測試的安卓設(shè)備都連接到服務(wù)器上,服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中,遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試,并生成測試結(jié)果,可以實(shí)現(xiàn)對(duì)批量的安卓設(shè)備幾乎同時(shí)執(zhí)行同一套測試用例,從而在幾乎一個(gè)測試用例的運(yùn)行時(shí)間內(nèi)完成批量安卓設(shè)備的測試工作,大大地提高了測試效率。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明提供的在安卓設(shè)備上測試應(yīng)用程序的方法流程圖。
[0018]圖2是本發(fā)明提供的在安卓設(shè)備上測試應(yīng)用程序的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0019]圖1是本發(fā)明提供的在安卓設(shè)備上測試應(yīng)用程序的方法流程圖。
[0020]如圖1所示,該方法包括:
[0021]步驟101,將需要測試的安卓設(shè)備連接到服務(wù)器上。
[0022]其中,所述的服務(wù)器,可以是個(gè)人電腦(PC)機(jī),也可以是其他類型的服務(wù)器。
[0023]本步驟中,可以將需要測試的安卓設(shè)備通過串行通訊USB接口連接到服務(wù)器上,或者通過無線網(wǎng)絡(luò)連接到服務(wù)器上,其中,通過無線網(wǎng)絡(luò)連接到同一個(gè)服務(wù)器上的各個(gè)安卓設(shè)備中安裝有代理模塊、且通過無線網(wǎng)絡(luò)連接到同一個(gè)服務(wù)器上各個(gè)安卓設(shè)備的IP地址與該服務(wù)器的IP地址屬于同一個(gè)局域網(wǎng)。
[0024]步驟102,服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中。
[0025]本步驟中,服務(wù)器通過調(diào)用安卓平臺(tái)的軟件開發(fā)工具包SDK中的命令獲取通過USB接口連接的安卓設(shè)備的屬性信息,所述屬性信息包括該安卓設(shè)備的設(shè)備ID,還可以包括安卓設(shè)備的生產(chǎn)商、型號(hào)、系統(tǒng)版本等信息,例如,通過Android SDK自帶的adb devices命令獲取被測試安卓設(shè)備的設(shè)備ID。服務(wù)器利用通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中的代理模塊,獲取通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址,將通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址作為相應(yīng)安卓設(shè)備自身的設(shè)備ID。
[0026]其中的代理模塊,用于在接收服務(wù)器的命令,根據(jù)該命令獲取安卓設(shè)備的信息并返回給服務(wù)器,或者將該命令發(fā)給安卓設(shè)備中的測試用例等模塊,以使得該測試用例等模塊能夠根據(jù)該命令啟動(dòng)測試等工作。
[0027]步驟103,服務(wù)器遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試,并生成測試結(jié)果。
[0028]其中,每個(gè)測試線程利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試的步驟具體可以包括:
[0029]步驟1、測試線程卸載設(shè)備ID對(duì)應(yīng)的安卓設(shè)備上的待測試應(yīng)用程序和測試用例。
[0030]本步驟中,可以調(diào)用命令adb uninstall卸載待測試應(yīng)用程序和測試用例。
[0031]步驟2、測試線程將當(dāng)前的待測試應(yīng)用程序和當(dāng)前的測試用例安裝到該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備上。[0032]本步驟中,可以調(diào)用命令adb install安裝待測試應(yīng)用程序和測試用例。
[0033]步驟3、測試線程調(diào)用被測安卓設(shè)備上當(dāng)前的測試用例對(duì)當(dāng)前的待測試應(yīng)用程序進(jìn)行測試。
[0034]本步驟中,可以通過調(diào)用命令adb shell am instrument-w來調(diào)用Instrument測試框架啟動(dòng)測試,并且,可以定期調(diào)用命令adb shell dumpsys meminfo和adb shelldumpsys cpuinfo來實(shí)現(xiàn)對(duì)被測試安卓設(shè)備的CPU和/或內(nèi)存的監(jiān)控,并將監(jiān)控結(jié)果寫入測試結(jié)果存儲(chǔ)文件或日志文件中。其中,Instrument測試框架是一系列對(duì)android系統(tǒng)進(jìn)行控制的方法的集合??梢栽赼ndroid應(yīng)用正常的生命周期之外獨(dú)立的控制android應(yīng)用的各個(gè)組件。
[0035]其中,在生成測試結(jié)果時(shí),對(duì)于每個(gè)測試線程,按照該測試線程當(dāng)前測試的安卓設(shè)備的屬性信息生成文件名,將該測試線程的測試結(jié)果存儲(chǔ)在以該文件名命名的測試結(jié)果存儲(chǔ)文件中,從而實(shí)現(xiàn)對(duì)測試結(jié)果的歸類,并且根據(jù)測試結(jié)果存儲(chǔ)文件的文件名便于查找不同類型安卓設(shè)備的測試結(jié)果。
[0036]另外,在生成測試結(jié)果時(shí),還可以進(jìn)一步監(jiān)控每個(gè)測試線程當(dāng)前測試的安卓設(shè)備的CPU和/或內(nèi)存資源的使用信息,并將監(jiān)控結(jié)果寫入每個(gè)測試線程對(duì)應(yīng)的測試結(jié)果存儲(chǔ)文件中,從而便于根據(jù)各種類型安卓設(shè)備的CPU和/或內(nèi)存資源的使用信息以及待測試應(yīng)用程序的測試結(jié)果,對(duì)待測試應(yīng)用程序在各種類型安卓設(shè)備上的運(yùn)行情況進(jìn)行全面地分析。
[0037]各個(gè)測試線程生成的測試結(jié)果可以上傳到指定的服務(wù)器上,從而便于對(duì)測試結(jié)果的統(tǒng)一管理,并且方便得出安卓設(shè)備類型與被測試應(yīng)用程序之間的適配效果。
[0038]根據(jù)本發(fā)明的上述方法,本發(fā)明還提供了一種在安卓設(shè)備上測試應(yīng)用程序的裝置,具體請(qǐng)參見圖2。
[0039]圖2是本發(fā)明提供的在安卓設(shè)備上測試應(yīng)用程序的裝置結(jié)構(gòu)圖。
[0040]如圖2所示,該裝置包括連接模塊201、獲取模塊202、測試執(zhí)行模塊203和結(jié)果生成模塊204。
[0041]連接模塊201,用于連接需要測試的安卓設(shè)備。
[0042]獲取模塊202,用于獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中。
[0043]測試執(zhí)行模塊203,用于遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試。
[0044]結(jié)果生成模塊204,用于生成所述測試執(zhí)行模塊203的測試結(jié)果。
[0045]其中,連接模塊201,具體可以用于通過串行通訊USB接口連接安卓設(shè)備,或者通過無線網(wǎng)絡(luò)連接安卓設(shè)備,其中通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中安裝有代理模塊、且通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址與該連接模塊的IP地址屬于同一個(gè)局域網(wǎng)。
[0046]獲取模塊202,具體可以用于調(diào)用安卓平臺(tái)的軟件開發(fā)工具包SDK中的命令獲取通過USB接口連接的安卓設(shè)備的屬性信息,所述屬性信息包括該安卓設(shè)備的設(shè)備ID,利用通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中的代理模塊,獲取通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址,將通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址作為相應(yīng)安卓設(shè)備自身的設(shè)備ID0[0047]測試執(zhí)行模塊203,用于卸載該設(shè)備ID對(duì)應(yīng)的設(shè)備上的待測試應(yīng)用程序和測試用例,將當(dāng)前的待測試應(yīng)用程序和當(dāng)前的測試用例安裝到該設(shè)備ID對(duì)應(yīng)的設(shè)備上,調(diào)用當(dāng)前的測試用例對(duì)當(dāng)前的待測試應(yīng)用程序進(jìn)行測試。
[0048]結(jié)果生成模塊204,具體可以用于對(duì)于每個(gè)測試線程,根據(jù)該測試線程當(dāng)前測試的安卓設(shè)備的屬性信息生成文件名,將該測試線程的測試結(jié)果存儲(chǔ)在以該文件名命名的測試結(jié)果存儲(chǔ)文件中。
[0049]結(jié)果生成模塊204,還可以用于監(jiān)控每個(gè)測試線程當(dāng)前測試的安卓設(shè)備的CPU和/或內(nèi)存資源的使用信息,并將監(jiān)控結(jié)果寫入每個(gè)測試線程對(duì)應(yīng)的測試結(jié)果存儲(chǔ)文件中。
[0050]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種在安卓設(shè)備上測試應(yīng)用程序的方法,其特征在于,該方法包括: 將需要測試的安卓設(shè)備連接到服務(wù)器上, 服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中, 服務(wù)器遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試,并生成測試結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的設(shè)備進(jìn)行應(yīng)用程序測試包括: 卸載該設(shè)備ID對(duì)應(yīng)的設(shè)備上的待測試應(yīng)用程序和測試用例; 將當(dāng)前的待測試應(yīng)用程序和當(dāng)前的測試用例安裝到該設(shè)備ID對(duì)應(yīng)的設(shè)備上; 調(diào)用當(dāng)前的測試用例對(duì)當(dāng)前的待測試應(yīng)用程序進(jìn)行測試。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述生成測試結(jié)果包括: 對(duì)于每個(gè)測試線程,根據(jù)該測試線程當(dāng)前測試的安卓設(shè)備的屬性信息生成文件名,將該測試線程的測試結(jié)果存儲(chǔ)在以該文件名命名的測試結(jié)果存儲(chǔ)文件中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述生成測試結(jié)果還包括: 監(jiān)控每個(gè)測試線程當(dāng)前測試的安卓設(shè)備的CPU和/或內(nèi)存資源的使用信息,并將監(jiān)控結(jié)果寫入每個(gè)測試線程對(duì)應(yīng)的測試結(jié)果存儲(chǔ)文件中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,將需要測試的安卓設(shè)備連接到服務(wù)器上包括: 將需要測試的安卓設(shè)備通過串行通訊USB接口連接到服務(wù)器上,或者通過無線網(wǎng)絡(luò)連接到服務(wù)器上,其中,通過無線網(wǎng)絡(luò)連接到服務(wù)器上的各個(gè)安卓設(shè)備中安裝有代理模塊、且通過無線網(wǎng)絡(luò)連接到服務(wù)器上各個(gè)安卓設(shè)備的IP地址與所述服務(wù)器的IP地址屬于同一個(gè)局域網(wǎng); 服務(wù)器獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID包括: 服務(wù)器通過調(diào)用安卓平臺(tái)的軟件開發(fā)工具包SDK中的命令獲取通過USB接口連接的安卓設(shè)備的屬性信息,所述屬性信息包括該安卓設(shè)備的設(shè)備ID,服務(wù)器利用通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中的代理模塊,獲取所述通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址,將通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址作為相應(yīng)安卓設(shè)備自身的設(shè)備ID。
6.一種在安卓設(shè)備上測試應(yīng)用程序的裝置,其特征在于,該裝置包括連接模塊、獲取模塊、測試執(zhí)行模塊和結(jié)果生成模塊; 所述連接模塊,用于連接需要測試的安卓設(shè)備; 所述獲取模塊,用于獲取連接的每個(gè)安卓設(shè)備的設(shè)備標(biāo)識(shí)ID,將獲取的設(shè)備ID加入到可執(zhí)行列表中; 所述測試執(zhí)行模塊,用于遍歷可執(zhí)行列表中的設(shè)備ID,對(duì)于遍歷到的每個(gè)設(shè)備ID,單獨(dú)啟動(dòng)測試線程,利用當(dāng)前的測試用例對(duì)該設(shè)備ID對(duì)應(yīng)的安卓設(shè)備進(jìn)行應(yīng)用程序測試; 所述結(jié)果生成模塊,用于生成所述測試執(zhí)行模塊的測試結(jié)果。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述測試執(zhí)行模塊,用于卸載該設(shè)備ID對(duì)應(yīng)的設(shè)備上的待測試應(yīng)用程序和測試用例,將當(dāng)前的待測試應(yīng)用程序和當(dāng)前的測試用例安裝到該設(shè)備ID對(duì)應(yīng)的設(shè)備上,調(diào)用當(dāng)前的測試用例對(duì)當(dāng)前的待測試應(yīng)用程序進(jìn)行測試。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于, 所述結(jié)果生成模塊,用于對(duì)于每個(gè)測試線程,根據(jù)該測試線程當(dāng)前測試的安卓設(shè)備的屬性信息生成文件名,將該測試線程的測試結(jié)果存儲(chǔ)在以該文件名命名的測試結(jié)果存儲(chǔ)文件中。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述結(jié)果生成模塊,還用于監(jiān)控每個(gè)測試線程當(dāng)前測試的安卓設(shè)備的CPU和/或內(nèi)存資源的使用信息,并將監(jiān)控結(jié)果寫入每個(gè)測試線程對(duì)應(yīng)的測試結(jié)果存儲(chǔ)文件中。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述連接模塊,用于通過串行通訊USB接口連接安卓設(shè)備,或者通過無線網(wǎng)絡(luò)連接安卓設(shè)備,其中通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中安裝有代理模塊、且通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址與該連接模塊的IP地址屬于同一個(gè)局域網(wǎng); 所述獲取模塊,用于調(diào)用安卓平臺(tái)的軟件開發(fā)工具包SDK中的命令獲取通過USB接口連接的安卓設(shè)備的屬性信息,所述屬性信息包括該安卓設(shè)備的設(shè)備ID,利用通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備中的代理模塊,獲取通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè)備的IP地址,將通過無線網(wǎng)絡(luò)連接的各個(gè)安卓設(shè) 備的IP地址作為相應(yīng)安卓設(shè)備自身的設(shè)備ID。
【文檔編號(hào)】G06F11/36GK103713991SQ201210376104
【公開日】2014年4月9日 申請(qǐng)日期:2012年10月8日 優(yōu)先權(quán)日:2012年10月8日
【發(fā)明者】丁如敏, 皮凱 申請(qǐng)人:騰訊科技(深圳)有限公司