本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種測試方法及設(shè)備。
背景技術(shù):
由于無線端業(yè)務(wù)的飛速發(fā)展,無線端APP(Application,應(yīng)用)的質(zhì)量保證工作變得尤為重要,很多大型公司開始研究無線端的UI自動化框架來降低人力測試成本。
UI(User interface,用戶界面)測試的目的是確保用戶界面會通過測試對象的功能來為用戶提供相應(yīng)的訪問或?yàn)g覽功能,確保用戶界面符合公司或行業(yè)的標(biāo)準(zhǔn)。通過UI測試來核實(shí)用戶與軟件的交互。UI測試的目標(biāo)在于確保用戶界面向用戶提供了適當(dāng)?shù)脑L問和瀏覽測試對象功能的操作。除此之外,UI測試還要確保UI功能內(nèi)部的對象符合預(yù)期要求。
UI測試具體包括測試用戶界面的功能模塊的布局是否合理、整體風(fēng)格是否一致以及各個控件的放置位置是否符合客戶使用習(xí)慣,更重要的是要符合操作便捷,導(dǎo)航簡單易懂,界面中文字是否正確,命名是否統(tǒng)一,頁面是否美觀,文字、圖片組合是否完美等。
目前市面上UI自動化框架測試有阿里巴巴開發(fā)的Sword框架。Sword框架是通過解析軟件的屬性進(jìn)行控件定位。但是如果屬性發(fā)生變化會出現(xiàn)、軟件頁面加載延時等情況出現(xiàn),會造成無法定位到需要測試的屬性,這時就需要人工進(jìn)行定位,從而降低UI自動化測試的效率。
綜上所述,目前UI自動化框架測試效率比較低,穩(wěn)定性比較差。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種測試方法及設(shè)備,用以解決現(xiàn)有技術(shù)中存在的UI自動化框架測試效率比較低,穩(wěn)定性比較差的問題。
一方面,本申請實(shí)施例提供的一種測試方法,該方法包括:
從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片,其中所述圖片是需要測試的用戶界面中的控件的截圖;
確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行測試。
由于能夠通過圖像匹配方式定位控件,在屬性發(fā)生變化、軟件頁面加載延時等情況出現(xiàn)時也不會定位控件失敗,從而提高了UI自動化框架測試效率以及穩(wěn)定性。
可選的,確定選擇的圖片對應(yīng)的操作,包括:
根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。
由于能夠根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作,從而能夠準(zhǔn)確確定選擇的圖片對應(yīng)的操作。
可選的,從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片之前,還包括:
確定所述目標(biāo)軟件在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行。
由于在確定所述目標(biāo)軟件在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行后,進(jìn)行圖片匹配,從而增加了測試的應(yīng)用場景。
可選的,從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片之前,還包括:
若確定所述目標(biāo)軟件需要在支持所述目標(biāo)軟件的模擬器中運(yùn)行,從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
由于在確定所述目標(biāo)軟件需要在支持所述目標(biāo)軟件的模擬器中運(yùn)行后,能夠從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件,不需要人工手動運(yùn)行,從而增加了測試的效率。
可選的,從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件之前,還包括:
確定所述目標(biāo)軟件的安裝程序的存儲路徑;
根據(jù)確定的所述存儲路徑,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。
由于能夠自動安裝所述目標(biāo)軟件,從而增加了測試的效率。
可選的,從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片之前,還包括:
在收到控制服務(wù)器發(fā)送的讀取指令后,從代碼服務(wù)器中下載與需要進(jìn)行測試的用戶界面對應(yīng)的代碼信息,用以進(jìn)行自動測試。
另一方面,本申請實(shí)施例提供的一種測試設(shè)備,該設(shè)備包括:
選擇模塊,用于從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片,其中所述圖片是需要測試的用戶界面中的控件的截圖;
處理模塊,用于確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行測試。
可選的,所述處理模塊具體用于:
在確定選擇的圖片對應(yīng)的操作時,根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。
可選的,所述選擇模塊還用于:
在確定所述目標(biāo)軟件在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行后,從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
可選的,所述選擇模塊還用于:
從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片之前,若確定所述目標(biāo)軟件需要在支持所述目標(biāo)軟件的模擬器中運(yùn)行,從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,所述選擇模塊還用于:
確定所述目標(biāo)軟件的安裝程序的存儲路徑;根據(jù)確定的所述存儲路徑,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件;從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,所述設(shè)備還包括:
控制模塊,用于在收到控制服務(wù)器發(fā)送的讀取指令后,從代碼服務(wù)器中下載與需要進(jìn)行測試的用戶界面對應(yīng)的代碼信息,并根據(jù)所述代碼信息控制所述選擇模塊和所述處理模塊進(jìn)行測試。
附圖說明
圖1為本申請實(shí)施例測試方法流程示意圖;
圖2為本申請實(shí)施例系統(tǒng)框架示意圖;
圖3為本申請實(shí)施例另一種測試方法流程示意圖;
圖4為本申請實(shí)施例測試設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施方式
本申請實(shí)施例從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片,并根據(jù)選擇的圖片對應(yīng)的操作,在所述用戶界面上進(jìn)行測試,其中所述圖片為需要測試的用戶界面中的控件的截圖。由于能夠通過圖像匹配方式定位控件,在屬性發(fā)生變化、軟件頁面加載延時等情況出現(xiàn)時也不會定位控件失敗,從而提高了UI自動化框架測試效率以及穩(wěn)定性。
其中,本申請實(shí)施例的目標(biāo)軟件可以是支持IOS設(shè)備的軟件;也可以是支持其他設(shè)備的軟件。
下面結(jié)合說明書附圖對本申請實(shí)施例作進(jìn)一步詳細(xì)描述。
如圖1所示,本申請實(shí)施例測試方法包括:
步驟101、從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片,其中所述圖片是需要測試的用戶界面中的控件的截圖;
步驟102、確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行操作。
本申請實(shí)施例預(yù)先將目標(biāo)軟件中需要測試的用戶界面進(jìn)行截圖,一個用戶界面可以有一個截圖,也可以有多個截圖。可選的,每個截圖中至少包括一個控件。
比如用戶界面中包括輸入框、按鈕等控件,可以截一個圖將輸入框和按鈕都包含進(jìn)去;也可以分別截兩個圖,一個包括輸入框,一個包括按鈕。
在進(jìn)行測試時,由于測試環(huán)境不同,有可能目標(biāo)軟件需要在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行;也可能需要在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。而不同的測試環(huán)境后續(xù)處理過程是不同的。
基于此,在進(jìn)行用戶界面測試時,需要判斷所述目標(biāo)軟件是否在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行。
具體目標(biāo)軟件是否在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行可以由人工預(yù)先配置的;也可以自動進(jìn)行檢測。
下面分別介紹下在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件和在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件的具體過程。
過程一、在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件。
如果確定在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件,可以直接從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
以IOS軟件舉例,在進(jìn)行測試前需要用戶先運(yùn)行IOS軟件,比如可以采用Veency+realVNC的方式將支持所述目標(biāo)軟件的設(shè)備投影到測試設(shè)備上,也就是現(xiàn)實(shí)測試設(shè)備能夠控制將支持所述目標(biāo)軟件的設(shè)備上運(yùn)行的IOS軟件。之后就可以執(zhí)行本申請實(shí)施例的方案。
當(dāng)然,也可以由本申請實(shí)施例的執(zhí)行主體從支持所述目標(biāo)軟件的設(shè)備上運(yùn)行IOS軟件。
在進(jìn)行匹配時,如果預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率 不一致,會降低匹配成功率,所以需要保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致。比如預(yù)先配置的圖片的分辨率如果是1920*1080,則需要保證顯示的用戶界面的分辨率也是1920*1080。
由于在之前進(jìn)行截圖時,有可能是在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,也可能是在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖。
如果在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,不需要調(diào)整顯示的用戶界面的分辨率;
如果在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖,需要將顯示的用戶界面的分辨率調(diào)整成與所述模擬器的分辨率一致。
調(diào)整方式可以由人工繼續(xù)調(diào)整,也可以自動調(diào)用設(shè)備中的配置選項(xiàng)進(jìn)行調(diào)整。
在保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致后,就可以進(jìn)行圖片匹配。
圖片匹配是將當(dāng)前顯示的用戶界面和每一張預(yù)先配置的圖片進(jìn)行匹配。找到包括當(dāng)前顯示的全部或部分用戶界面的圖片。具體匹配方式有很多種,比如可以參見目前的圖片匹配方式,也可以采用類似人臉識別的方式。
假設(shè)當(dāng)前顯示的用戶界面中有“排序”按鈕。由于之前在截圖時會將需要測試的頁面中的控件都進(jìn)行截圖,所以之前的截圖中會有一個包含當(dāng)前顯示的用戶界面中的“排序”按鈕的圖片,匹配的目的就是將這個圖片找到。
在實(shí)施中,預(yù)先會配置圖片和操作的對應(yīng)關(guān)系,根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。由于每個圖片都會包括至少一個控件,而不同的控件對應(yīng)的操作不同。比如排序控件需要執(zhí)行的操作是選擇不同的排序規(guī)則(例如成交量排序、信用度排序等),并點(diǎn)擊排序按鈕;搜索控件需要執(zhí)行的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。
基于此,需要為不同的圖片配置對應(yīng)的操作,這樣當(dāng)匹配到圖片后,就知 道在當(dāng)前顯示的用戶界面上進(jìn)行什么操作。
比如包含搜索控件的圖片對應(yīng)的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。在匹配到包含搜索控件的圖片后,根據(jù)上述對應(yīng)關(guān)系確定需要在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕,并在當(dāng)前顯示的用戶界面的搜索框中輸入搜索詞,并模擬點(diǎn)擊搜索按鈕,從而實(shí)現(xiàn)對當(dāng)前顯示的用戶界面的搜索控件的測試。
過程二、在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
針對過程二,一種方式是人工將目標(biāo)軟件安裝到支持所述目標(biāo)軟件的模擬器中,并運(yùn)行。
為了進(jìn)一步提高自動化效率,可以人工將目標(biāo)軟件安裝到支持所述目標(biāo)軟件的模擬器中,由機(jī)器自動運(yùn)行。
具體的,在確定在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后,從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,除了機(jī)器自動運(yùn)行,還可以由機(jī)器自動安裝所述目標(biāo)軟件。
具體的,確定在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后,確定所述目標(biāo)軟件的安裝程序的存儲路徑;根據(jù)確定的所述存儲路徑,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件,并從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,在安裝所述目標(biāo)軟件時,將所述存儲路徑對應(yīng)的軟件提取出來,并通過Instruments開源框架里面提供的api接口,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。
從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件之后,從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
在進(jìn)行匹配時,如果預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率不一致,會降低匹配成功率,所以需要保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致。比如預(yù)先配置的圖片的分辨率如果是1920*1080, 則需要保證顯示的用戶界面的分辨率也是1920*1080。
由于在之前進(jìn)行截圖時,有可能是在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,也可能是在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖。
如果在支持所述目標(biāo)軟件的模擬器中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,不需要調(diào)整顯示的用戶界面的分辨率;
如果在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖,需要將顯示的用戶界面的分辨率調(diào)整成與所述模擬器的分辨率一致。
調(diào)整方式可以由人工繼續(xù)調(diào)整,也可以自動調(diào)用設(shè)備中的配置選項(xiàng)進(jìn)行調(diào)整。
在保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致后,就可以進(jìn)行圖片匹配。
圖片匹配是將當(dāng)前顯示的用戶界面和每一張預(yù)先配置的圖片進(jìn)行匹配。找到包括當(dāng)前顯示的全部或部分用戶界面的圖片。具體匹配方式有很多種,比如可以參見目前的圖片匹配方式,也可以采用類似人臉識別的方式。
假設(shè)當(dāng)前顯示的用戶界面中有“排序”按鈕。由于之前在截圖時會將需要測試的頁面中的控件都進(jìn)行截圖,所以之前的截圖中會有一個包含當(dāng)前顯示的用戶界面中的“排序”按鈕的圖片,匹配的目的就是將這個圖片找到。
在實(shí)施中,預(yù)先會配置圖片和操作的對應(yīng)關(guān)系,根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。由于每個圖片都會包括至少一個控件,而不同的控件對應(yīng)的操作不同。比如排序控件需要執(zhí)行的操作是選擇不同的排序規(guī)則(例如成交量排序、信用度排序等),并點(diǎn)擊排序按鈕;搜索控件需要執(zhí)行的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。
基于此,需要為不同的圖片配置對應(yīng)的操作,這樣當(dāng)匹配到圖片后,就知道在當(dāng)前顯示的用戶界面上進(jìn)行什么操作。
比如包含搜索控件的圖片對應(yīng)的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜 索按鈕。在匹配到包含搜索控件的圖片后,根據(jù)上述對應(yīng)關(guān)系確定需要在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕,并在當(dāng)前顯示的用戶界面的搜索框中輸入搜索詞,并模擬點(diǎn)擊搜索按鈕,從而實(shí)現(xiàn)對當(dāng)前顯示的用戶界面的搜索控件的測試。
其中,本申請實(shí)施例還提供了一種測試系統(tǒng)框架,如圖2所示,該系統(tǒng)框架包括控制服務(wù)器(即圖中的jenkins服務(wù)器)、代碼服務(wù)器(即圖中的SVN)和至少一個測試設(shè)備(即圖中的Mac代理設(shè)備)。
上述圖1的方法的執(zhí)行主體就是測試設(shè)備。
在實(shí)施中,人工將執(zhí)行測試的代碼存儲到代碼服務(wù)器中,測試設(shè)備通過讀取代碼就能實(shí)現(xiàn)圖1的過程。
由于本申請實(shí)施例可以支持多個測試設(shè)備同時測試用戶界面,需要有一個進(jìn)行測試調(diào)度的設(shè)備。
可選的,控制服務(wù)器在收到測試命令后,通知當(dāng)前空閑的測試設(shè)備測試的用戶界面。
可選的,測試命令中包括需要測試設(shè)備下載的代碼對應(yīng)的代碼地址;
相應(yīng)的,測試設(shè)備在收到控制服務(wù)器發(fā)送的讀取指令后,根據(jù)收到的代碼地址從代碼服務(wù)器中下載對應(yīng)的代碼,并運(yùn)行下載的代碼實(shí)現(xiàn)測試過程。
控制服務(wù)器可以實(shí)時或周期查看是否有空閑的測試設(shè)備(即測試完畢),如果有,則繼續(xù)通知當(dāng)前空閑的測試設(shè)備測試的用戶界面,直到所有需要測試的用戶界面都完成測試。
基于上述系統(tǒng)框架,本申請實(shí)施例還提供一種測試調(diào)度的方法。
下面列舉一個例子介紹下本申請實(shí)施例完整的技術(shù)方案。
如圖3所示,本申請實(shí)施例四測試方法包括:
步驟301、控制服務(wù)器確定當(dāng)前有空閑的測試設(shè)備。
步驟302、控制服務(wù)器通知當(dāng)前空閑的測試設(shè)備測試的用戶界面。
步驟303、測試設(shè)備在收到控制服務(wù)器發(fā)送的讀取指令后,從代碼服務(wù)器 中下載與需要進(jìn)行測試的用戶界面對應(yīng)的代碼信息,并根據(jù)下載的代碼信息執(zhí)行后續(xù)步驟。
步驟304、測試設(shè)備判斷目標(biāo)軟件是否在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行,如果是,則執(zhí)行步驟305;否則,執(zhí)行步驟307。
步驟305、測試設(shè)備從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
步驟306、測試設(shè)備確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行測試,并在測試完成后,等待控制服務(wù)器發(fā)送讀取指令。
步驟307、測試設(shè)備確定所述目標(biāo)軟件的安裝程序的存儲路徑。
步驟308、測試設(shè)備根據(jù)確定的所述存儲路徑,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。
步驟309、測試設(shè)備從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
步驟310、測試設(shè)備從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
步驟311、測試設(shè)備確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行測試,并在測試完成后,等待控制服務(wù)器發(fā)送讀取指令。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例中還提供了一種測試設(shè)備,由于該設(shè)備解決問題的原理與本申請實(shí)施例測試方法相似,因此該設(shè)備的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
如圖4所示,本申請實(shí)施例測試設(shè)備包括:
選擇模塊401,用于從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片,其中所述圖片是需要測試的用戶界面中的控件的截圖;
處理模塊402,用于確定選擇的圖片對應(yīng)的操作,并根據(jù)確定的操作,在所述用戶界面上進(jìn)行測試。
本申請實(shí)施例預(yù)先將目標(biāo)軟件中需要測試的用戶界面進(jìn)行截圖,一個用戶 界面可以有一個截圖,也可以有多個截圖。可選的,每個截圖中至少包括一個控件。
比如用戶界面中包括輸入框、按鈕等控件,可以截一個圖將輸入框和按鈕都包含進(jìn)去;也可以分別截兩個圖,一個包括輸入框,一個包括按鈕。
在進(jìn)行測試時,由于測試環(huán)境不同,有可能目標(biāo)軟件需要在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行;也可能需要在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。而不同的測試環(huán)境后續(xù)處理過程是不同的。
基于此,在進(jìn)行用戶界面測試時,需要判斷所述目標(biāo)軟件是否在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行。
具體目標(biāo)軟件是否在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行可以由人工預(yù)先配置的;也可以自動進(jìn)行檢測。
下面分別介紹下在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件和在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件的具體過程。
過程一、在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件。
所述選擇模塊401還用于:
在確定所述目標(biāo)軟件在支持所述目標(biāo)軟件的設(shè)備上運(yùn)行后,可以直接從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
以IOS軟件舉例,在進(jìn)行測試前需要用戶先運(yùn)行IOS軟件,比如可以采用Veency+realVNC的方式將支持所述目標(biāo)軟件的設(shè)備投影到測試設(shè)備上,也就是現(xiàn)實(shí)測試設(shè)備能夠控制將支持所述目標(biāo)軟件的設(shè)備上運(yùn)行的IOS軟件。之后就可以由所述選擇模塊401從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
當(dāng)然,也可以由本申請實(shí)施例的選擇模塊401從支持所述目標(biāo)軟件的設(shè)備上運(yùn)行IOS軟件。
在進(jìn)行匹配時,如果預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率不一致,會降低匹配成功率,所以需要保證預(yù)先配置的圖片的分辨率和顯示的 用戶界面的分辨率保持一致。比如預(yù)先配置的圖片的分辨率如果是1920*1080,則需要保證顯示的用戶界面的分辨率也是1920*1080。
由于在之前進(jìn)行截圖時,有可能是在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,也可能是在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖。
如果在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,不需要調(diào)整顯示的用戶界面的分辨率;
如果在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖,需要將顯示的用戶界面的分辨率調(diào)整成與所述模擬器的分辨率一致。
調(diào)整方式可以由人工繼續(xù)調(diào)整,也可以由選擇模塊401自動調(diào)用設(shè)備中的配置選項(xiàng)進(jìn)行調(diào)整。
在保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致后,就可以進(jìn)行圖片匹配。
圖片匹配是將當(dāng)前顯示的用戶界面和每一張預(yù)先配置的圖片進(jìn)行匹配。找到包括當(dāng)前顯示的全部或部分用戶界面的圖片。具體匹配方式有很多種,比如可以參見目前的圖片匹配方式,也可以采用類似人臉識別的方式。
假設(shè)當(dāng)前顯示的用戶界面中有“排序”按鈕。由于之前在截圖時會將需要測試的頁面中的控件都進(jìn)行截圖,所以之前的截圖中會有一個包含當(dāng)前顯示的用戶界面中的“排序”按鈕的圖片,匹配的目的就是將這個圖片找到。
在實(shí)施中,預(yù)先會配置圖片和操作的對應(yīng)關(guān)系,處理模塊402根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。由于每個圖片都會包括至少一個控件,而不同的控件對應(yīng)的操作不同。比如排序控件需要執(zhí)行的操作是選擇不同的排序規(guī)則(例如成交量排序、信用度排序等),并點(diǎn)擊排序按鈕;搜索控件需要執(zhí)行的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。
基于此,需要為不同的圖片配置對應(yīng)的操作,這樣當(dāng)匹配到圖片后,就知道在當(dāng)前顯示的用戶界面上進(jìn)行什么操作。
比如包含搜索控件的圖片對應(yīng)的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。在匹配到包含搜索控件的圖片后,根據(jù)上述對應(yīng)關(guān)系確定需要在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕,并在當(dāng)前顯示的用戶界面的搜索框中輸入搜索詞,并模擬點(diǎn)擊搜索按鈕,從而實(shí)現(xiàn)對當(dāng)前顯示的用戶界面的搜索控件的測試。
過程二、在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
針對過程二,一種方式是人工將目標(biāo)軟件安裝到支持所述目標(biāo)軟件的模擬器中,并運(yùn)行。
為了進(jìn)一步提高自動化效率,可以人工將目標(biāo)軟件安裝到支持所述目標(biāo)軟件的模擬器中,由機(jī)器自動運(yùn)行。
具體的,所述選擇模塊401從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片之前,若確定所述目標(biāo)軟件需要在支持所述目標(biāo)軟件的模擬器中運(yùn)行,從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,除了機(jī)器自動運(yùn)行,還可以由機(jī)器自動安裝所述目標(biāo)軟件。
具體的,所述選擇模塊401確定所述目標(biāo)軟件的安裝程序的存儲路徑;根據(jù)確定的所述存儲路徑,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件;從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件。
可選的,在安裝所述目標(biāo)軟件時,所述選擇模塊401將所述存儲路徑對應(yīng)的軟件提取出來,并通過Instruments開源框架里面提供的api接口,在所述模擬器中運(yùn)行所述安裝程序安裝所述目標(biāo)軟件。
從支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件之后,所述選擇模塊401從預(yù)先配置的至少一個圖片中選擇與目標(biāo)軟件中需要測試的用戶界面匹配的圖片。
在進(jìn)行匹配時,如果預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率不一致,會降低匹配成功率,所以需要保證預(yù)先配置的圖片的分辨率和顯示的 用戶界面的分辨率保持一致。比如預(yù)先配置的圖片的分辨率如果是1920*1080,則需要保證顯示的用戶界面的分辨率也是1920*1080。
由于在之前進(jìn)行截圖時,有可能是在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,也可能是在支持所述目標(biāo)軟件的模擬器中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖。
如果在支持所述目標(biāo)軟件的模擬器中運(yùn)行目標(biāo)軟件后進(jìn)行的截圖,不需要調(diào)整顯示的用戶界面的分辨率;
如果在支持所述目標(biāo)軟件的設(shè)備中運(yùn)行所述目標(biāo)軟件后進(jìn)行的截圖,需要將顯示的用戶界面的分辨率調(diào)整成與所述模擬器的分辨率一致。
調(diào)整方式可以由人工繼續(xù)調(diào)整,也可以由所述選擇模塊401自動調(diào)用設(shè)備中的配置選項(xiàng)進(jìn)行調(diào)整。
在保證預(yù)先配置的圖片的分辨率和顯示的用戶界面的分辨率保持一致后,就可以進(jìn)行圖片匹配。
圖片匹配是將當(dāng)前顯示的用戶界面和每一張預(yù)先配置的圖片進(jìn)行匹配。找到包括當(dāng)前顯示的全部或部分用戶界面的圖片。具體匹配方式有很多種,只要能夠進(jìn)行兩個圖片比較的方式都適用本申請實(shí)施例,比如可以采用比較圖片和用戶界面的像素方式進(jìn)行圖像匹配。
假設(shè)當(dāng)前顯示的用戶界面中有“排序”按鈕。由于之前在截圖時會將需要測試的頁面中的控件都進(jìn)行截圖,所以之前的截圖中會有一個包含當(dāng)前顯示的用戶界面中的“排序”按鈕的圖片,匹配的目的就是將這個圖片找到。
在實(shí)施中,預(yù)先會配置圖片和操作的對應(yīng)關(guān)系,處理模塊402根據(jù)預(yù)先設(shè)定的圖片和操作的對應(yīng)關(guān)系,確定選擇的圖片對應(yīng)的操作。由于每個圖片都會包括至少一個控件,而不同的控件對應(yīng)的操作不同。比如排序控件需要執(zhí)行的操作是選擇不同的排序規(guī)則(例如成交量排序、信用度排序等),并點(diǎn)擊排序按鈕;搜索控件需要執(zhí)行的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。
基于此,需要為不同的圖片配置對應(yīng)的操作,這樣當(dāng)匹配到圖片后,就知 道在當(dāng)前顯示的用戶界面上進(jìn)行什么操作。
比如包含搜索控件的圖片對應(yīng)的操作是在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕。在匹配到包含搜索控件的圖片后,根據(jù)上述對應(yīng)關(guān)系確定需要在搜索框中輸入搜索詞,并點(diǎn)擊搜索按鈕,并在當(dāng)前顯示的用戶界面的搜索框中輸入搜索詞,并模擬點(diǎn)擊搜索按鈕,從而實(shí)現(xiàn)對當(dāng)前顯示的用戶界面的搜索控件的測試。
可選的,本申請實(shí)施例的設(shè)備還包括:
控制模塊403,用于在收到控制服務(wù)器發(fā)送的讀取指令后,從代碼服務(wù)器中下載與需要進(jìn)行測試的用戶界面對應(yīng)的代碼信息,并根據(jù)所述代碼信息控制所述選擇模塊401和所述處理模塊402進(jìn)行測試。
也就是說,上述所述選擇模塊401和所述處理模塊402執(zhí)行的內(nèi)容都由控制模塊403控制。
控制的方式可以是通知所述選擇模塊401和所述處理模塊402如何執(zhí)行,也可以是將代碼信息發(fā)送給所述選擇模塊401和所述處理模塊402,由所述選擇模塊401和所述處理模塊402根據(jù)代碼信息執(zhí)行上述操作。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。