国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種自動匹配版本的應(yīng)用程序測試方法及系統(tǒng)及移動終端與流程

      文檔序號:11829408閱讀:236來源:國知局
      一種自動匹配版本的應(yīng)用程序測試方法及系統(tǒng)及移動終端與流程

      本發(fā)明涉及移動終端技術(shù)領(lǐng)域,尤其涉及一種自動匹配版本的應(yīng)用程序測試方法及系統(tǒng)及移動終端。



      背景技術(shù):

      隨著智能移動終端業(yè)務(wù)領(lǐng)域的不斷擴(kuò)展,開始出現(xiàn)越來越多的適用于不同移動終端類型的應(yīng)用程序。每個(gè)移動終端的開發(fā)商都想要通過提升產(chǎn)品的易用程度,從而提升自身占有的市場份額,因此就必須要考慮各種各樣的應(yīng)用程序在不同類型的移動終端中的表現(xiàn),以期獲得更好的用戶體驗(yàn)。

      現(xiàn)有技術(shù)中,對于應(yīng)用程序的測試通常由人工完成,即采用手動測試的方式完成。手動測試的測試過程比較繁瑣,難以搞笑完成大量應(yīng)用程序的重復(fù)性測試,因此極度浪費(fèi)人力資源,測試效率較低。



      技術(shù)實(shí)現(xiàn)要素:

      根據(jù)現(xiàn)有技術(shù)中存在的問題,現(xiàn)提供一種自動匹配版本的應(yīng)用程序測試方法及系統(tǒng)及移動終端的技術(shù)方案,旨在實(shí)現(xiàn)從匹配應(yīng)用程序版本至安裝應(yīng)用程序并進(jìn)行遍歷測試的整個(gè)過程的全自動化操作。

      上述技術(shù)方案具體包括:

      一種自動匹配版本的應(yīng)用程序測試方法,適用于移動終端;其中,所述移動終端與一應(yīng)用服務(wù)端遠(yuǎn)程連接,并從所述應(yīng)用服務(wù)端下載至少一個(gè)預(yù)設(shè)的應(yīng)用程序的最新版本的安裝包以準(zhǔn)備測試;

      所述應(yīng)用程序測試方法具體包括:

      步驟S1,根據(jù)從所述應(yīng)用服務(wù)端下載的所述安裝包,在所述移動終端中安裝最新版本的所述應(yīng)用程序,并將安裝完成的所述應(yīng)用程序作為本次測試的測試對象;

      步驟S2,根據(jù)相應(yīng)的所述安裝包中解析得到相應(yīng)的入口地址,并根據(jù)所 述入口地址啟動所述應(yīng)用程序;

      步驟S3,依照預(yù)設(shè)的遍歷方式對被啟動的所述應(yīng)用程序進(jìn)行遍歷測試,以獲得相應(yīng)的測試結(jié)果并輸出;

      步驟S4,在所述遍歷測試結(jié)束后卸載作為所述測試對象的所述應(yīng)用程序。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,步驟S1具體包括:

      步驟S11,解析從所述應(yīng)用服務(wù)端中下載的所述安裝包并獲取相關(guān)安裝信息;

      步驟S12,根據(jù)所述相關(guān)安裝信息,判斷所述移動終端中是否安裝有對應(yīng)于被下載的所述安裝包的所述應(yīng)用程序,并在對應(yīng)于所述安裝包的所述應(yīng)用程序存在于所述移動終端中時(shí)轉(zhuǎn)向步驟S13;

      步驟S13,根據(jù)所述相關(guān)安裝信息判斷所述移動終端中安裝的所述安裝包是否為最新版本,并在所述移動終端中已安裝的所述應(yīng)用程序不為最新版本時(shí)轉(zhuǎn)向步驟S14;

      步驟S14,根據(jù)所述安裝包中的所述相關(guān)安裝信息將相應(yīng)的所述應(yīng)用程序替換成最新版本。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述步驟S12中,若所述移動終端中未安裝對應(yīng)所述安裝包的所述應(yīng)用程序,則直接轉(zhuǎn)向下述步驟:

      步驟S15,根據(jù)所述安裝包中的所述相關(guān)安裝信息安裝相應(yīng)的所述應(yīng)用程序。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述步驟S13中,若所述移動終端中已安裝的所述應(yīng)用程序已經(jīng)為最新版本,則直接轉(zhuǎn)至所述步驟S2。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述相關(guān)安裝信息包括:

      所述應(yīng)用程序的版本號,和/或所述應(yīng)用程序的名稱,和/或所述應(yīng)用程序的所述入口地址,和/或所述應(yīng)用程序安裝需要的最低系統(tǒng)配置;

      所述步驟S2中,根據(jù)從所述安裝包中解析得到的相關(guān)安裝信息中包括的所述入口地址,啟動相應(yīng)的所述應(yīng)用程序。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,預(yù)設(shè)的所述遍歷方式包括順序遍歷;

      所述順序遍歷表示以從上到下、從左至右的順序遍歷操作所述應(yīng)用程序 的操作界面中包括的所有控件。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,預(yù)設(shè)的所述遍歷方式包括隨機(jī)遍歷;

      所述隨機(jī)遍歷表示按照隨機(jī)順序遍歷操作所述應(yīng)用程序的操作界面中包括的所有控件。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,預(yù)設(shè)有多個(gè)關(guān)鍵字信息;

      所述步驟S3具體包括:

      步驟S31,獲取作為測試對象的所述應(yīng)用程序的當(dāng)前操作界面中包括的所有控件的相關(guān)屬性并保存;

      步驟S32,將所述當(dāng)前操作界面中包括的所有所述控件的所述相關(guān)屬性與預(yù)設(shè)的所述關(guān)鍵字信息進(jìn)行匹配,以判斷所述當(dāng)前操作界面的界面類型,并輸出相應(yīng)的判斷結(jié)果;

      步驟S33,根據(jù)所述判斷結(jié)果,選擇于所述當(dāng)前操作界面中對所有所述控件的操作方式,并以預(yù)設(shè)的所述遍歷方式遍歷操作所述當(dāng)前操作界面中包括的所有所述控件;

      步驟S34,分別將對每個(gè)所述控件進(jìn)行操作后形成的界面保存為對應(yīng)的結(jié)果界面,保存對應(yīng)所述應(yīng)用程序的所有操作界面中包括的所有所述控件的所述結(jié)果界面,并將所有所述結(jié)果界面作為所述測試結(jié)果輸出。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述步驟S3中,監(jiān)控并獲取所述移動終端于測試所述應(yīng)用程序的過程中產(chǎn)生的實(shí)時(shí)測試信息,并根據(jù)所述實(shí)時(shí)測試信息處理形成相應(yīng)的結(jié)果視圖以向使用者顯示。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述實(shí)時(shí)測試信息包括:

      所述移動終端于測試所述應(yīng)用程序的過程中產(chǎn)生的處理器相關(guān)信息,和/或內(nèi)存相關(guān)信息,和/或運(yùn)行狀態(tài)相關(guān)信息。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,所述結(jié)果視圖為反映所述移動終端進(jìn)行測試過程中于每個(gè)時(shí)間點(diǎn)上產(chǎn)生的所述實(shí)時(shí)測試信息的折線圖。

      優(yōu)選的,該應(yīng)用程序測試方法,其中,于所述應(yīng)用服務(wù)端按照下載量從大到小對相應(yīng)的所述應(yīng)用程序的所述安裝包進(jìn)行排名;

      所述步驟S1中,所述移動終端從所述應(yīng)用服務(wù)端下載排名為前N名的所述應(yīng)用程序的所述安裝包;

      N表示本次需要測試的所述應(yīng)用程序的數(shù)量。

      一種自動匹配版本的應(yīng)用程序測試系統(tǒng),適用于移動終端;其中,所述移動終端與一應(yīng)用服務(wù)端遠(yuǎn)程連接,并從所述應(yīng)用服務(wù)端下載至少一個(gè)預(yù)設(shè)的應(yīng)用程序的最新版本的安裝包以準(zhǔn)備測試;

      所述應(yīng)用程序測試系統(tǒng)包括:

      安裝單元,用于根據(jù)從所述應(yīng)用服務(wù)端下載的所述安裝包,在所述移動終端中安裝最新版本的所述應(yīng)用程序,并將安裝完成的所述應(yīng)用程序作為本次測試的測試對象;

      啟動單元,連接所述安裝單元,用于根據(jù)相應(yīng)的所述安裝包中解析得到相應(yīng)的入口地址,并根據(jù)所述入口地址啟動所述應(yīng)用程序;

      測試單元,連接所述啟動單元,用于依照預(yù)設(shè)的遍歷方式對被啟動的所述應(yīng)用程序進(jìn)行遍歷測試,以獲得相應(yīng)的測試結(jié)果并輸出;

      卸載單元,連接所述測試單元,用于在所述遍歷測試結(jié)束后卸載作為所述測試對象的所述應(yīng)用程序。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,所述安裝單元中包括:

      解析模塊,用于解析從所述應(yīng)用服務(wù)端中下載的所述安裝包并獲取相關(guān)安裝信息;

      第一判斷模塊,連接所述解析模塊,用于根據(jù)所述相關(guān)安裝信息,判斷所述移動終端中是否安裝有對應(yīng)于被下載的所述安裝包的所述應(yīng)用程序,并輸出相應(yīng)的第一判斷結(jié)果;

      第二判斷模塊,分別連接所述解析模塊和所述第一判斷模塊,用于根據(jù)所述相關(guān)安裝信息和所述第一判斷結(jié)果,在對應(yīng)于所述安裝包的所述應(yīng)用程序存在于所述移動終端中時(shí)判斷所述移動終端中安裝的所述安裝包是否為最新版本,并輸出相應(yīng)的第二判斷結(jié)果;

      安裝模塊,分別連接所述解析模塊、所述第一判斷模塊和所述第二判斷模塊,用于根據(jù)所述第一判斷結(jié)果或者所述第二判斷結(jié)果:

      于所述移動終端中未安裝對應(yīng)所述安裝包的所述應(yīng)用程序時(shí),根據(jù)所述安裝包中的所述相關(guān)安裝信息安裝相應(yīng)的所述應(yīng)用程序;或者

      于所述移動終端中安裝的所述應(yīng)用程序不是最新版本時(shí),根據(jù)所述安裝包中的所述相關(guān)安裝信息將相應(yīng)的所述應(yīng)用程序替換成最新版本。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,所述相關(guān)安裝信息包括:

      所述應(yīng)用程序的版本號,和/或所述應(yīng)用程序的名稱,和/或所述應(yīng)用程序的所述入口地址,和/或所述應(yīng)用程序安裝需要的最低系統(tǒng)配置。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,預(yù)設(shè)的所述遍歷方式包括順序遍歷;

      所述順序遍歷表示以從上到下、從左至右的順序遍歷操作所述應(yīng)用程序的操作界面中包括的所有控件。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,預(yù)設(shè)的所述遍歷方式包括隨機(jī)遍歷;

      所述隨機(jī)遍歷表示按照隨機(jī)順序遍歷操作所述應(yīng)用程序的操作界面中包括的所有控件。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,所述測試單元中包括:

      屬性獲取模塊,用于獲取作為測試對象的所述應(yīng)用程序的當(dāng)前操作界面中包括的所有控件的相關(guān)屬性并保存;

      類型判斷模塊,其中預(yù)設(shè)有多個(gè)關(guān)鍵字信息,所述類型判斷模塊連接所述屬性獲取模塊,用于將所述當(dāng)前操作界面中包括的所有所述控件的所述相關(guān)屬性與預(yù)設(shè)的所述關(guān)鍵字信息進(jìn)行匹配,以判斷所述當(dāng)前操作界面的界面類型,并輸出相應(yīng)的判斷結(jié)果;

      測試模塊,連接所述類型判斷模塊,用于根據(jù)所述判斷結(jié)果,選擇于所述當(dāng)前操作界面中對所有所述控件的操作方式,并以預(yù)設(shè)的所述遍歷方式遍歷操作所述當(dāng)前操作界面中包括的所有所述控件;

      結(jié)果輸出模塊,連接所述測試模塊,用于分別將對每個(gè)所述控件進(jìn)行操作后形成的界面保存為對應(yīng)的結(jié)果界面,保存對應(yīng)所述應(yīng)用程序的所有操作界面中包括的所有所述控件的所述結(jié)果界面,并將所有所述結(jié)果界面作為所述測試結(jié)果輸出。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,還包括:

      監(jiān)控單元,連接所述測試單元,用于監(jiān)控對所述應(yīng)用程序進(jìn)行測試的過程中產(chǎn)生的相應(yīng)的實(shí)時(shí)測試信息,將所述實(shí)時(shí)測試信息處理形成相應(yīng)的結(jié)果視圖并向使用者顯示。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,所述實(shí)時(shí)測試信息包括:

      所述移動終端于測試所述應(yīng)用程序的過程中產(chǎn)生的處理器相關(guān)信息,和/或內(nèi)存相關(guān)信息,和/或運(yùn)行狀態(tài)相關(guān)信息。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,所述結(jié)果視圖為反映所述移動終端進(jìn)行測試過程中于每個(gè)時(shí)間點(diǎn)上產(chǎn)生的所述實(shí)時(shí)測試信息的折線圖。

      優(yōu)選的,該應(yīng)用程序測試系統(tǒng),其中,于所述應(yīng)用服務(wù)端按照下載量從大到小對相應(yīng)的所述應(yīng)用程序的所述安裝包進(jìn)行排名;

      所述移動終端從所述應(yīng)用服務(wù)端下載排名為前N名的所述應(yīng)用程序的所述安裝包;

      N表示本次需要測試的所述應(yīng)用程序的數(shù)量。

      一種移動終端,其中,包括上述的應(yīng)用程序測試系統(tǒng)。

      一種移動終端,其中,采用上述的應(yīng)用程序測試方法。

      上述技術(shù)方案的有益效果是:

      1)提供一種測試方法,以實(shí)現(xiàn)全自動進(jìn)行包括版本匹配、安裝、測試以及卸載等操作的目的,節(jié)省人工測試的成本,簡化測試過程,縮短測試時(shí)間;

      2)提供一種應(yīng)用程序測試系統(tǒng),以支持實(shí)現(xiàn)應(yīng)用程序測試方法,實(shí)現(xiàn)節(jié)省人工成本、簡化廁所過程、縮短測試時(shí)間的發(fā)明目的。

      附圖說明

      圖1是本發(fā)明的較佳的實(shí)施例中,一種應(yīng)用程序測試方法的流程示意圖;

      圖2-4是本發(fā)明的較佳的實(shí)施例中,于圖1的基礎(chǔ)上,應(yīng)用程序測試方法中相應(yīng)步驟的具體流程示意圖。

      圖5是本發(fā)明的較佳的實(shí)施例中,一種應(yīng)用程序測試系統(tǒng)的總體結(jié)構(gòu)示意圖;

      圖6-7是本發(fā)明的較佳的實(shí)施例中,于圖1的基礎(chǔ)上,應(yīng)用程序測試系統(tǒng)中相應(yīng)部分的具體結(jié)構(gòu)示意圖;

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作 出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。

      下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明,但不作為本發(fā)明的限定。

      現(xiàn)有技術(shù)中,對于移動終端中的應(yīng)用程序進(jìn)行測試的方式主要分為手工測試和自動化測試:

      1)手工測試,即人工對應(yīng)用程序的操作界面中的各個(gè)控件進(jìn)行點(diǎn)擊測試。這類測試方式的缺點(diǎn)在于人力成本非常高,測試的持續(xù)時(shí)間較長,測試步驟繁瑣,測試結(jié)果不夠客觀,無法應(yīng)對大量應(yīng)用程序的重復(fù)性測試;

      2)自動化測試?,F(xiàn)有技術(shù)中的自動化測試,通常只是在本地對某些單一的應(yīng)用進(jìn)行測試,其應(yīng)用程序庫和相應(yīng)的應(yīng)用信息需要人工更新,并且可測試的數(shù)量和種類也比較有限。

      本發(fā)明的較佳的實(shí)施例中,基于上文中所述的應(yīng)用程序測試系統(tǒng),現(xiàn)提供一種自動匹配版本的應(yīng)用程序測試方法。本發(fā)明的較佳的實(shí)施例中,上述應(yīng)用程序測試方法中,提供一移動終端,該移動終端與一應(yīng)用服務(wù)端遠(yuǎn)程連接,并從應(yīng)用服務(wù)端下載至少一個(gè)預(yù)設(shè)的應(yīng)用程序的最新版本的安裝包以準(zhǔn)備測試。

      本發(fā)明的較佳的實(shí)施例中,上述應(yīng)用程序測試方法的步驟具體如圖1所示,包括:

      步驟S1,根據(jù)從應(yīng)用服務(wù)端下載的安裝包,在移動終端中安裝最新版本的應(yīng)用程序,并將安裝完成的應(yīng)用程序作為本次測試的測試對象;

      本發(fā)明的較佳的實(shí)施例中,如圖2所示,上述步驟S1具體包括:

      步驟S11,解析從應(yīng)用服務(wù)端中下載的安裝包并獲取相關(guān)安裝信息;

      本發(fā)明的較佳的實(shí)施例中,所謂相關(guān)安裝信息,包括應(yīng)用程序的版本號,和/或應(yīng)用程序的名稱,和/或應(yīng)用程序的入口地址,和/或應(yīng)用程序安裝需要的最低系統(tǒng)配置。

      本發(fā)明的其他實(shí)施例中,上述相關(guān)安裝信息,還可以包括其他與安裝應(yīng)用程序相關(guān)的信息。

      步驟S12,根據(jù)相關(guān)安裝信息,判斷移動終端中是否安裝有對應(yīng)于 被下載的安裝包的應(yīng)用程序,并在對應(yīng)于安裝包的應(yīng)用程序存在于移動終端中時(shí)轉(zhuǎn)向步驟S13;

      步驟S13,根據(jù)相關(guān)安裝信息判斷移動終端中安裝的安裝包是否為最新版本,并在移動終端中已安裝的應(yīng)用程序不為最新版本時(shí)轉(zhuǎn)向步驟S14;

      本發(fā)明的較佳的實(shí)施例中,若對應(yīng)于安裝包的應(yīng)用程序已經(jīng)為最新版本,則直接轉(zhuǎn)至步驟S2,開始對相應(yīng)的應(yīng)用程序進(jìn)行測試(在圖3中示出)。

      步驟S14,根據(jù)安裝包中的相關(guān)安裝信息將相應(yīng)的應(yīng)用程序替換成最新版本。

      本發(fā)明的較佳的實(shí)施例中,如圖3所示,若對應(yīng)于安裝包的應(yīng)用程序未存在于移動終端中時(shí),即該應(yīng)用程序事先并未安裝在移動終端中時(shí),直接跳轉(zhuǎn)至步驟S15。

      步驟S15,根據(jù)安裝包中的相關(guān)安裝信息安裝相應(yīng)的應(yīng)用程序。

      步驟S2,根據(jù)相應(yīng)的安裝包中解析得到相應(yīng)的入口地址,并根據(jù)入口地址啟動應(yīng)用程序;

      本發(fā)明的較佳的實(shí)施例中,上述步驟S2中,以安卓系統(tǒng)為例,可以通過解析安裝包獲得相應(yīng)的主activity,從而獲得上述入口地址。本發(fā)明的較佳的實(shí)施例中,通過上述入口地址,可以啟動相應(yīng)的應(yīng)用程序,以作為測試對象。

      步驟S3,依照預(yù)設(shè)的遍歷方式對被啟動的應(yīng)用程序進(jìn)行遍歷測試,以獲得相應(yīng)的測試結(jié)果并輸出;

      本發(fā)明的較佳的實(shí)施例中,如圖4所示,上述步驟S3進(jìn)一步包括:

      步驟S31,獲取作為測試對象的應(yīng)用程序的當(dāng)前操作界面中包括的所有控件的相關(guān)屬性并保存;

      本發(fā)明的較佳的實(shí)施例中,獲取的相關(guān)屬性以文本方式被記錄。具體地,本發(fā)明的較佳的實(shí)施例中,以文本中一行表示同一個(gè)控件的所有相關(guān)屬性,在同一行中以空格間隔不同的相關(guān)屬性。

      步驟S32,將當(dāng)前操作界面中包括的所有控件的相關(guān)屬性與預(yù)設(shè)的關(guān)鍵字信息進(jìn)行匹配,以判斷當(dāng)前操作界面的界面類型,并輸出相應(yīng)的判斷結(jié)果;

      步驟S33,根據(jù)判斷結(jié)果,選擇于當(dāng)前操作界面中對所有控件的操 作方式,并以預(yù)設(shè)的遍歷方式遍歷操作當(dāng)前操作界面中包括的所有控件;

      步驟S34,分別將對每個(gè)控件進(jìn)行操作后形成的界面保存為對應(yīng)的結(jié)果界面,保存對應(yīng)應(yīng)用程序的所有操作界面中包括的所有控件的結(jié)果界面,并將所有結(jié)果界面作為測試結(jié)果輸出。

      本發(fā)明的較佳的實(shí)施例中,在對當(dāng)前的應(yīng)用程序進(jìn)行測試的過程中,對測試過程進(jìn)行監(jiān)控。具體地,本發(fā)明的較佳的實(shí)施例中,監(jiān)控并獲取移動終端于測試應(yīng)用程序的過程中產(chǎn)生的實(shí)時(shí)測試信息,并根據(jù)實(shí)時(shí)測試信息處理形成相應(yīng)的結(jié)果視圖以向使用者顯示。

      本發(fā)明的較佳的實(shí)施例中,如上文中所述,所謂實(shí)時(shí)測試信息,包括移動終端于測試應(yīng)用程序的過程中產(chǎn)生的處理器相關(guān)信息,和/或內(nèi)存相關(guān)信息,和/或運(yùn)行狀態(tài)相關(guān)信息。

      本發(fā)明的較佳的實(shí)施例中,將結(jié)果視圖以折線圖的方式顯示,即反映移動終端進(jìn)行測試過程中于每個(gè)時(shí)間點(diǎn)上產(chǎn)生的實(shí)時(shí)測試信息的折線圖。

      步驟S4,在遍歷測試結(jié)束后卸載作為測試對象的應(yīng)用程序。

      本發(fā)明的較佳的實(shí)施例中,當(dāng)一個(gè)應(yīng)用程序被測試完畢,則該應(yīng)用程序被卸載,隨后轉(zhuǎn)至下一個(gè)安裝包,以重新開始安裝-測試-卸載的過程。

      本發(fā)明的較佳的實(shí)施例中,直到下載的所有應(yīng)用程序均被測試完畢后(即不存在尚未被安裝并測試的應(yīng)用程序的安裝包時(shí)),表示本次測試結(jié)果。本發(fā)明的較佳的實(shí)施例中,基于上文中所述的應(yīng)用程序測試方法,提供一種自動匹配版本的應(yīng)用程序測試系統(tǒng),其具體結(jié)構(gòu)如圖4所示。本發(fā)明的較佳的實(shí)施例中,移動終端A與一應(yīng)用服務(wù)端B遠(yuǎn)程連接,并從應(yīng)用服務(wù)端B下載至少一個(gè)預(yù)設(shè)的應(yīng)用程序的最新版本的安裝包以準(zhǔn)備測試。

      本發(fā)明的較佳的實(shí)施例中,上述應(yīng)用程序測試系統(tǒng)設(shè)置于上述移動終端A中,而上述應(yīng)用服務(wù)端可以為任意保存有應(yīng)用程序的安裝包及其相關(guān)安裝信息的服務(wù)端,例如應(yīng)用商城等。因此,下文中所述的應(yīng)用程序測試系統(tǒng)中包括的內(nèi)容均設(shè)置于移動終端A內(nèi),圖5中不另行標(biāo)注出“應(yīng)用程序測試系統(tǒng)”的字樣。

      本發(fā)明的較佳的實(shí)施例中,如圖5所示,上述應(yīng)用程序測試系統(tǒng)中包括:

      安裝單元1。本發(fā)明的較佳的實(shí)施例中,安裝單元1用于根據(jù)從應(yīng)用服務(wù)端下載的安裝包,在移動終端中安裝最新版本的應(yīng)用程序,并將安裝完成 的應(yīng)用程序作為本次測試的測試對象。

      本發(fā)明的較佳的實(shí)施例中,如圖6所示,上述安裝單元1進(jìn)一步包括:

      解析模塊11。本發(fā)明的較佳的實(shí)施例中,解析模塊11用于解析從應(yīng)用服務(wù)端中下載的安裝包并獲取相關(guān)安裝信息。

      本發(fā)明的一個(gè)較佳的實(shí)施例中,所謂相關(guān)安裝信息,包括:

      應(yīng)用程序的版本號,和/或應(yīng)用程序的名稱,和/或應(yīng)用程序的入口地址,和/或應(yīng)用程序安裝需要的最低系統(tǒng)配置。

      本發(fā)明的其他實(shí)施例中,上述相關(guān)安裝信息還可以包括其他能夠反映所安裝的應(yīng)用程序的屬性的信息,在此不做限定。

      本發(fā)明的較佳的實(shí)施例中,上述解析模塊11還用于提供和維護(hù)應(yīng)用程序的測試源,以及自動下載指定的應(yīng)用平臺的多個(gè)相應(yīng)的應(yīng)用程序的安裝包。

      本發(fā)明的較佳的實(shí)施例中,上述安裝單元1中還包括:

      第一判斷模塊12,連接解析模塊11。本發(fā)明的較佳的實(shí)施例中,第一判斷模塊12用于根據(jù)相關(guān)安裝信息,判斷移動終端中是否安裝有對應(yīng)于被下載的安裝包的應(yīng)用程序,并輸出相應(yīng)的第一判斷結(jié)果。具體地,本發(fā)明的較佳的實(shí)施例中,移動終端A從應(yīng)用服務(wù)端B中下載的應(yīng)用程序的安裝包,其對應(yīng)的應(yīng)用程序可能在移動終端A中已有安裝,因此,在對下載的安裝包進(jìn)行操作之前,首先判斷移動終端A中是否已經(jīng)安裝有相應(yīng)的應(yīng)用程序,并輸出相應(yīng)的第一判斷結(jié)果。本發(fā)明的較佳的實(shí)施例中,根據(jù)不同的第一判斷結(jié)果,移動終端A將進(jìn)行不同的處理,該不同的處理在下文中會詳述。

      第二判斷模塊13,分別連接解析模塊11和第一判斷模塊12。本發(fā)明的較佳的實(shí)施例中,上述第二判斷模塊13用于根據(jù)相關(guān)安裝信息和第一判斷結(jié)果,在對應(yīng)于安裝包的應(yīng)用程序存在于移動終端中時(shí)判斷移動終端中安裝的安裝包是否為最新版本,并輸出相應(yīng)的第二判斷結(jié)果。具體地,本發(fā)明的較佳的實(shí)施例中,如上文中所述,上述相關(guān)安裝信息中包括應(yīng)用程序的版本號,該包括在應(yīng)用服務(wù)端B中的版本號為該應(yīng)用程序的最新版本號。則本發(fā)明的較佳的實(shí)施例中,當(dāng)上述第一判斷結(jié)果為移動終端A中安裝有相應(yīng)的應(yīng)用程序時(shí),上述第二判斷模塊13根據(jù)上述相關(guān)安裝信息中的應(yīng)用程序的版本號,判斷已安裝的該應(yīng)用程序是否為最新版本,并輸出相應(yīng)的第二判斷結(jié)果。本發(fā)明的較佳的實(shí)施例中,根據(jù)不同的第二判斷結(jié)果,移動終端A將進(jìn)行不同 的處理,該不同的處理在下文中會詳述。

      安裝模塊14,分別連接解析模塊11、第一判斷模塊12和第二判斷模塊13。本發(fā)明的較佳的實(shí)施例中,安裝模塊14用于根據(jù)第一判斷結(jié)果或者第二判斷結(jié)果:

      于移動終端A中未安裝對應(yīng)安裝包的應(yīng)用程序時(shí),根據(jù)安裝包中的相關(guān)安裝信息安裝相應(yīng)的應(yīng)用程序;或者

      于移動終端A中安裝的應(yīng)用程序不是最新版本時(shí),根據(jù)安裝包中的相關(guān)安裝信息將相應(yīng)的應(yīng)用程序替換成最新版本。

      綜上所述,本發(fā)明的較佳的實(shí)施例中,安裝單元1首先下載相應(yīng)的多個(gè)安裝包,并根據(jù)安裝包進(jìn)行逐一判斷:

      安裝單元1首先判斷第一個(gè)安裝包對應(yīng)的應(yīng)用程序是否已安裝于移動終端A中:

      1)若相應(yīng)的應(yīng)用程序已經(jīng)安裝,則安裝單元1根據(jù)安裝包中解析得到的相關(guān)安裝信息,判斷該應(yīng)用程序是否已為最新版本:

      (i)若已安裝的相應(yīng)的應(yīng)用程序并非最新版本,則根據(jù)安裝包對該應(yīng)用程序進(jìn)行版本更新操作;

      (ii)若已安裝的相應(yīng)的應(yīng)用程序已經(jīng)是最新版本,則無需做任何操作,直接將該應(yīng)用程序作為測試對象并開始測試。

      2)若相應(yīng)的應(yīng)用程序尚未安裝,則安裝單元1直接根據(jù)安裝包在移動終端A中安裝該應(yīng)用程序,并將其作為測試對象。

      本發(fā)明的較佳的實(shí)施例中,若當(dāng)前安裝的應(yīng)用程序安裝失敗,則直接轉(zhuǎn)向安裝下一個(gè)應(yīng)用程序,并將安裝成功的應(yīng)用程序作為測試對象開始測試。

      本發(fā)明的較佳的實(shí)施例中,于應(yīng)用服務(wù)端B中按照下載量從大到小對相應(yīng)的應(yīng)用程序的安裝包進(jìn)行排名。

      移動終端A從應(yīng)用服務(wù)端B下載排名為前N名的應(yīng)用程序的安裝包。例如,在應(yīng)用服務(wù)端B中,按照應(yīng)用程序的下載量排名,對其安裝包進(jìn)行相應(yīng)的排列,即給出TOP N(前N名)的應(yīng)用程序相應(yīng)的安裝包以供移動終端下載。本發(fā)明的較佳的實(shí)施例中,上述N可以為使用者自行預(yù)設(shè)的應(yīng)用程序的安裝包的下載數(shù)量。

      本發(fā)明的其他實(shí)施例中,還可以按照其他排列順序下載相應(yīng)的多個(gè)應(yīng)用 程序的安裝包,例如根據(jù)使用評價(jià)排名等。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖5所示,上述應(yīng)用程序測試系統(tǒng)中還包括:

      啟動單元2,連接上述安裝單元1。本發(fā)明的較佳的實(shí)施例中,啟動單元2用于根據(jù)相應(yīng)的安裝包中解析得到相應(yīng)的入口地址,并根據(jù)入口地址啟動應(yīng)用程序。

      具體地,本發(fā)明的較佳的實(shí)施例中,以安卓系統(tǒng)為例,一個(gè)應(yīng)用程序的入口地址,由該應(yīng)用程序安裝包中解析得到的相關(guān)安裝信息中包括的主activity得到。若一個(gè)應(yīng)用程序安裝成功,則可以通過該入口地址啟動相應(yīng)的應(yīng)用程序,以進(jìn)行測試。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖5所示,上述應(yīng)用程序測試系統(tǒng)中還包括:

      測試單元3,連接啟動單元2。本發(fā)明的較佳的實(shí)施例中,測試單元3用于依照預(yù)設(shè)的遍歷方式對被啟動的應(yīng)用程序進(jìn)行遍歷測試,以獲得相應(yīng)的測試結(jié)果并輸出。

      本發(fā)明的較佳的實(shí)施例中,如圖7所示,上述測試單元3進(jìn)一步包括:

      屬性獲取模塊31。本發(fā)明的較佳的實(shí)施例中,屬性獲取模塊31用于獲取作為測試對象的應(yīng)用程序的當(dāng)前操作界面中包括的所有控件的相關(guān)屬性并保存。

      具體地,本發(fā)明的較佳的實(shí)施例中,上述屬性獲取模塊31獲取應(yīng)用程序當(dāng)前操作界面上的控件屬性的方式可以有多種,以下提供兩種獲取方式:

      1)本發(fā)明的一個(gè)較佳的實(shí)施例中,以安卓系統(tǒng)(Andriod)為例,采用安卓系統(tǒng)中的控件獲取工具h(yuǎn)ierarchyviewer獲取當(dāng)前操作界面中的控件屬性。

      2)本發(fā)明的另一個(gè)較佳的實(shí)施例中,同樣以安卓系統(tǒng)為例,采用安卓系統(tǒng)中的另一個(gè)控件獲取工具uiautomatorviewer獲取當(dāng)前操作界面中的控件屬性。本發(fā)明的其他實(shí)施例中,還可以采用其他控件獲取工具實(shí)現(xiàn)當(dāng)前操作界面的控件的相關(guān)屬性的獲取。

      本發(fā)明的其他實(shí)施例中,上述控件獲取工具不限于應(yīng)用在安卓系統(tǒng)中的工具,也可應(yīng)用于其他例如ios系統(tǒng)或者windows phone系統(tǒng)等。

      本發(fā)明的較佳的實(shí)施例中,測試人員事先選擇好相應(yīng)的獲取方式后(即事先選擇相應(yīng)的控件獲取工具后),會提供一個(gè)相應(yīng)的控件獲取接口,以供上述控件獲取工具獲取控件的相關(guān)屬性。例如,若以hierarchyviewer工具獲取控件時(shí),利用ViewServer(視圖服務(wù))的方式,以socket(套接字)通信的方式獲取控件的相關(guān)屬性,并提供相應(yīng)的API接口;又例如,若以uiautomatorviewer工具獲取控件時(shí),可以通過xml文件的方式獲取控件的相關(guān)屬性,并提供相應(yīng)的API接口。

      本發(fā)明的一個(gè)較佳的實(shí)施例中,如上文中所述,獲取的控件的相關(guān)屬性以文本形式被記錄。具體地,本發(fā)明的較佳的實(shí)施例中,相關(guān)于同一個(gè)操作界面中的控件的相關(guān)屬性,被記錄于同一個(gè)文本中。本發(fā)明的較佳的實(shí)施例中,在文本形式的文件中,以文本中的一行表示一個(gè)控件的相關(guān)屬性。在同一行中,以空格間隔同一控件中不同的屬性。

      本發(fā)明的較佳的實(shí)施例中,以文本形式記錄控件的相關(guān)屬性的方式并不限于上文中所述的方式,還可以包括其他方式,例如采用分隔符區(qū)分同一控件中不同的屬性等。

      本發(fā)明的其他實(shí)施例中,還可以采用其他形式記錄控件的相關(guān)屬性。

      本發(fā)明的較佳的實(shí)施例中,上述控件的相關(guān)屬性以鏈表的形式被保存。換言之,操作界面與控件、控件與相關(guān)屬性之間被相互關(guān)聯(lián)。例如,將操作界面與該操作界面中相應(yīng)的所有控件以相互關(guān)聯(lián)的鏈表形式保存,以及將控件與該控件下的所有相關(guān)屬性以相互關(guān)聯(lián)的鏈表形式保存。本發(fā)明的較佳的實(shí)施例中,上述“以鏈表形式保存”的描述與“以文本形式保存”的描述并不沖突,以鏈表形式保存的描述是為了說明操作界面與控件、控件與其相關(guān)屬性之間的關(guān)聯(lián)關(guān)系。

      綜上所述,本發(fā)明技術(shù)方案中,上述屬性獲取模塊31中,采用相應(yīng)的控件獲取工具(即選擇相應(yīng)的控件獲取方法),通過提供的API接口,獲取當(dāng)前操作界面上的控件的相關(guān)屬性,并將獲取到的內(nèi)容以相應(yīng)形式存儲(例如上文中所述的以文本形式保存,并以鏈表形式關(guān)聯(lián)保存等)。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖7所示,上述測試單元3中還包括:

      類型判斷模塊32,其中預(yù)設(shè)有多個(gè)關(guān)鍵字信息。本發(fā)明的較佳的實(shí)施例中,類型判斷模塊32連接屬性獲取模塊31,用于將當(dāng)前操作界面中包括的 所有控件的相關(guān)屬性與預(yù)設(shè)的關(guān)鍵字信息進(jìn)行匹配,以判斷當(dāng)前操作界面的界面類型,并輸出相應(yīng)的判斷結(jié)果。

      具體地,本發(fā)明的較佳的實(shí)施例中,所謂控件的相關(guān)屬性,是指用于表示控件屬性的信息。例如控件對應(yīng)的操作類型(例如點(diǎn)擊、滑動以及輸入等),和/或控件對應(yīng)的操作內(nèi)容的類型(例如登錄控件、信息控件以及通話控件等),和/或控件實(shí)時(shí)的操作狀態(tài)(例如未被操作過或者已被操作過),和/或控件位于當(dāng)前操作界面上的序列標(biāo)號等等。

      則本發(fā)明的較佳的實(shí)施例中,對于當(dāng)前操作界面類型的判斷,通常會用到控件相關(guān)屬性中的操作內(nèi)容的類型。例如,判斷是否為登錄界面,則需要對該操作界面中的所有空間進(jìn)行判斷,以判斷其中是否包括登錄控件,和/或包括用戶身份驗(yàn)證信息的輸入文本框控件。換言之,本發(fā)明的較佳的實(shí)施例中,當(dāng)對當(dāng)前操作界面中的所有控件根據(jù)相關(guān)屬性進(jìn)行判斷后才能得知相應(yīng)的當(dāng)前操作界面為何種類型的界面。

      具體地,本發(fā)明的較佳的實(shí)施例中,預(yù)設(shè)多個(gè)關(guān)鍵字信息。所謂關(guān)鍵字信息,實(shí)際用于對控件相關(guān)屬性進(jìn)行匹配,從而支持判斷當(dāng)前操作界面的類型。

      本發(fā)明的一個(gè)較佳的實(shí)施例中,對于判斷一個(gè)界面是否為登錄界面而言,由于對于不同的應(yīng)用程序而言,有關(guān)登錄的關(guān)鍵字描述可能并不相同,例如相應(yīng)的登錄控件可能為“登錄”,或者“l(fā)og in”,或者“進(jìn)入”,或者其他通用可用于表示登錄含義的關(guān)鍵字,則相應(yīng)地可以將這些信息均預(yù)設(shè)為關(guān)鍵字信息。在實(shí)際對當(dāng)前操作界面進(jìn)行匹配判斷時(shí),若該界面中的相應(yīng)的控件的屬性符合上述關(guān)鍵字信息的匹配時(shí),則可以判斷該控件為登錄類型的控件。

      同樣在上述實(shí)施例中,還可以根據(jù)預(yù)設(shè)的關(guān)鍵字信息判斷某個(gè)控件是否為供測試人員輸入身份驗(yàn)證信息的輸入文本框。則在一個(gè)包括兩個(gè)控件的操作界面中,若該兩個(gè)控件分別被判斷為輸入文本框和登錄點(diǎn)擊控件,則該操作界面就可以被判斷為是登錄界面。

      本發(fā)明的其他實(shí)施例中,可以采用預(yù)設(shè)的關(guān)鍵字信息判斷所有操作界面的類型,從而根據(jù)判斷出的類型對其中包括的控件執(zhí)行相應(yīng)的操作。例如對于登錄界面中的輸入文本框,執(zhí)行文本輸入操作;對于登錄界面中的登錄點(diǎn)擊控件,在上述文本輸入操作完畢后執(zhí)行點(diǎn)擊操作等等。

      本發(fā)明的較佳的實(shí)施例中,若根據(jù)匹配無法確定當(dāng)前操作界面的類型,即在預(yù)設(shè)的關(guān)鍵字信息中找不到與當(dāng)前操作界面中控件的相關(guān)屬性匹配的信息的,則上報(bào)判斷失敗的消息,以供測試人員處理。測試人員可以通過添加相應(yīng)的關(guān)鍵字信息的方式對該失敗消息進(jìn)行處理,以完善整個(gè)關(guān)鍵字字庫。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖7所示,上述測試單元3中還包括:

      測試模塊33,連接類型判斷模塊32。本發(fā)明的較佳的實(shí)施例中,測試模塊33用于根據(jù)判斷結(jié)果,選擇于當(dāng)前操作界面中對所有控件的操作方式,并以預(yù)設(shè)的遍歷方式遍歷操作當(dāng)前操作界面中包括的所有控件。

      本發(fā)明的一個(gè)較佳的實(shí)施例中,可以將預(yù)設(shè)的遍歷方式設(shè)定為順序遍歷方式。所謂順序遍歷,是指在一個(gè)預(yù)設(shè)的操作界面上,按照一定的執(zhí)行順序?qū)丶M(jìn)行相應(yīng)操作。本發(fā)明的一個(gè)較佳的實(shí)施例中,對于一個(gè)預(yù)設(shè)的操作界面,采用從上至下、從左至右的遍歷方式對其中包括的所有控件執(zhí)行相應(yīng)操作。

      本發(fā)明的另一個(gè)較佳的實(shí)施例中,可以將預(yù)設(shè)的遍歷方式設(shè)定為隨機(jī)遍歷方式。所謂隨機(jī)遍歷,是指在一個(gè)預(yù)設(shè)的操作界面中,隨機(jī)選擇其中包括的一個(gè)尚未經(jīng)過操作的控件并執(zhí)行相應(yīng)操作,從而遍歷完成該操作界面中包括的所有控件的操作。本發(fā)明的一個(gè)較佳的實(shí)施例中,對于一個(gè)預(yù)設(shè)的操作界面,采用上述隨機(jī)遍歷的方式對其中包括的所有控件執(zhí)行相應(yīng)操作。

      本發(fā)明的其他實(shí)施例中,上述預(yù)設(shè)的遍歷方式可以根據(jù)實(shí)際情況進(jìn)行設(shè)定,并非限定在上述兩種列舉的遍歷方式中。

      具體地,本發(fā)明的較佳的實(shí)施例中,于上述測試模塊31中,首先形成一保存有應(yīng)用程序的操作界面的存儲隊(duì)列,存儲隊(duì)列采用先進(jìn)后出(First In Last Out,F(xiàn)ILO)的存儲方式保存操作界面。

      具體地,本發(fā)明的較佳的實(shí)施例中,上述FILO的順序?qū)嶋H為選擇當(dāng)前操作界面的順序。例如,當(dāng)前操作界面為界面A,且該界面A出現(xiàn)時(shí)已被列入存儲隊(duì)列中,當(dāng)對界面A中的某個(gè)控件進(jìn)行操作后,跳轉(zhuǎn)至相應(yīng)的界面B,則將該界面B保存于存儲隊(duì)列中。則此時(shí)界面B比界面A后進(jìn)入隊(duì)列,因此此時(shí)的當(dāng)前操作界面為界面B。當(dāng)界面B被從存儲隊(duì)列中去除時(shí),相應(yīng)的位于存儲隊(duì)列最末尾的即為界面A,此時(shí)的當(dāng)前操作界面即為界面A。

      又例如,當(dāng)前操作界面為界面A,且該界面A已被列入存儲隊(duì)列中。當(dāng) 對界面A中的某個(gè)控件進(jìn)行操作后,跳轉(zhuǎn)至相應(yīng)的界面B,但該界面B也已經(jīng)保存于存儲隊(duì)列中,且該界面B保存的位置較界面A更靠前,即界面B于存儲隊(duì)列中的存儲位置較界面A靠前。因此,當(dāng)該界面B被從存儲隊(duì)列中去除時(shí),將當(dāng)前操作界面設(shè)定為存儲隊(duì)列中最靠后的界面A。

      因此,本發(fā)明的較佳的實(shí)施例中,首先對當(dāng)前操作界面中的第一個(gè)控件執(zhí)行相應(yīng)的操作,相應(yīng)的操作由該控件的相關(guān)屬性判斷決定,例如對控件進(jìn)行點(diǎn)擊、滑動或者拖動等。在對控件執(zhí)行相應(yīng)操作后,判斷是否跳轉(zhuǎn)至某個(gè)界面,并在跳轉(zhuǎn)至另一個(gè)操作界面時(shí)首先判斷該操作界面是否包括在上述存儲隊(duì)列中,即該操作界面是否曾經(jīng)出現(xiàn)過,并將尚未出現(xiàn)過的全新的操作界面保存入上述存儲隊(duì)列中。本發(fā)明的較佳的實(shí)施例中,由于對操作界面中的所有控件進(jìn)行遍歷操作(遍歷方式在下文中會詳述),因此對于每個(gè)操作界面中的每個(gè)控件的相關(guān)屬性中均包括操作狀態(tài)的屬性。當(dāng)判斷某個(gè)操作界面中的所有控件均被操作完畢后,則將該操作界面從存儲隊(duì)列中去除,并將當(dāng)前操作界面跳轉(zhuǎn)至存儲隊(duì)列中最后一個(gè)的界面(通常為被去除的操作界面的上一個(gè)界面)。

      以一個(gè)預(yù)設(shè)的應(yīng)用程序的登錄界面判斷并操作為例:

      現(xiàn)有技術(shù)中,無法對一些具有特殊功能的操作界面進(jìn)行測試,其中就包括登錄界面?,F(xiàn)有技術(shù)中,在對登錄界面進(jìn)行測試時(shí),通常無法測試出其功能,而會導(dǎo)致測試陷入死循環(huán),影響測試的流暢度。

      而在本發(fā)明技術(shù)方案中,在對當(dāng)前操作界面進(jìn)行判斷時(shí),若根據(jù)其中包括的控件的相關(guān)屬性判斷出該當(dāng)前操作界面為登錄界面時(shí)(例如其中包括登錄點(diǎn)擊控件,以及身份信息輸入文本框等),對其中相應(yīng)的控件執(zhí)行相應(yīng)的操作。例如對于輸入文本框,將預(yù)設(shè)的身份驗(yàn)證信息輸入到文本框中,而對于登錄點(diǎn)擊控件,在上述身份驗(yàn)證信息輸入完畢后,點(diǎn)擊該登錄點(diǎn)擊控件,以完成整個(gè)登錄界面的控件測試過程。因此,應(yīng)用本發(fā)明技術(shù)方案中的應(yīng)用程序測試方法,可以有效避免因測試一些具有特殊功能的界面時(shí)導(dǎo)致的測試陷入死循環(huán)的問題,對這些界面同樣可以完成測試。

      本發(fā)明的較佳的實(shí)施例中,對遍歷方式的選擇在測試開始前即由測試人員做出。換言之,在對一個(gè)應(yīng)用程序進(jìn)行測試之前,首先預(yù)先選擇相應(yīng)的遍歷方式。本發(fā)明的較佳的實(shí)施例中,選擇遍歷方式的過程可以與選擇控件獲 取方式的過程一起在測試開始前預(yù)先做出。

      本發(fā)明的較佳的實(shí)施例中,遍歷操作控件的規(guī)則包括:

      1)對同一個(gè)操作界面,選擇一個(gè)遍歷方式遍歷操作其中所包括的所有控件;

      2)對操作一個(gè)預(yù)設(shè)的控件而跳轉(zhuǎn)至的一個(gè)新的操作界面,判斷其是否包括在上述存儲隊(duì)列中:

      若該操作界面未包括在上述存儲隊(duì)列中,則將該操作界面加入到存儲隊(duì)列中暫存;

      若該操作界面已包括在上述存儲隊(duì)列中,則繼續(xù)判斷該操作界面中包括的所有控件是否均被操作完畢:

      若該操作界面中包括的所有控件均被操作完畢,則將該操作界面從存儲隊(duì)列中去除,隨后將存儲隊(duì)列中最后的一個(gè)操作界面設(shè)定為當(dāng)前操作界面;

      若該操作界面中包括尚未被操作完畢的控件,則根據(jù)相應(yīng)選擇的遍歷方式,選擇一個(gè)控件進(jìn)行操作。

      本發(fā)明的較佳的實(shí)施例中,若對某個(gè)控件進(jìn)行操作后,若跳轉(zhuǎn)至的界面為另一個(gè)應(yīng)用程序的界面(即非正在測試的應(yīng)用程序的界面),則重新將保存于存儲隊(duì)列中的最后一個(gè)操作界面作為當(dāng)前操作界面,以繼續(xù)進(jìn)行控件的遍歷操作。上述過程設(shè)定為了防止因?yàn)樘D(zhuǎn)至新的應(yīng)用程序?qū)е碌乃姥h(huán)或者石碑程序的出現(xiàn),保證應(yīng)用程序測試運(yùn)行的流暢度。本發(fā)明的較佳的實(shí)施例中,可以判斷操作界面的標(biāo)記,從而判斷其是否為被測試的應(yīng)用程序的操作界面。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖7所示,上述測試單元3中還包括

      結(jié)果輸出模塊34,連接測試模塊33。本發(fā)明的較佳的實(shí)施例中,結(jié)果輸出模塊34用于分別將對每個(gè)控件進(jìn)行操作后形成的界面保存為對應(yīng)的結(jié)果界面,保存對應(yīng)應(yīng)用程序的所有操作界面中包括的所有控件的結(jié)果界面,并將所有結(jié)果界面作為測試結(jié)果輸出。

      具體地,本發(fā)明的較佳的實(shí)施例中,對當(dāng)前操作界面中的所有控件進(jìn)行相應(yīng)操作,遍歷操作應(yīng)用程序的所有操作界面中的所有控件,以得到并保存對應(yīng)于每個(gè)被操作的控件的結(jié)果界面。

      本發(fā)明的較佳的實(shí)施例中,所謂結(jié)果界面,即一個(gè)控件被操作之后形成 的界面,可以為控件被操作后跳轉(zhuǎn)至的一個(gè)新的操作界面,也可以為控件被操作后不引起跳轉(zhuǎn)而顯示的原界面等。

      本發(fā)明的較佳的實(shí)施例中,最終對應(yīng)用程序的所有操作界面中包括的所有控件均遍歷操作完畢,則輸出被保存的所有結(jié)果界面。

      綜上所述,本發(fā)明的技術(shù)方案中,首先根據(jù)預(yù)先選擇的控件獲取方式獲取被測試的應(yīng)用程序的當(dāng)前操作界面的控件的相關(guān)屬性,隨后根據(jù)當(dāng)前操作界面中包括的所有控件的相關(guān)屬性,匹配預(yù)設(shè)的關(guān)鍵字信息,以判斷當(dāng)前操作界面的類型,并根據(jù)判斷結(jié)果決定對其中包括的控件執(zhí)行何種操作。

      相應(yīng)地,預(yù)先選擇一個(gè)遍歷操作的方式,以對當(dāng)前操作界面中包括的控件執(zhí)行相應(yīng)的操作。本發(fā)明技術(shù)方案中,形成一個(gè)用于保存應(yīng)用程序的操作界面的FILO存儲隊(duì)列。存儲隊(duì)列的存儲原則是:采用先進(jìn)后出的存儲方式,將從未出現(xiàn)過的操作界面按序保存于存儲隊(duì)列中,并將其中包括的所有控件均被操作完畢的操作界面從存儲隊(duì)列中去除。對于測試過程而言,若當(dāng)前操作界面被去除,則相應(yīng)跳轉(zhuǎn)至存儲隊(duì)列中保存的最后一個(gè)操作界面,并將該操作界面作為當(dāng)前操作界面,以繼續(xù)執(zhí)行對其中包括的控件的遍歷操作。

      本發(fā)明技術(shù)方案中,當(dāng)應(yīng)用程序的所有操作界面的所有控件均被操作完畢后(即存儲隊(duì)列被清空時(shí)),輸出被保存的所有結(jié)果界面。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖5所示,上述應(yīng)用程序測試系統(tǒng)中還包括:

      卸載單元4,連接測試單元3。本發(fā)明的較佳的實(shí)施例中,用于在遍歷測試結(jié)束后卸載作為測試對象的應(yīng)用程序。

      本發(fā)明的較佳的實(shí)施例中,當(dāng)卸載當(dāng)前完成測試的應(yīng)用程序后,移動終端A中的安裝單元1繼續(xù)尋找是否有下一個(gè)待安裝的應(yīng)用程序的安裝包,并根據(jù)下一個(gè)安裝包安裝應(yīng)用程序以進(jìn)行測試。移動終端A在本次下載的所有安裝包均完成測試后(即不存在下一個(gè)尚未經(jīng)過測試的應(yīng)用程序)結(jié)束本次測試過程。

      本發(fā)明的較佳的實(shí)施例中,仍然如圖5所示,上述應(yīng)用程序測試系統(tǒng)中還包括:

      監(jiān)控單元5,連接測試單元3。本發(fā)明的較佳的實(shí)施例中,監(jiān)控單元5用于監(jiān)控對應(yīng)用程序進(jìn)行測試的過程中產(chǎn)生的相應(yīng)的實(shí)時(shí)測試信息,將實(shí)時(shí) 測試信息處理形成相應(yīng)的結(jié)果視圖并向使用者顯示。

      本發(fā)明的一個(gè)較佳的實(shí)施例中,實(shí)時(shí)測試信息包括:移動終端A于測試應(yīng)用程序的過程中產(chǎn)生的處理器相關(guān)信息,和/或內(nèi)存相關(guān)信息,和/或運(yùn)行狀態(tài)相關(guān)信息。

      本發(fā)明的其他實(shí)施例中,上述實(shí)施測試信息還可以包括其他于移動終端A對應(yīng)用程序進(jìn)行測試操作的過程中產(chǎn)生的能夠反映測試過程的實(shí)時(shí)信息。

      本發(fā)明的較佳的實(shí)施例中,結(jié)果視圖為反映移動終端A進(jìn)行測試過程中于每個(gè)時(shí)間點(diǎn)上產(chǎn)生的實(shí)時(shí)測試信息的折線圖。

      綜上所述,本發(fā)明的技術(shù)方案中,移動終端A首先根據(jù)應(yīng)用服務(wù)端B中的應(yīng)用程序的排名(依照預(yù)設(shè)的規(guī)則進(jìn)行順序排列),下載TOP N個(gè)應(yīng)用程序的安裝包。隨后判斷安裝包對應(yīng)的應(yīng)用程序是否已經(jīng)安裝,以及對應(yīng)的應(yīng)用程序是否是最新版本,并且根據(jù)判斷結(jié)果安裝最新版本的應(yīng)用程序以作為測試對象。

      隨后,移動終端A對被作為測試對象的應(yīng)用程序以預(yù)設(shè)的遍歷方式進(jìn)行測試,即啟動該應(yīng)用程序,并遍歷應(yīng)用程序的所有操作界面上的所有控件進(jìn)行操作,以得到操作每個(gè)控件對應(yīng)的結(jié)果界面,輸出所有結(jié)果界面,作為最終的測試結(jié)果。

      本發(fā)明技術(shù)方案中,當(dāng)完成一個(gè)應(yīng)用程序的測試后,卸載該應(yīng)用程序,并轉(zhuǎn)而根據(jù)下一個(gè)安裝包安裝相應(yīng)的應(yīng)用程序,并將被成功安裝的應(yīng)用程序作為測試對象進(jìn)行測試。

      本發(fā)明技術(shù)方案中,當(dāng)所有應(yīng)用程序均測試完畢(即不存在尚未經(jīng)過測試的應(yīng)用程序的安裝包)時(shí),本次測試結(jié)束。

      本發(fā)明的較佳的實(shí)施例中,還提供一種移動終端,其中采用上文中所述的應(yīng)用程序測試方法。

      本發(fā)明的較佳的實(shí)施例中,還提供一種移動終端,其中包括上文中所述的應(yīng)用程序測試系統(tǒng)。

      以上所述僅為本發(fā)明較佳的實(shí)施例,并非因此限制本發(fā)明的實(shí)施方式及保護(hù)范圍,對于本領(lǐng)域技術(shù)人員而言,應(yīng)當(dāng)能夠意識到凡運(yùn)用本發(fā)明說明書 及圖示內(nèi)容所作出的等同替換和顯而易見的變化所得到的方案,均應(yīng)當(dāng)包含在本發(fā)明的保護(hù)范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1