對移動終端進(jìn)行測試的方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種對移動終端進(jìn)行測試的方法及裝置,至少能夠解決傳統(tǒng)的測試方式一旦出錯后必須經(jīng)歷復(fù)雜的操作才能重新完成測試的技術(shù)問題。該方法包括:接收并安裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操作邏輯;通過ADB命令入口接收測試指令;其中,所述測試指令中包含操作類型標(biāo)識和/或操作對象標(biāo)識;根據(jù)所述測試安裝包中與所述操作類型標(biāo)識和/或操作對象標(biāo)識對應(yīng)的操作邏輯進(jìn)行測試。
【專利說明】
對移動終端進(jìn)行測試的方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體設(shè)及一種對移動終端進(jìn)行測試的方法及裝 置。
【背景技術(shù)】
[0002] 隨著移動終端的大量普及,移動終端的測試需求也日益增加,常常需要同時對多 部移動終端進(jìn)行測試,因此,為了提高效率,通常采用自動化測試方式進(jìn)行測試。
[0003] 為了實(shí)現(xiàn)移動終端的自動化測試效果,目前主流的測試方式是:首先,在PC端利用 開源的自動化測試框架構(gòu)造測試所需的APKUmlroid化Ckage,安卓安裝包)文件,然后,將 上述的APK文件打包后發(fā)送給移動終端,由移動終端根據(jù)該APK文件執(zhí)行自動化測試。具體 地,在APK文件中預(yù)定義了完整的測試流程,因此,移動終端接收并安裝該APK文件后即可自 動按照測試流程中規(guī)定的順序?qū)崿F(xiàn)完整的測試過程。
[0004] 但是,上述測試方式至少存在如下缺陷:由于APK文件中預(yù)定義了完整的測試流 程,該測試流程中包含完整的測試代碼,該代碼必須連貫執(zhí)行且不可拆分,因此,一旦其中 的某個步驟出現(xiàn)了錯誤,測試人員必須在PC端重新修改APK文件并將修改后的APK文件重打 包后發(fā)送給移動終端,移動終端接收到修改后的APK文件后,將依照文件中的測試流程重新 執(zhí)行測試。由此可見,在上述方式中,一方面,重新打包并傳輸整個APK文件勢必會耗費(fèi)大量 的時間;另一方面,假設(shè)測試流程中包含10個測試步驟,即使只有第9步出現(xiàn)了錯誤,也必須 重新執(zhí)行之前的所有步驟??傊?,現(xiàn)有的測試方式一旦出錯后必須經(jīng)歷復(fù)雜的操作才能重 新完成測試。
【發(fā)明內(nèi)容】
[0005] 鑒于上述問題,提出了本發(fā)明W便提供一種克服上述問題或者至少部分地解決上 述問題的對移動終端進(jìn)行測試的方法及裝置。
[0006] 依據(jù)本發(fā)明的一個方面,提供了一種對移動終端進(jìn)行測試的方法,包括:接收并安 裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型標(biāo)識和執(zhí)行各種類型操作的操 作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操作邏輯;通過ADB命令入口接收 測試指令;其中,所述測試指令中包含操作類型標(biāo)識和/或操作對象標(biāo)識;根據(jù)所述測試安 裝包中與所述操作類型標(biāo)識和/或操作對象標(biāo)識對應(yīng)的操作邏輯進(jìn)行測試。
[0007] 可選地,所述測試指令的數(shù)量為多條,且多條測試指令按照接收順序依次執(zhí)行。 [000引可選地,當(dāng)測試指令對應(yīng)的測試結(jié)果為錯誤時,該方法進(jìn)一步包括:通過ADB命令 入口接收修改后的測試指令,并根據(jù)所述修改后的測試指令重新進(jìn)行測試。
[0009] 可選地,當(dāng)測試指令對應(yīng)的測試結(jié)果為正確時,該方法進(jìn)一步包括:將所述測試指 令對應(yīng)的指令內(nèi)容保存到預(yù)設(shè)的測試文件中,其中,所述測試文件用于按照接收順序保存 各條測試指令對應(yīng)的指令內(nèi)容W便再次執(zhí)行。
[0010] 可選地,所述操作類型包括:雙擊類型、單擊類型、滑動類型、長按類型W及用于模 擬硬件按鈕的操作類型,其中,所述硬件按鈕包括W下中的一個或多個:返回鍵、菜單鍵、音 量鍵和電源鍵,且所述操作對象標(biāo)識為操作對象在屏幕上的坐標(biāo)范圍,和/或所述操作對象 標(biāo)識為操作對象的ID值;
[0011] 并且,所述定位各個操作對象的操作邏輯包括:通過預(yù)存的所述操作對象在用戶 界面上的坐標(biāo)比例進(jìn)行定位的操作邏輯;和/或,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行 定位的操作邏輯。
[0012] 依據(jù)本發(fā)明的另一方面,提供了一種對移動終端進(jìn)行測試的裝置,包括:安裝模 塊,適于接收并安裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型標(biāo)識和執(zhí)行 各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操作邏輯;接 收模塊,適于通過ADB命令入口接收測試指令;其中,所述測試指令中包含操作類型標(biāo)識和/ 或操作對象標(biāo)識;測試模塊,適于根據(jù)所述測試安裝包中與所述操作類型標(biāo)識和/或操作對 象標(biāo)識對應(yīng)的操作邏輯進(jìn)行測試。
[0013] 可選地,所述測試指令的數(shù)量為多條,且多條測試指令按照接收順序依次執(zhí)行。
[0014] 可選地,該裝置進(jìn)一步包括:重測試模塊,適于在測試指令對應(yīng)的測試結(jié)果為錯誤 時,通過ADB命令入口接收修改后的測試指令,并根據(jù)所述修改后的測試指令重新進(jìn)行測 試。
[0015] 可選地,該裝置進(jìn)一步包括:存儲模塊,適于在測試指令對應(yīng)的測試結(jié)果為正確 時,將所述測試指令對應(yīng)的指令內(nèi)容保存到預(yù)設(shè)的測試文件中,其中,所述測試文件用于按 照接收順序保存各條測試指令對應(yīng)的指令內(nèi)容W便再次執(zhí)行。
[0016] 可選地,所述操作類型包括:雙擊類型、單擊類型、滑動類型、長按類型W及用于模 擬硬件按鈕的操作類型,其中,所述硬件按鈕包括W下中的一個或多個:返回鍵、菜單鍵、音 量鍵和電源鍵,且所述操作對象標(biāo)識為操作對象在屏幕上的坐標(biāo)范圍,和/或所述操作對象 標(biāo)識為操作對象的ID值;
[0017] 并且,所述定位各個操作對象的操作邏輯包括:通過預(yù)存的所述操作對象在用戶 界面上的坐標(biāo)比例進(jìn)行定位的操作邏輯;和/或,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行 定位的操作邏輯。
[0018] 在本發(fā)明提供的對移動終端進(jìn)行測試的方法及裝置中,將傳統(tǒng)的APK文件替換為 本發(fā)明中的測試安裝包,并且,測試安裝包中并未直接定義一系列連貫執(zhí)行且不可拆分的 測試流程,而是定義了執(zhí)行測試過程所需的各種單獨(dú)的操作邏輯,例如,定義了多個操作類 型標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的 操作邏輯。在此基礎(chǔ)上,根據(jù)接收到的ADB測試指令完成各個操作邏輯,W實(shí)現(xiàn)完整的測試 過程。由此可見,在本發(fā)明中,將操作邏輯和具體的操作步驟分離,因此,當(dāng)某一步出現(xiàn)錯誤 時,無需修改測試安裝包,只需重新接收并執(zhí)行該步驟對應(yīng)的ADB測試指令即可,可做到單 步出錯單步調(diào)試的效果,因而大大簡化了調(diào)試過程。
[0019] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予W實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,W下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0020] 通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明 的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0021] 圖1示出了本發(fā)明一個實(shí)施例提供的對移動終端進(jìn)行測試的方法的流程圖;
[0022] 圖2示出了本發(fā)明另一個具體實(shí)施例提供的對移動終端進(jìn)行測試的方法的流程 圖;
[0023] 圖3示出了本發(fā)明一個實(shí)施例提供的對移動終端進(jìn)行測試的裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0024] 下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開 的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可W W各種形式實(shí)現(xiàn)本公開而不應(yīng)被運(yùn)里闡述的實(shí)施例 所限制。相反,提供運(yùn)些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0025] 本發(fā)明實(shí)施例提供了一種對移動終端進(jìn)行測試的方法及裝置,至少能夠解決傳統(tǒng) 的測試方式一旦出錯后必須經(jīng)歷復(fù)雜的操作才能重新完成測試的技術(shù)問題。
[0026] 圖1示出了本發(fā)明一個實(shí)施例提供的對移動終端進(jìn)行測試的方法的流程圖。如圖1 所示,該方法具體包括W下步驟:
[0027] 步驟Sl 10 :接收并安裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型 標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操 作邏輯。
[0028] 例如,操作類型包括:雙擊類型、單擊類型、滑動類型、長按類型W及用于模擬硬件 按鈕的操作類型等,其中,所述硬件按鈕包括W下中的一個或多個:返回鍵、菜單鍵、音量鍵 和電源鍵等。執(zhí)行各種類型操作的操作邏輯通常通過軟件代碼或接口函數(shù)實(shí)現(xiàn),用于自動 完成相應(yīng)類型的操作過程。操作對象通常為具體的控件,可W通過控件的坐標(biāo)或名稱表示, 當(dāng)然,除控件外,操作對象還可W是按鈕或輸入框等。定位操作對象的操作邏輯一般也通過 軟件代碼或接口函數(shù)實(shí)現(xiàn),用于在屏幕上確定該操作對象的具體位置。
[0029] 步驟S120:通過ADB命令入口接收測試指令;其中,所述測試指令中包含操作類型 標(biāo)識和/或操作對象標(biāo)識。
[0030] 其中,測試指令也可W稱作ADB命令,每條ADB命令用于指示移動終端具體執(zhí)行何 種操作,包括操作的類型和/或標(biāo)識。例如,可W對控件A執(zhí)行單擊操作等。
[0031] 步驟S130:根據(jù)測試安裝包中與操作類型標(biāo)識和/或操作對象標(biāo)識對應(yīng)的操作邏 輯進(jìn)行測試。
[0032] 例如,當(dāng)需要對控件A進(jìn)行單擊操作時,需要從測試安裝包中獲取執(zhí)行單擊操作所 對應(yīng)的操作邏輯W及定位控件A的操作邏輯,并據(jù)此進(jìn)行測試。
[0033] 由此可見,在本發(fā)明中,將操作邏輯和具體的操作步驟分離,因此,當(dāng)某一步出現(xiàn) 錯誤時,無需修改測試安裝包,只需重新接收并執(zhí)行該步驟對應(yīng)的ADB測試指令即可,可做 到單步出錯單步調(diào)試的效果,因而大大簡化了調(diào)試過程。
[0034] 圖2示出了本發(fā)明另一個實(shí)施例提供的對移動終端進(jìn)行測試的方法的流程圖。本 實(shí)施例可W基于多種自動化測試框架實(shí)現(xiàn),例如,可W基于化automator和/或Robotium測 試框架、W及Monkey Runner測試框架等,本發(fā)明對具體的測試環(huán)境不做限定。另外,在本實(shí) 施例中W基于安卓平臺為例進(jìn)行說明,但本領(lǐng)域技術(shù)人員能夠理解的是,本發(fā)明實(shí)施例中 的方案也可W靈活應(yīng)用于其他各種平臺的移動終端中。如圖2所示,該方法具體包括W下步 驟:
[0035] 步驟S210:在PC端生成測試安裝包,并將該測試安裝包發(fā)送給移動終端。
[0036] 其中,測試安裝包可W通過APK形式實(shí)現(xiàn),也可W通過其他各種形式實(shí)現(xiàn)。在測試 安裝包中定義了測試所需的各種操作邏輯。例如,多個操作類型標(biāo)識和執(zhí)行各種類型操作 的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操作邏輯。其中,操作邏輯可 W通過軟件代碼、函數(shù)接口、硬件忍片等各類方式實(shí)現(xiàn)。
[0037] 步驟S220:移動終端接收并安裝上述的測試安裝包。
[0038] 其中,移動終端可W通過多種方式接收上述的測試安裝包,例如,可W通過數(shù)據(jù)線 與PC連接后將測試安裝包拷貝到移動終端的硬盤上?;蛘?,也可W通過wifi、藍(lán)牙等各種無 線傳輸方式將測試安裝包傳輸給移動終端?;蛘?,也可W通過ADB命令入口來傳輸該測試安 裝包。本發(fā)明對具體的傳輸方式不做限定。
[0039] 通過安裝上述的測試安裝包,使移動終端本地存儲了測試所需的各種操作邏輯, 包括多個操作類型標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位 各個操作對象的操作邏輯等。
[0040] 步驟S230 :在PC端生成測試指令,并通過ADB命令入口將測試指令發(fā)送給移動終 JLjJU 乂而。
[0041] 具體地,生成的測試指令的指令內(nèi)容取決于本步驟對應(yīng)的具體測試內(nèi)容。測試指 令可W通過W下形式的ADB命令實(shí)現(xiàn):"a化 shell am broadcast-a ADB_INTENT-e OPER [valuel]-e WIDGET[value2]…"其中,通過valuel來傳遞操作類型標(biāo)識(如點(diǎn)擊、滑動、長 按等),通過value2傳遞操作的具體參數(shù),比如點(diǎn)擊的控件對象的類型、文本、index等屬性。 例如,假設(shè)本實(shí)施例中的方法需要在移動終端側(cè)點(diǎn)擊"設(shè)置"按鈕并在彈出的設(shè)置輸入框中 點(diǎn)擊"亮度調(diào)節(jié)"按鈕并進(jìn)行調(diào)節(jié)。相應(yīng)地,為了實(shí)現(xiàn)上述步驟,至少需要生成兩條測試指 令。第一條測試指令用于實(shí)現(xiàn)點(diǎn)擊"設(shè)置"按鈕的操作步驟,在該測試指令中包含單擊操作 所對應(yīng)的操作類型標(biāo)識(通過上述的valuel表示),用W指示本次操作為單擊類型的操作; 另外,在該測試指令中還包含操作對象標(biāo)識(通過上述的value2表示),即"設(shè)置"按鈕的按 鈕ID或按鈕名稱等,用W指示本次操作的對象為"設(shè)置"按鈕。第二條測試指令用于實(shí)現(xiàn)點(diǎn) 擊"亮度調(diào)節(jié)"按鈕的操作步驟,在該測試指令中包含單擊操作所對應(yīng)的操作類型標(biāo)識,用 W指示本次操作為單擊類型的操作;另外,在該測試指令中還包含操作對象標(biāo)識,即"亮度 調(diào)節(jié)"按鈕的按鈕ID或按鈕名稱等,用W指示本次操作的對象為"亮度調(diào)節(jié)"按鈕。具體實(shí)現(xiàn) 時,上述的兩條測試指令可W同時發(fā)送給移動終端,并在各條測試指令中包含執(zhí)行順序號, W使移動終端根據(jù)執(zhí)行順序號確定各條測試指令的執(zhí)行順序;也可W按照執(zhí)行順序?qū)⑸鲜?的兩條測試指令先后發(fā)送給移動終端,例如,可W等到第一條測試指令執(zhí)行完畢并返回測 試成功的測試結(jié)果后再發(fā)送第二條測試指令。
[0042] 在具體實(shí)現(xiàn)時,測試指令的數(shù)量不限于兩條,可W是更多條測試指令。另外,測試 指令中包含的操作類型也不限于單擊操作,還可W是雙擊、滑動、長按等各種可能的操作, 而且,還可W是用于模擬硬件按鈕的操作,其中,硬件按鈕包括W下中的一個或多個:返回 鍵、菜單鍵、Home鍵、音量鍵和電源鍵。測試指令中包含的操作對象還可能是其他的按鈕、輸 入框等。另外,測試指令還可W僅包含操作類型或者僅包含操作對象,當(dāng)測試指令僅包含操 作類型時,例如可W是判斷移動終端的當(dāng)前狀態(tài)是否連網(wǎng)、是否會產(chǎn)生流量等;當(dāng)測試指令 僅包含操作對象時,針對該操作對象只能執(zhí)行預(yù)定的一種類型的操作,例如,當(dāng)某些按鈕只 執(zhí)行單擊操作,不支持雙擊等操作時,可W在測試指令中省略操作類型標(biāo)識。
[0043] 步驟S240:移動終端接收到上述測試指令后,根據(jù)測試安裝包中與操作類型標(biāo)識 和/或操作對象標(biāo)識對應(yīng)的操作邏輯進(jìn)行測試。
[0044] 具體地,為了使移動終端能夠自動捕獲到來自PC端的測試指令并自動處理,可W 在上文提到的測試安裝包中設(shè)置用于捕獲來自PC端的測試指令的捕獲模塊,W及對捕獲到 的測試指令進(jìn)行處理的處理模塊,各模塊可通過預(yù)設(shè)的函數(shù)實(shí)現(xiàn),也可W采用其他各種軟/ 硬件方式實(shí)現(xiàn)。
[0045] 在本實(shí)施例中,上述捕獲模塊可W通過下述函數(shù)代碼段實(shí)現(xiàn):
[0046]
[0047]
[004引該函數(shù)相當(dāng)于一個能夠接收、過濾消息的廣播接收器,通過該函數(shù)能夠?qū)崿F(xiàn)自動 捕獲PC端的測試指令的目的。
[0049] 另外,上述處理模塊可W通過下述函數(shù)代碼段實(shí)現(xiàn):
[0050] public void oper(String oper,Intentintent){
[0051] IOperationoper;
[0052] if(oper. equalS("click")){
[0053] oper = new Clicker(intent);
[0054] }else if (oper. equals(''drag'')) {
[0化5] ……
[0056] 通過上述函數(shù)能夠自動判斷捕獲到的測試指令中包含的操作類型等信息并執(zhí)行 相應(yīng)的處理。例如,當(dāng)測試指令中包含值為"click"的參數(shù)時,表明其操作類型為點(diǎn)擊;當(dāng)測 試指令中包含值為"drag"的參數(shù)時,表明其操作類型為拖拽。
[0057] 具體地,在上例中,針對用于實(shí)現(xiàn)點(diǎn)擊"設(shè)置"按鈕的第一條測試指令,首先,需要 從測試安裝包中根據(jù)單擊類型操作的操作類型標(biāo)識查找并獲取單擊類型的操作所對應(yīng)的 操作邏輯,該操作邏輯可W通過預(yù)定的函數(shù)實(shí)現(xiàn),該函數(shù)能夠自動執(zhí)行單擊類型的操作。然 后,需要從測試安裝包中根據(jù)"設(shè)置"按鈕的按鈕標(biāo)識查找并獲取定位該按鈕的操作邏輯, 該操作邏輯也可W通過預(yù)定的函數(shù)實(shí)現(xiàn),該函數(shù)能夠自動使光標(biāo)定位到對應(yīng)的按鈕處。具 體地,在本實(shí)施例中,可W根據(jù)按鈕在屏幕上的坐標(biāo)對按鈕進(jìn)行定位,該方式實(shí)現(xiàn)簡單便 捷;另外,還可W根據(jù)按鈕的屬性或特征對按鈕進(jìn)行識別并定位,該方式不受屏幕分辨率改 變的影響,適用場景更加靈活。下面分別介紹一下上述的兩種定位方式:
[005引在第一種實(shí)現(xiàn)方式中,通過預(yù)存的操作對象在用戶界面上的坐標(biāo)比例進(jìn)行定位。 例如,假設(shè)W用戶界面的左下角為坐標(biāo)原點(diǎn)建立坐標(biāo)系,并設(shè)定完整的用戶界面的右上角 的坐標(biāo)為(1,1),相應(yīng)地,用戶界面上的各個位置都可W通過對應(yīng)的坐標(biāo)比例進(jìn)行表示,例 如,坐標(biāo)點(diǎn)為(1/3,2/3)的位置處于整個用戶界面的左側(cè)偏上位置處。通過該種方式可W利 用操作對象在整個用戶界面中所處的坐標(biāo)比例來確定操作對象的位置,與傳統(tǒng)的單純通過 具體坐標(biāo)值來確定位置的方式相比準(zhǔn)確性更高,不受屏幕分辨率變化的影響,且定位速度 快。例如,即使終端設(shè)備的屏幕分辨率尺寸發(fā)生了變化,導(dǎo)致用戶界面的大小有所改變,但 是,某一操作對象與整個用戶界面之間的相對關(guān)系是固定的,因此,依然能夠準(zhǔn)確地定位到 該操作對象。
[0059] 在第二種實(shí)現(xiàn)方式中,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行定位。其中,預(yù)存 的操作對象的特征數(shù)據(jù)用于唯一地標(biāo)識相應(yīng)的操作對象,具體包括:操作對象的外部輪廓 數(shù)據(jù)和/或顏色數(shù)據(jù)等。例如,W "設(shè)置"按鈕為例來說,相應(yīng)的特征數(shù)據(jù)包括該按鈕的形狀、 大小、顏色、文本及字體等??傊ㄟ^預(yù)存的操作對象的特征數(shù)據(jù)能夠在用戶界面上唯一 地識別并定位操作對象。具體實(shí)現(xiàn)時,可W結(jié)合圖像識別等相關(guān)算法實(shí)現(xiàn)。通過該種方式可 W根據(jù)操作對象的外形特征來查找并確定操作對象的位置,與傳統(tǒng)的單純通過具體坐標(biāo)值 來確定位置的方式相比同樣具備不受屏幕分辨率變化影響的優(yōu)勢。而且,當(dāng)用戶界面的布 局變化時(如產(chǎn)品更新后),即使操作對象的位置發(fā)生了改變,通過該方式依然能夠準(zhǔn)確定 位操作對象。
[0060] 其中,上述的步驟S230和步驟S240可W執(zhí)行多次,具體執(zhí)行次數(shù)取決于接收到的 測試指令的條數(shù)。例如,當(dāng)一個測試過程需要=條依序執(zhí)行的測試指令才能實(shí)現(xiàn)時,上述的 步驟S230和步驟S240將執(zhí)行=次,各次分別用于處理對應(yīng)的一條測試指令。
[0061] 由于測試過程可能出現(xiàn)錯誤,當(dāng)出現(xiàn)錯誤時需要進(jìn)行調(diào)試,因此,該方法還可W進(jìn) 一步包括下述的步驟S250。其中,步驟S250是一個可選的步驟。
[0062] 步驟S250:當(dāng)測試指令對應(yīng)的測試結(jié)果為錯誤時,進(jìn)一步通過ADB命令入口接收修 改后的測試指令,并根據(jù)修改后的測試指令重新進(jìn)行測試。
[0063] 測試結(jié)果為錯誤的具體情況包括多種,例如,可能是測試指令中的參數(shù)錯誤、測試 環(huán)境錯誤或移動終端上的硬件不支持等各種原因。無論是因?yàn)楹畏N原因出現(xiàn)錯誤,都需要 在PC端進(jìn)行調(diào)試,W便對測試指令進(jìn)行修正,并將修正后的測試指令重新發(fā)送給移動終端, W便移動終端重新執(zhí)行相應(yīng)的測試過程。
[0064] 具體地,當(dāng)上述的步驟S230和步驟S240執(zhí)行多次時,本步驟也可能會執(zhí)行多次,每 當(dāng)在步驟S240中有一條測試指令出錯時,都會觸發(fā)步驟S250。通過步驟S240可W實(shí)現(xiàn)單步 出錯、單步調(diào)試的目的。例如,當(dāng)整個測試過程包含10條測試指令時,如果第9條測試指令的 對應(yīng)結(jié)果為錯誤,則只需重新接收修改后的第9條測試指令并執(zhí)行即可,之前已測試成功的 前8條測試指令不必重新測試,由此能夠大幅降低調(diào)試環(huán)節(jié)的工作量,提高測試效率。另外, 在本實(shí)施例中,由于測試安裝包中只包含相互分離的操作邏輯,具體操作步驟由后續(xù)的測 試指令表示,因此,測試安裝包只需傳輸并安裝一次,即使后續(xù)出現(xiàn)了錯誤,也不必重新生 成并安裝測試安裝包,由此進(jìn)一步簡化了操作過程。
[0065] 另外,由于測試過程可能需要多次執(zhí)行,例如,當(dāng)本次測試過程成功執(zhí)行完畢后, 可能后期由于移動終端升級等原因?qū)е滦枰俅螠y試。因此,為了方便后期重復(fù)執(zhí)行已完 成的測試過程,該方法還可W進(jìn)一步包括下述的步驟S260。其中,步驟S260也是一個可選的 步驟。
[0066] 步驟S260:當(dāng)測試指令對應(yīng)的測試結(jié)果為正確時,將測試指令對應(yīng)的指令內(nèi)容保 存到預(yù)設(shè)的測試文件中。
[0067] 具體實(shí)現(xiàn)時,本步驟可W通過下述兩種方式實(shí)現(xiàn)。在第一種方式中,每當(dāng)通過步驟 S240成功執(zhí)行了一條測試指令時,就觸發(fā)步驟S260, W便將該條測試指令對應(yīng)的指令內(nèi)容 保存到測試文件中。在第二種方式中,當(dāng)通過步驟S240將所有的測試指令成功執(zhí)行完畢后, 才觸發(fā)步驟S260, W便將所有測試指令對應(yīng)的指令內(nèi)容保存到測試文件中。
[0068] 其中,上述測試文件用于按照接收順序保存各條測試指令對應(yīng)的指令內(nèi)容W便再 次執(zhí)行。例如,當(dāng)測試指令為ADB命令時,對應(yīng)的指令內(nèi)容為該條命令中包含的操作類型和 操作對象,指令內(nèi)容的具體形式取決于具體的測試環(huán)境,只要是能夠自動觸發(fā)測試的形式 均可。由此可見,通過步驟S260可W對已測試成功的指令進(jìn)行保存,W便后期重復(fù)執(zhí)行,因 此,對于需要反復(fù)多次測試的應(yīng)用場景而言,通過本實(shí)施例中的方式能夠大幅簡化后期測 試時的工作量,提高測試效率。
[0069] 圖3示出了本發(fā)明另一個實(shí)施例提供的對移動終端進(jìn)行測試的裝置的結(jié)構(gòu)圖。如 圖3所示,該裝置包括:安裝模塊31、接收模塊32和測試模塊33。
[0070] 安裝模塊31適于接收并安裝測試安裝包。其中,所述測試安裝包中包括:多個操作 類型標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象 的操作邏輯。
[0071] 接收模塊32適于通過ADB命令入口接收測試指令。其中,所述測試指令中包含操作 類型標(biāo)識和/或操作對象標(biāo)識。
[0072] 測試模塊33適于根據(jù)所述測試安裝包中與所述操作類型標(biāo)識和/或操作對象標(biāo)識 對應(yīng)的操作邏輯進(jìn)行測試。
[0073] 其中,當(dāng)測試指令的數(shù)量為多條時,多條測試指令按照接收順序依次執(zhí)行??蛇x 地,該裝置進(jìn)一步包括:重測試模塊34,適于在測試指令對應(yīng)的測試結(jié)果為錯誤時,通過ADB 命令入口接收修改后的測試指令,并根據(jù)所述修改后的測試指令重新進(jìn)行測試。
[0074] 可選地,該裝置進(jìn)一步包括:存儲模塊35,適于在測試指令對應(yīng)的測試結(jié)果為正確 時,將所述測試指令對應(yīng)的指令內(nèi)容保存到預(yù)設(shè)的測試文件中,其中,所述測試文件用于按 照接收順序保存各條測試指令對應(yīng)的指令內(nèi)容W便再次執(zhí)行。
[0075] 其中,上述操作類型包括:雙擊類型、單擊類型、滑動類型、長按類型W及用于模擬 硬件按鈕的操作類型,其中,所述硬件按鈕包括W下中的一個或多個:返回鍵、菜單鍵、音量 鍵和電源鍵;并且,所述操作對象標(biāo)識為操作對象在屏幕上的坐標(biāo)范圍,和/或所述操作對 象標(biāo)識為操作對象的ID值。
[0076] 并且,所述定位各個操作對象的操作邏輯包括:通過預(yù)存的所述操作對象在用戶 界面上的坐標(biāo)比例進(jìn)行定位的操作邏輯;和/或,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行 定位的操作邏輯。
[0077] 上述各個模塊的具體結(jié)構(gòu)和工作原理可參照方法實(shí)施例中相應(yīng)步驟的描述,此處 不再寶述。
[0078] 綜上所述,在本發(fā)明提供的對移動終端進(jìn)行測試的方法及裝置中,將傳統(tǒng)的APK文 件替換為本發(fā)明中的測試安裝包,并且,測試安裝包中并未直接定義一系列連貫執(zhí)行且不 可拆分的測試流程,而是定義了執(zhí)行測試過程所需的各種單獨(dú)的操作邏輯,例如,定義了多 個操作類型標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操 作對象的操作邏輯。在此基礎(chǔ)上,根據(jù)接收到的ADB測試指令完成各個操作邏輯,W實(shí)現(xiàn)完 成的測試過程。由此可見,在本發(fā)明中,將操作邏輯和具體的操作步驟分離,因此,當(dāng)某一步 出現(xiàn)錯誤時,無需修改測試安裝包,只需重新接收并執(zhí)行該步驟對應(yīng)的ADB測試指令即可, 可做到單步出錯單步調(diào)試的效果,因而大大簡化了調(diào)試過程。
[0079] 在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可W與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造運(yùn)類系統(tǒng)所要求 的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可W利用各種 編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā) 明的最佳實(shí)施方式。
[0080] 在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施 例可W在沒有運(yùn)些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu) 和技術(shù),W便不模糊對本說明書的理解。
[0081] 類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在 上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實(shí)施 例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保 護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面 的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實(shí)施例的所有特征。因此, 遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個權(quán)利要求本身 都作為本發(fā)明的單獨(dú)實(shí)施例。
[0082] 本領(lǐng)域那些技術(shù)人員可W理解,可W對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地 改變并且把它們設(shè)置在與該實(shí)施例不同的一個或多個設(shè)備中??蒞把實(shí)施例中的模塊或單 元或組件組合成一個模塊或單元或組件,W及此外可W把它們分成多個子模塊或子單元或 子組件。除了運(yùn)樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可W采用任何 組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征W及如此公開的任 何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán) 利要求、摘要和附圖)中公開的每個特征可W由提供相同、等同或相似目的的替代特征來代 替。
[0083] 此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實(shí)施例包括其它實(shí)施例中所 包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍 之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之 一都可WW任意的組合方式來使用。
[0084] 本發(fā)明的各個部件實(shí)施例可W W硬件實(shí)現(xiàn),或者W在一個或者多個處理器上運(yùn)行 的軟件模塊實(shí)現(xiàn),或者W它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可W在實(shí)踐中使用 微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的裝置中的一些或者全部部 件的一些或者全部功能。本發(fā)明還可W實(shí)現(xiàn)為用于執(zhí)行運(yùn)里所描述的方法的一部分或者全 部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。運(yùn)樣的實(shí)現(xiàn)本發(fā)明的程序 可W存儲在計算機(jī)可讀介質(zhì)上,或者可W具有一個或者多個信號的形式。運(yùn)樣的信號可W 從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者W任何其他形式提供。
[0085]應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng) 域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞"包含"不排除存在未 列在權(quán)利要求中的元件或步驟。位于元件之前的單詞"一"或"一個"不排除存在多個運(yùn)樣的 元件。本發(fā)明可W借助于包括有若干不同元件的硬件W及借助于適當(dāng)編程的計算機(jī)來實(shí) 現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,運(yùn)些裝置中的若干個可W是通過同一個硬件項 來具體體現(xiàn)。單詞第一、第二、W及第=等的使用不表示任何順序??蓪⑦\(yùn)些單詞解釋為名 稱。
【主權(quán)項】
1. 一種對移動終端進(jìn)行測試的方法,包括: 接收并安裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型標(biāo)識和執(zhí)行各種 類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操作邏輯; 通過ADB命令入口接收測試指令;其中,所述測試指令中包含操作類型標(biāo)識和/或操作 對象標(biāo)識; 根據(jù)所述測試安裝包中與所述操作類型標(biāo)識和/或操作對象標(biāo)識對應(yīng)的操作邏輯進(jìn)行 測試。2. 根據(jù)權(quán)利要求1所述的方法,其中,所述測試指令的數(shù)量為多條,且多條測試指令按 照接收順序依次執(zhí)行。3. 根據(jù)權(quán)利要求1或2所述的方法,其中,當(dāng)測試指令對應(yīng)的測試結(jié)果為錯誤時,該方法 進(jìn)一步包括: 通過ADB命令入口接收修改后的測試指令,并根據(jù)所述修改后的測試指令重新進(jìn)行測 試。4. 根據(jù)權(quán)利要求1-3任一所述的方法,其中,當(dāng)測試指令對應(yīng)的測試結(jié)果為正確時,該 方法進(jìn)一步包括: 將所述測試指令對應(yīng)的指令內(nèi)容保存到預(yù)設(shè)的測試文件中,其中,所述測試文件用于 按照接收順序保存各條測試指令對應(yīng)的指令內(nèi)容以便再次執(zhí)行。5. 根據(jù)權(quán)利要求1-4任一所述的方法,其中,所述操作類型包括:雙擊類型、單擊類型、 滑動類型、長按類型以及用于模擬硬件按鈕的操作類型,其中,所述硬件按鈕包括以下中的 一個或多個:返回鍵、菜單鍵、音量鍵和電源鍵,且所述操作對象標(biāo)識為操作對象在屏幕上 的坐標(biāo)范圍,和/或所述操作對象標(biāo)識為操作對象的ID值; 并且,所述定位各個操作對象的操作邏輯包括:通過預(yù)存的所述操作對象在用戶界面 上的坐標(biāo)比例進(jìn)行定位的操作邏輯;和/或,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行定位 的操作邏輯。6. -種對移動終端進(jìn)行測試的裝置,包括: 安裝模塊,適于接收并安裝測試安裝包;其中,所述測試安裝包中包括:多個操作類型 標(biāo)識和執(zhí)行各種類型操作的操作邏輯,和/或,多個操作對象標(biāo)識和定位各個操作對象的操 作邏輯; 接收模塊,適于通過ADB命令入口接收測試指令;其中,所述測試指令中包含操作類型 標(biāo)識和/或操作對象標(biāo)識; 測試模塊,適于根據(jù)所述測試安裝包中與所述操作類型標(biāo)識和/或操作對象標(biāo)識對應(yīng) 的操作邏輯進(jìn)行測試。7. 根據(jù)權(quán)利要求6所述的裝置,其中,所述測試指令的數(shù)量為多條,且多條測試指令按 照接收順序依次執(zhí)行。8. 根據(jù)權(quán)利要求6或7所述的裝置,其中,該裝置進(jìn)一步包括:重測試模塊,適于在測試 指令對應(yīng)的測試結(jié)果為錯誤時,通過ADB命令入口接收修改后的測試指令,并根據(jù)所述修改 后的測試指令重新進(jìn)行測試。9. 根據(jù)權(quán)利要求6-8任一所述的裝置,其中,該裝置進(jìn)一步包括:存儲模塊,適于在測試 指令對應(yīng)的測試結(jié)果為正確時,將所述測試指令對應(yīng)的指令內(nèi)容保存到預(yù)設(shè)的測試文件 中,其中,所述測試文件用于按照接收順序保存各條測試指令對應(yīng)的指令內(nèi)容以便再次執(zhí) 行。10.根據(jù)權(quán)利要求6-9任一所述的裝置,其中,所述操作類型包括:雙擊類型、單擊類型、 滑動類型、長按類型以及用于模擬硬件按鈕的操作類型,其中,所述硬件按鈕包括以下中的 一個或多個:返回鍵、菜單鍵、音量鍵和電源鍵,且所述操作對象標(biāo)識為操作對象在屏幕上 的坐標(biāo)范圍,和/或所述操作對象標(biāo)識為操作對象的ID值; 并且,所述定位各個操作對象的操作邏輯包括:通過預(yù)存的所述操作對象在用戶界面 上的坐標(biāo)比例進(jìn)行定位的操作邏輯;和/或,通過識別預(yù)存的操作對象的特征數(shù)據(jù)進(jìn)行定位 的操作邏輯。
【文檔編號】G06F11/36GK106021101SQ201610322264
【公開日】2016年10月12日
【申請日】2016年5月16日
【發(fā)明人】孫健, 黃威
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司