定測(cè)試位置的操作回放坐標(biāo)的效果。
[0162]在本發(fā)明的上述實(shí)施例中,第二坐標(biāo)獲取模塊可以包括:分辨率獲取模塊,用于獲取第一終端的第一分辨率和第二終端的第二分辨率;倍率計(jì)算模塊,用于計(jì)算第一分辨率和第二分辨率的倍率;坐標(biāo)換算模塊,用于使用倍率對(duì)操作執(zhí)行坐標(biāo)進(jìn)行分辨率換算得到操作回放坐標(biāo)。
[0163]具體地,在區(qū)域和錄制圖片的相似度不符合預(yù)設(shè)閾值的情況下,也即,確認(rèn)在第二終端的界面圖片上無法找到錄制圖片的對(duì)應(yīng)位置,則獲取第一終端(如第一手機(jī))的第一分辨率和第二終端(第二手機(jī))的第二分辨率,然后計(jì)算第一分辨率和第二分辨率的倍率,使用該倍率對(duì)操作執(zhí)行坐標(biāo)進(jìn)行分辨率換算得到操作回放坐標(biāo)。
[0164]將本發(fā)明的上述實(shí)施例應(yīng)用于基于安卓手機(jī)的軟件測(cè)試中時(shí),例如,第一手機(jī)的分辨率為480*800,第二手機(jī)的分辨率為240*320,則先計(jì)算兩個(gè)分辨率的倍率,然后將操作執(zhí)行坐標(biāo)(xl,yl)中的xl,yl分別與倍率相乘得到χ2和y2即為可得到操作回放坐標(biāo)(x2, y2)0
[0165]實(shí)施例3
[0166]在其最基本的配置中,圖10是根據(jù)本發(fā)明實(shí)施例三的應(yīng)用程序的測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖。出于描述的目的,所繪的體系結(jié)構(gòu)僅為合適環(huán)境的一個(gè)示例,并非對(duì)本申請(qǐng)的使用范圍或功能提出任何局限。也不應(yīng)將該計(jì)算系統(tǒng)解釋為對(duì)圖10所示的任一組件或其組合具有任何依賴或需求。
[0167]如圖10所示,該系統(tǒng)可以包括:第一終端1、服務(wù)器3以及第二終端5。
[0168]其中,第一終端1,用于根據(jù)對(duì)被測(cè)應(yīng)用程序執(zhí)行的測(cè)試操作生成并上傳操作信息,其中,操作信息包括第一終端上用于執(zhí)行測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片。
[0169]服務(wù)器3,與第一終端I連接,用于保存接收到的操作信息,并在接收到測(cè)試請(qǐng)求之后,將對(duì)應(yīng)的操作信息下發(fā)至對(duì)應(yīng)的終端;
[0170]第二終端5,與服務(wù)器3連接,用于發(fā)送測(cè)試請(qǐng)求,并在接收到服務(wù)器下發(fā)的操作信息之后,截取第二終端上運(yùn)行界面時(shí)的界面圖片,并對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)另O,在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0171]采用本發(fā)明,通過第一終端對(duì)被測(cè)應(yīng)用程序執(zhí)行的測(cè)試操作生成操作信息,第一終端獲取操作信息的過程為錄制過程,在該錄制過程中不僅記錄了執(zhí)行測(cè)試操作的界面和在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo),還記錄了在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,在第二終端上回放該操作信息以完成對(duì)被測(cè)應(yīng)用程序的測(cè)試之前,即在上述實(shí)施例中,在第二終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作之前,對(duì)截取的第二終端上運(yùn)行界面時(shí)的界面圖片和錄制圖片進(jìn)行圖片識(shí)別,在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)(而不是在第一終端上錄制的操作執(zhí)行坐標(biāo))在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作,從而在第二終端上進(jìn)行應(yīng)用程序的測(cè)試時(shí),不依據(jù)在第一終端上錄制的操作執(zhí)行坐標(biāo)執(zhí)行測(cè)試操作,而是通過圖片識(shí)別獲取到操作執(zhí)行坐標(biāo)在第二終端上對(duì)應(yīng)的操作回放坐標(biāo)執(zhí)行測(cè)試操作,在回放過程中不依賴于分辨率和被測(cè)應(yīng)用程序的源碼,僅僅使用坐標(biāo)便可在第二終端上確定準(zhǔn)確的測(cè)試位置(用操作回放坐標(biāo)表示該位置),然后按照操作回放坐標(biāo)在第二終端的界面上執(zhí)行對(duì)被測(cè)應(yīng)用程序的測(cè)試操作,解決了現(xiàn)有技術(shù)中使用錄制回放方法測(cè)試軟件無法適應(yīng)不同分辨率的終端,從而導(dǎo)致軟件測(cè)試結(jié)果不準(zhǔn)確的問題,實(shí)現(xiàn)了準(zhǔn)確獲取操作執(zhí)行坐標(biāo),從而可以在第二終端上準(zhǔn)確執(zhí)行測(cè)試操作,達(dá)到獲取準(zhǔn)確的應(yīng)用程序的測(cè)試結(jié)果的效果。
[0172]其中,上述實(shí)施例中的第一終端I和第二終端5可以是同一用戶終端,也即,在上述測(cè)試系統(tǒng)中,可以在同一用戶終端上完成錄制操作信息和回放操作信息的測(cè)試過程;并且在本發(fā)明的上述實(shí)施例中,第二終端5的數(shù)量可以為一個(gè)或多個(gè),也即服務(wù)器可以根據(jù)不同的第二終端發(fā)送的測(cè)試請(qǐng)求,將服務(wù)器上保存的操作信息下發(fā)至對(duì)應(yīng)的一個(gè)或多個(gè)第二終端。
[0173]需要進(jìn)一步說明的是,在第一終端I上錄制操作信息可以先在第一終端I上安裝并啟動(dòng)被測(cè)應(yīng)用程序,啟動(dòng)測(cè)試被測(cè)應(yīng)用程序的測(cè)試時(shí)間,具體地通過操作該被測(cè)應(yīng)用程序來實(shí)現(xiàn)在第一終端上對(duì)被測(cè)應(yīng)用程序的測(cè)試。在第一終端I上執(zhí)行測(cè)試操作的過程中記錄各個(gè)測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片。其中,測(cè)試操作、界面和操作執(zhí)行坐標(biāo)記錄在錄制腳本中,并且該腳本中保存著測(cè)試操作與錄制圖片之間的關(guān)聯(lián)關(guān)系。
[0174]上述的測(cè)試事件包括一個(gè)或多個(gè)測(cè)試操作,具體地,第二終端發(fā)送測(cè)試被測(cè)應(yīng)用程序的測(cè)試請(qǐng)求至服務(wù)器,服務(wù)器(如云服務(wù)器)在接收到測(cè)試請(qǐng)求之后,從數(shù)據(jù)庫(kù)中讀取對(duì)應(yīng)該測(cè)試請(qǐng)求的操作信息,并將該操作信息下發(fā)至第二終端,第二終端在接收到服務(wù)器返回的操作信息之后,從操作信息中的錄制腳本中依次讀取測(cè)試操作,并通過測(cè)試操作和錄制圖片與操作執(zhí)行坐標(biāo)之間的關(guān)聯(lián)關(guān)系依次獲取對(duì)應(yīng)的錄制圖片,然后截取第二終端上運(yùn)行該執(zhí)行測(cè)試操作的界面時(shí)的界面圖片,并對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)別,在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,判斷是否識(shí)別完全部的操作執(zhí)行坐標(biāo),在識(shí)別完錄制腳本中所有的操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)在第二終端的界面上依次對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0175]具體地,第二終端上按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作可以通過實(shí)施例一中的方法實(shí)現(xiàn):在第二終端識(shí)別到與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,將錄制腳本中的操作執(zhí)行坐標(biāo)替換為操作回放坐標(biāo),得到更新后的錄制腳本;然后在第二終端的界面(在上述實(shí)施例中為計(jì)算界面)上回放更新后的錄制腳本,以按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作
[0176]其中,上述實(shí)施例中的第一終端I和第二終端5可以是基于Android平臺(tái)的移動(dòng)終端設(shè)備(如手機(jī)、平板電腦),可選地可以將本發(fā)明的上述測(cè)試系統(tǒng)應(yīng)用于Android手機(jī)的軟件測(cè)試中。
[0177]例如,在對(duì)Android手機(jī)的計(jì)算器進(jìn)行測(cè)試時(shí),可以在第一終端I (如第一手機(jī))上啟動(dòng)測(cè)試事件:第一個(gè)測(cè)試操作為點(diǎn)擊“5”,在錄制該測(cè)試操作時(shí),記錄該點(diǎn)擊坐標(biāo),即“5”在第一手機(jī)的計(jì)算界面的坐標(biāo)(xl,yl),同時(shí)截取對(duì)應(yīng)該坐標(biāo)的錄制圖片A并獲取該錄制圖片A的地址Da(在實(shí)際操作中Da為具體的錄制圖片A的存儲(chǔ)位置的地址數(shù)據(jù),此處的Da僅作為地址數(shù)據(jù)的符號(hào)),則在錄制腳本中可以記錄:click (xl,yl)_Da。在該測(cè)試事件包括一個(gè)點(diǎn)擊動(dòng)作的情況下,在完成對(duì)該點(diǎn)擊動(dòng)作的錄制之后,保存錄制腳本和錄制圖片生成操作信息,并將該操作信息上傳至服務(wù)器3 (如云服務(wù)器),服務(wù)器3在接收到操作信息之后將其保存在服務(wù)器3的數(shù)據(jù)庫(kù)中。
[0178]根據(jù)本發(fā)明的上述實(shí)施例,第二終端5 (如第二手機(jī))可以向云服務(wù)器發(fā)出測(cè)試應(yīng)用程序(如計(jì)算器)的測(cè)試請(qǐng)求,云服務(wù)器在接收到測(cè)試請(qǐng)求之后,獲取與該測(cè)試請(qǐng)求對(duì)應(yīng)的操作信息,并將操作信息下發(fā)至請(qǐng)求測(cè)試的第二手機(jī),第二手機(jī)在接收到云服務(wù)器下發(fā)的操作信息之后,第二手機(jī)上運(yùn)行已經(jīng)安裝的應(yīng)用程序(如計(jì)算器),截取第二手機(jī)上與操作信息中的計(jì)算界面對(duì)應(yīng)的界面圖片B,然后依次從錄制腳本中讀取測(cè)試操作,假如第一個(gè)測(cè)試操作為點(diǎn)擊“5”,則根據(jù)錄制腳本中記錄的地址Da獲取錄制圖片A,通過本發(fā)明方法實(shí)施例中的圖片識(shí)別方法,確定界面圖片B中與操作執(zhí)行坐標(biāo)(xl,yl)對(duì)應(yīng)的操作回放坐標(biāo)(x2, y2)之后,按照操作回放坐標(biāo)(x2,y2)在第二終端的界面上執(zhí)行點(diǎn)擊操作。依據(jù)上述對(duì)計(jì)算器進(jìn)行測(cè)試的實(shí)施例,在第二終端的界面上對(duì)計(jì)算器執(zhí)行測(cè)試操作,即為在第二手機(jī)上啟動(dòng)計(jì)算器之后的計(jì)算界面上點(diǎn)擊坐標(biāo)為(x2,y2)的點(diǎn),以在第二終端上測(cè)試計(jì)算器。
[0179]在上述實(shí)施例中,具有一個(gè)測(cè)試操作的測(cè)試事件僅僅是舉例說明,實(shí)際對(duì)應(yīng)用程序的測(cè)試中,每個(gè)測(cè)試事件均可以包括一個(gè)或多個(gè)測(cè)試操作,對(duì)于每個(gè)測(cè)試操作均可以使用上述測(cè)試方法對(duì)第二終端進(jìn)行應(yīng)用程序的測(cè)試,并且在實(shí)際對(duì)應(yīng)用程序的測(cè)試中,在獲取到與測(cè)試事件中所有的操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo),并將錄制腳本中的所有操作執(zhí)行坐標(biāo)全部替換完畢之后,再按照更新后的錄制腳本中記錄的測(cè)試操作的順序依次按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0180]如圖11所示,本申請(qǐng)上述實(shí)施例三中的第一終端I可以包括如下部分:第一處理器101和加密裝置103 ;第二終端5可以包括第二處理器501:解密裝置511和實(shí)施例二中的任意一種的測(cè)試裝置513。
[0181]其中,第一處理器101,用于在啟動(dòng)第一終端上被測(cè)應(yīng)用程序的測(cè)試事件之后,記錄在第一終端的界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo),并按照預(yù)設(shè)截取像素?cái)?shù)據(jù)在第一終端的界面上截取與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,然后保存操作執(zhí)行坐標(biāo)、界面以及錄制圖片生成初始操作信息。測(cè)試事件可以包括一個(gè)或多個(gè)測(cè)試操作。
[0182]加密裝置103,與第一處理器101連接,用于將初始操作信息加密為操作信息。
[0183]解密裝置511,連接于服務(wù)器3與測(cè)試裝置513之間,用于對(duì)服務(wù)器下發(fā)的操作信息進(jìn)行解密處理得到解密后的操作信息。
[0184]根據(jù)本發(fā)明的上述實(shí)施例,在對(duì)被測(cè)應(yīng)用程序測(cè)試之前,在第一終端I上安裝被測(cè)應(yīng)用程序,通過第一處理器101啟動(dòng)在第一終端I上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作的測(cè)試事件,在啟動(dòng)測(cè)試事件之后操作被測(cè)應(yīng)用程序,記錄在操作被測(cè)應(yīng)用程序的過程中在第一終端的界面上的操作執(zhí)行坐標(biāo)以及與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,在完成對(duì)被測(cè)應(yīng)用程序的錄制之后生成錄制腳本,其中,錄制腳本中包括界面和操作執(zhí)行坐標(biāo)以及操作執(zhí)行坐標(biāo)與錄制圖片的關(guān)聯(lián)關(guān)系,保存錄制腳本和錄制圖片生成初始操作信息;加密裝置103接收到第一處理器101傳送過來的初始操作信息之后,對(duì)初始操作信息進(jìn)行加密處理得到操作信息。
[0185]上述實(shí)施例中的第一終端I還可以包括信息發(fā)送裝置105,如圖2所示,該發(fā)送裝置105連接于加密裝置103與服務(wù)器3之間,用于在得到操作信息之后,將該操作信息發(fā)送至服務(wù)器3。
[0186]具體地,上述實(shí)施例中的第二終端還可以包括請(qǐng)求發(fā)送裝置505和信息接收裝置507,該請(qǐng)求發(fā)送裝置與服務(wù)器3連接,用于向服務(wù)器發(fā)送測(cè)試請(qǐng)求,服務(wù)器3接收到測(cè)試請(qǐng)求之后,將與測(cè)試請(qǐng)求對(duì)應(yīng)的操作信息發(fā)送至對(duì)應(yīng)的第二終端,第二終端5的信息接收裝置507接收到服務(wù)器返回的操作信息之后,解密裝置511對(duì)操作信息解密得到解密后的操作信息,第二處理器501根據(jù)該解密后的操作信息識(shí)別操作回放坐標(biāo),并實(shí)現(xiàn)在第二終端上對(duì)被測(cè)應(yīng)用程序的測(cè)試。
[0187]可選地,上述實(shí)施例三中的信息發(fā)送裝置105、請(qǐng)求發(fā)送裝置505和信息接收裝置507可以是內(nèi)置于第一終端I或第二終端5的處理模塊,也可以是直接使用第一終端I或第二終端5 (如手機(jī)、平板電腦)上的網(wǎng)絡(luò)通訊裝置(如,天線)來實(shí)現(xiàn)。
[0188]上述實(shí)施例二中的啟動(dòng)模塊50、記錄模塊60、第二截圖模塊70、檢測(cè)模塊80以及保存模塊90可以設(shè)置在第一終端上,第一終端通過上述測(cè)試裝置中生成操作信息;上述實(shí)施例中的信息獲取模塊10、第一截圖模塊20、圖片識(shí)別模塊30以及測(cè)試執(zhí)行模塊40可以設(shè)置在第二處理器503中,第二終端5通過上述的處理模塊實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用程序的測(cè)試。
[0189]從以上描述中,可以看出本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果:
[0190]采用本發(fā)明,在第二終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作的過程中,獲取到在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,由于操作信息中不僅包括執(zhí)行測(cè)試操作的界面和在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo),還包括在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,在第二終端上執(zhí)行測(cè)試操作之前,對(duì)截取的第二終端上運(yùn)行界面時(shí)的界面圖片和錄制圖片進(jìn)行圖片識(shí)別,并在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)(而不是在第一終端上錄制的操作執(zhí)行坐標(biāo))在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作,不依據(jù)在第一終端上錄制的操作執(zhí)行坐標(biāo)執(zhí)行測(cè)試操作,而是通過圖片識(shí)別獲取到操作執(zhí)行坐標(biāo)在第二終端上對(duì)應(yīng)的操作回放坐標(biāo)執(zhí)行測(cè)試操作,在回放過程中不依賴于分辨率和被測(cè)應(yīng)用程序的源碼,僅僅使用坐標(biāo)便可在第二終端上確定準(zhǔn)確的測(cè)試位置(用操作回放坐標(biāo)表示該位置),然后按照操作回放坐標(biāo)在