本發(fā)明涉及計(jì)算機(jī)應(yīng)用
技術(shù)領(lǐng)域:
,具體涉及游戲自動(dòng)化測(cè)試方法及相關(guān)裝置。
背景技術(shù):
:目前市場(chǎng)上終端(例如pc機(jī)、智能終端)的種類非常之多,以安裝有安卓操作系統(tǒng)的智能手機(jī)為例,其機(jī)型多達(dá)上千款,由于不同機(jī)型使用的硬件和軟件都不一樣,所以游戲在開(kāi)發(fā)過(guò)程中以及上市之前都需要在主流機(jī)型上進(jìn)行游戲兼容性測(cè)試,以驗(yàn)證其能否正常運(yùn)行。傳統(tǒng)的游戲自動(dòng)化測(cè)試是基于錄制回放工具通過(guò)錄制坐標(biāo)序列然后回放來(lái)操作游戲,以達(dá)到自動(dòng)化測(cè)試的目的。其做法是:錄制過(guò)程:記錄測(cè)試人員在智能終端上操作游戲的測(cè)試過(guò)程。具體的,由于人對(duì)游戲中ui控件的操作,實(shí)際是對(duì)顯示屏上的坐標(biāo)的操作,例如,點(diǎn)擊某個(gè)ui控件,其實(shí)是點(diǎn)擊了與該ui控件對(duì)應(yīng)的坐標(biāo)點(diǎn)。因此,錄制回放工具會(huì)記錄測(cè)試人員因觸摸智能終端屏幕而產(chǎn)生的各種begin、move和up輸入事件對(duì)應(yīng)的坐標(biāo)信息,生成錄制記錄?;胤胚^(guò)程:測(cè)試裝置遵循時(shí)間順序(也即輸入事件的發(fā)生順序)來(lái)依次按錄制記錄中的坐標(biāo)信息模擬人對(duì)被測(cè)智能終端的屏幕的操作。傳統(tǒng)的游戲自動(dòng)化測(cè)試的缺點(diǎn)是明顯的:在現(xiàn)有自動(dòng)化測(cè)試過(guò)程中,若出現(xiàn)異常情況,例如錄制過(guò)程中出現(xiàn)的界面在回放過(guò)程中并未出現(xiàn),則后續(xù)的操作將可能完全錯(cuò)亂:假定在錄制過(guò)程中,彈出一個(gè)廣告界面,測(cè)試人員點(diǎn)擊關(guān)閉了該廣告界面,關(guān)閉廣告界面的相關(guān)輸入事件會(huì)被錄制下來(lái)(假定關(guān)閉廣告界面共對(duì)應(yīng)3個(gè)輸入事件,其操作序列號(hào)是10-12)。而在回放過(guò)程時(shí),在執(zhí)行完操作序列號(hào)為9的輸入事件后,廣告界面并未彈出。盡管廣告界面未彈出,現(xiàn)有自動(dòng)化測(cè)試方式還是會(huì)回放關(guān)閉廣告界面的相關(guān)輸入事件,從而導(dǎo)致操作錯(cuò)亂,進(jìn)而可能影響后續(xù)的回放。因此,傳統(tǒng)的游戲自動(dòng)化測(cè)試存在優(yōu)化空間。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明實(shí)施例提供一種游戲自動(dòng)化測(cè)試方法及相關(guān)裝置,以優(yōu)化游戲自動(dòng)化測(cè)試。為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:一種游戲自動(dòng)化測(cè)試方法,包括:獲取錄制文件;所述錄制文件包括多條錄制記錄,每一條錄制記錄包括:第一操作事件、與所述第一操作事件相關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息和操作序列號(hào);所述操作對(duì)象包括ui控件標(biāo)識(shí);根據(jù)所述錄制文件,執(zhí)行至少一次回放操作;其中:所述回放操作包括:獲取測(cè)試終端的當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表;所述當(dāng)前ui控件列表包括與所述測(cè)試終端的當(dāng)前游戲界面相關(guān)聯(lián)的所有ui控件標(biāo)識(shí);根據(jù)所述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次所采用的錄制記錄中的操作序列號(hào),在所述錄制文件中查找匹配的錄制記錄作為目標(biāo)錄制記錄;在所述測(cè)試終端上回放所述目標(biāo)錄制記錄。一種游戲自動(dòng)化測(cè)試裝置,包括:獲取模塊,用于獲取錄制文件;所述錄制文件包括多條錄制記錄,每一條錄制記錄包括:第一操作事件、與所述第一操作事件相關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息和操作序列號(hào);所述操作對(duì)象包括ui控件標(biāo)識(shí);回放模塊,用于根據(jù)所述錄制文件,執(zhí)行至少一次回放操作;其中:所述回放操作包括:獲取測(cè)試終端的當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表;所述當(dāng)前ui控件列表包括與所述測(cè)試終端的當(dāng)前游戲界面相關(guān)聯(lián)的所有ui控件標(biāo)識(shí);根據(jù)所述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次所采用的錄制記錄中的操作序列號(hào),在所述錄制文件中查找匹配的錄制記錄作為目標(biāo)錄制記錄;在所述測(cè)試終端上回放所述目標(biāo)錄制記錄??梢?jiàn),在本實(shí)施例中,是根據(jù)當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及操作序列號(hào)來(lái)查找匹配的錄制記錄。舉例來(lái)講,假定在錄制過(guò)程中,彈出一個(gè)廣告p,測(cè)試人員點(diǎn)擊關(guān)閉了廣告p,則錄制文件中將存在關(guān)閉廣告p對(duì)應(yīng)的錄制記錄。假設(shè)關(guān)閉廣告p對(duì)應(yīng)的錄制記錄包括第一操作事件a,與之關(guān)聯(lián)的ui控件b、場(chǎng)景信息c和操作序列號(hào)12。而在回放過(guò)程中,在測(cè)試終端上回放操作序列號(hào)為11的錄制記錄后,廣告p并未彈出,當(dāng)前游戲場(chǎng)景信息為場(chǎng)景信息c1、當(dāng)前ui控件列表包括ui控件b1,b2,b3。則根據(jù)本申請(qǐng)?zhí)峁┑姆桨?,操作序列?hào)12對(duì)應(yīng)的錄制記錄(包括ui控件b、場(chǎng)景信息c)與當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表不匹配,不會(huì)被作為目標(biāo)錄制記錄進(jìn)行回放。也即,在“錄制過(guò)程中出現(xiàn)的界面在回放過(guò)程中并未出現(xiàn)”的情況下,本申請(qǐng)?zhí)峁┑姆桨缚梢蕴^(guò)相應(yīng)的錄制記錄不進(jìn)行回放,從而不會(huì)導(dǎo)致操作錯(cuò)亂??梢?jiàn),本實(shí)施例所提供的技術(shù)方案強(qiáng)壯了回放過(guò)程,優(yōu)化了游戲自動(dòng)化測(cè)試。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖1a和圖1b為本發(fā)明實(shí)施例提供的應(yīng)用場(chǎng)景示意圖;圖2為本發(fā)明實(shí)施例提供的服務(wù)器或終端的計(jì)算機(jī)架構(gòu)示例圖;圖3為本發(fā)明實(shí)施例提供的游戲當(dāng)前界面及ui控件樹(shù)示意圖;圖4-8,10為本發(fā)明實(shí)施例提供的游戲自動(dòng)化測(cè)試方法示例性流程圖;圖9為本發(fā)明實(shí)施例提供的回放報(bào)告示例圖;圖11為本發(fā)明實(shí)施例提供的游戲自動(dòng)化測(cè)試裝置或服務(wù)器的示例性結(jié)構(gòu)圖;圖12為本發(fā)明實(shí)施例提供的測(cè)試終端的示例性結(jié)構(gòu)圖。具體實(shí)施方式本發(fā)明可能使用的技術(shù)名詞、簡(jiǎn)寫(xiě)或縮寫(xiě)如下:手游:手機(jī)游戲,相對(duì)于運(yùn)行在pc機(jī)上的游戲而言,主要是指運(yùn)行在終端及平臺(tái)上的游戲;游戲兼容性測(cè)試:由于市場(chǎng)上終端的種類非常之多,以安裝有安卓操作系統(tǒng)的智能手機(jī)為例,其機(jī)型多達(dá)上千款,由于不同機(jī)型使用的硬件和軟件都不一樣,所以游戲在開(kāi)發(fā)過(guò)程中以及上市之前都需要在主流機(jī)型上進(jìn)行兼容性測(cè)試,以驗(yàn)證其能否正常運(yùn)行,這便是游戲兼容性測(cè)試;unity引擎:unity引擎是用于創(chuàng)建三維游戲、建筑可視化等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開(kāi)發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。目前市面上100%的游戲使用unity引擎制作;ui:用戶界面;ui控件:用戶界面控件,例如,請(qǐng)參見(jiàn)圖3,圖3左側(cè)為一游戲界面,在該界面上有兩個(gè)ui控件,即“與微信好友玩”按鈕和“與qq好友玩”按鈕。實(shí)際上,ui控件是與圖右所示的ui控件樹(shù)上的某一gameobject(節(jié)點(diǎn))相對(duì)應(yīng)。每一ui控件對(duì)應(yīng)ui控件樹(shù)上的一個(gè)節(jié)點(diǎn)。ui控件對(duì)應(yīng)的gameobject的名稱即為ui控件的控件名稱。例如,“與qq好友玩”按鈕對(duì)應(yīng)的節(jié)點(diǎn)的路徑為:"/bootobj/cuimanager/form_login/logincontainer/pnlmobilelogin/btngroup/btnqq"。其中,“與qq好友玩”的控件名稱是tnqq,其父親節(jié)點(diǎn)名稱為btngroup,而btngroup的父親節(jié)點(diǎn)是pnlmobilelogin,以此類推。ngui:next-genuikit,ngui是unity引擎上一套功能強(qiáng)大的ui和事件傳遞框架;ugui:與ngui類似,ugui是unity官方出品的一套u(yù)i和事件傳遞框架??捎糜趧?chuàng)建按鈕、滑動(dòng)欄等ui控件,處理按鈕對(duì)應(yīng)的點(diǎn)擊事件等;wetest平臺(tái):云端手機(jī)管理系統(tǒng),管理實(shí)驗(yàn)室?guī)装倥_(tái)手機(jī)。通過(guò)wetest平臺(tái)能夠獲取某一部手機(jī)的屏幕轉(zhuǎn)向、長(zhǎng)寬、截圖等服務(wù);wetest平臺(tái)可包括多個(gè)云端服務(wù)器。sdk:軟件開(kāi)發(fā)包;adb:androiddebugbridge,google提供,android開(kāi)發(fā)工具之一。主要的作用是,提供電腦和智能終端之間交互服務(wù)。通過(guò)usb線,電腦上的軟件能夠直接訪問(wèn)智能終端,連接智能終端。本發(fā)明提供游戲自動(dòng)化測(cè)試方法、應(yīng)用于服務(wù)器的游戲自動(dòng)化測(cè)試裝置、測(cè)試終端及游戲自動(dòng)化測(cè)試系統(tǒng)。上述服務(wù)器具體可為本地服務(wù)器(例如普通的個(gè)人計(jì)算機(jī))或云端服務(wù)器。本地服務(wù)器可連接一臺(tái)被測(cè)試的終端(簡(jiǎn)單為測(cè)試終端),而云端服務(wù)器可連接多臺(tái)測(cè)試終端。測(cè)試終端可為pc端,也可為智能終端,例如手機(jī)、ipad等。在測(cè)試終端中安裝有待測(cè)試的游戲(簡(jiǎn)稱為測(cè)試游戲)。圖1a和圖1b示出了上述游戲自動(dòng)化測(cè)試系統(tǒng)的一種示例性結(jié)構(gòu),該系統(tǒng)至少包括服務(wù)器和智能終端(測(cè)試終端)。需要說(shuō)明的是,雖然圖1a和圖1b示出的游戲自動(dòng)化測(cè)試系統(tǒng)僅包含了一臺(tái)終端和一臺(tái)本地服務(wù)器,但不應(yīng)理解為游戲自動(dòng)化測(cè)試系統(tǒng)僅限于包含一臺(tái)測(cè)試終端和一臺(tái)服務(wù)器。游戲自動(dòng)化測(cè)試系統(tǒng)可包含多個(gè)云端服務(wù)器,每一云端服務(wù)器可連接多臺(tái)測(cè)試終端。服務(wù)器中包含自動(dòng)化測(cè)試裝置(或自動(dòng)化測(cè)試模塊),自動(dòng)化測(cè)試裝置可進(jìn)一步劃分為錄制工具和回放工具。錄制工具可安裝在服務(wù)器上,也可直接安裝在測(cè)試終端上,而回放工具則可安裝在服務(wù)器上。在一個(gè)示例中,服務(wù)器中存儲(chǔ)有python腳本(游戲自動(dòng)化測(cè)試腳本),通過(guò)運(yùn)行python腳本,可實(shí)現(xiàn)自動(dòng)化測(cè)試裝置/模塊的功能,執(zhí)行上述游戲自動(dòng)化測(cè)試方法。對(duì)于云端服務(wù)器,前述介紹了可連接多臺(tái)終端。一臺(tái)終端對(duì)應(yīng)一個(gè)wetest服務(wù)進(jìn)程,對(duì)應(yīng)運(yùn)行一次腳本。舉例來(lái)講,云端服務(wù)器連接10臺(tái)終端,則有10個(gè)wetest服務(wù)進(jìn)程,腳本會(huì)運(yùn)行10次。在另一個(gè)示例中,自動(dòng)化測(cè)試裝置可以硬件的形式安裝于服務(wù)器中。測(cè)試終端中安裝有測(cè)試游戲,為了配合服務(wù)器完成游戲自動(dòng)化測(cè)試,上述測(cè)試游戲嵌入了wetestsdk。其中:wetestsdk可視為游戲的組件,可提供游戲控件(特別是ui控件)id查詢、控件位置查詢、交互操作等(例如點(diǎn)擊、長(zhǎng)按、滑動(dòng)等)。在游戲啟動(dòng)時(shí),wetestsdk隨之啟動(dòng),并會(huì)開(kāi)啟一個(gè)socket服務(wù),監(jiān)聽(tīng)來(lái)自python腳本的請(qǐng)求。當(dāng)然,wetestsdk是在自動(dòng)化測(cè)試過(guò)程中安裝在游戲中的。真正發(fā)行的游戲版本中不包含wetestsdk。手游的ui控件可由unity引擎的ngui或ugui開(kāi)發(fā)。因此,wetestsdk可有兩個(gè)版本,一個(gè)針對(duì)ngui,一個(gè)針對(duì)ugui。python腳本:可通過(guò)adb與wetestsdk通信。其功能可包含檢查游戲當(dāng)前界面,決定操作行為,判定執(zhí)行結(jié)果等。uiautomator:可用于查看安卓系統(tǒng)標(biāo)準(zhǔn)ui控件。錄制工具:可通過(guò)與wetestsdk通訊完成錄制過(guò)程;回放工具:可通過(guò)與wetestsdk通訊完成回放過(guò)程。圖2示出了上述游戲自動(dòng)化測(cè)試裝置的一種通用計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。上述計(jì)算機(jī)系統(tǒng)可包括總線、處理器1、存儲(chǔ)器2、通信接口3。在一個(gè)示例中,上述計(jì)算機(jī)系統(tǒng)還可包括輸入設(shè)備4和輸出設(shè)備5。上述處理器1、存儲(chǔ)器2、通信接口3、輸入設(shè)備4和輸出設(shè)備5通過(guò)總線相互連接。其中:總線可包括一通路,在計(jì)算機(jī)系統(tǒng)各個(gè)部件之間傳送信息。處理器1可以是通用處理器,例如通用中央處理器(cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡(jiǎn)稱np)、微處理器等,也可以是特定應(yīng)用集成電路(application-specificintegratedcircuit,asic),或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路。還可以是數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。處理器1可包括主處理器,在一個(gè)示例中,還可包括顯卡、基帶芯片、調(diào)制解調(diào)器等。存儲(chǔ)器2中保存有執(zhí)行本發(fā)明技術(shù)方案的程序或腳本,還可以保存有操作系統(tǒng)和其他關(guān)鍵業(yè)務(wù)。具體地,程序可以包括程序代碼,程序代碼包括計(jì)算機(jī)操作指令。腳本則通常以文本(如ascii)保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。更具體的,存儲(chǔ)器2可以包括只讀存儲(chǔ)器(read-onlymemory,rom)、可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備、磁盤存儲(chǔ)器、flash等等。輸入設(shè)備4可包括接收用戶輸入的數(shù)據(jù)和信息的裝置,例如鍵盤、鼠標(biāo)、攝像頭、掃描儀、光筆、語(yǔ)音輸入裝置、觸摸屏、計(jì)步器或重力感應(yīng)器等。輸出設(shè)備5可包括允許輸出信息給用戶的裝置,例如顯示屏、打印機(jī)、揚(yáng)聲器等。通信接口3可包括使用任何收發(fā)器一類的裝置,以便與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無(wú)線接入網(wǎng)(ran),無(wú)線局域網(wǎng)(wlan)等。處理器1執(zhí)行存儲(chǔ)器2中所存放的程序,以及調(diào)用其他設(shè)備,可用于實(shí)現(xiàn)下述圖4-8,10所示實(shí)施例提供的游戲自動(dòng)化測(cè)試方法。此外,上述服務(wù)器或測(cè)試終端也可采用圖1所示的通用計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。下面將基于上面所述的本發(fā)明涉及的共性方面,對(duì)本發(fā)明實(shí)施例進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明的技術(shù)方案的實(shí)施基于錄制過(guò)程中生成的不同于現(xiàn)有錄制記錄的錄制記錄。為便于理解,先介紹錄制過(guò)程。圖4示出了上述錄制過(guò)程的一種示例性流程。圖4所示的方法應(yīng)用于上述圖1a或圖1b提及的應(yīng)用場(chǎng)景中,在硬件上,由圖4所示的服務(wù)器與測(cè)試終端交互完成。請(qǐng)參見(jiàn)圖4,錄制過(guò)程示例性得可包括:在401部分:參考終端確定發(fā)生的每一第一操作事件,以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào);參考終端為錄制過(guò)程中測(cè)試者使用的終端,一般為某種型號(hào)的手機(jī)。參考終端中也安裝了測(cè)試游戲。在一個(gè)示例中,可由該測(cè)試游戲中的wetestsdk來(lái)確定第一操作事件及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào)。需說(shuō)明的是,在后續(xù)的回放過(guò)程中,也會(huì)出現(xiàn)操作事件,為了區(qū)分,將錄制過(guò)程中出現(xiàn)的操作事件稱為第一操作事件。與第一操作事件相關(guān)聯(lián)的操作對(duì)象是指,第一操作事件所操作的響應(yīng)類ui控件的標(biāo)識(shí)(簡(jiǎn)稱為ui控件標(biāo)識(shí))。ui控件標(biāo)識(shí)具體可為上述響應(yīng)類ui控件對(duì)應(yīng)的gameobject的路徑。舉例來(lái)講,假定測(cè)試者點(diǎn)擊了圖3中的“與qq好友玩”按鈕,而“與qq好友玩”按鈕對(duì)應(yīng)的路徑是:"/bootobj/cuimanager/form_login/logincontainer/pnlmobilelogin/btngroup/btnqq"。則可使用上述路徑作為ui控件標(biāo)識(shí)。需要指出的是,第一操作事件可能有相應(yīng)的操作對(duì)象。舉例來(lái)講,測(cè)試者點(diǎn)擊一塊石頭的ui控件,該ui控件并不會(huì)響應(yīng)點(diǎn)擊操作,則石頭對(duì)應(yīng)的ui控件標(biāo)識(shí)不能作為操作對(duì)象。在諸如此類的情況下,第一操作事件并不對(duì)應(yīng)操作對(duì)象。場(chǎng)景信息用于表征游戲當(dāng)前場(chǎng)景,場(chǎng)景信息是unity里特有的。更具體的,場(chǎng)景信息可包括unity當(dāng)前游戲界面歸屬的scene名稱。舉例來(lái)講,當(dāng)前游戲界面為登錄界面,則其歸屬的scene名稱為login。操作序列號(hào)則用于表征某一第一操作事件在錄制過(guò)程中的執(zhí)行順序。例如,第一個(gè)第一操作事件的操作序列號(hào)為1,第二個(gè)第一操作事件的操作序列號(hào)為2,第三個(gè)第一操作事件的操作序列號(hào)為3等等,以此類推,不作贅述。需要說(shuō)明的是,在pc機(jī)上,人可通過(guò)鼠標(biāo)、鍵盤等輸入設(shè)備進(jìn)行點(diǎn)擊、長(zhǎng)按或滑動(dòng)等操作,當(dāng)然若pc機(jī)上的屏幕為觸摸屏,也可通過(guò)觸摸屏進(jìn)行點(diǎn)擊、長(zhǎng)按或滑動(dòng)等操作。而在移動(dòng)設(shè)備(智能終端)上,人一般通過(guò)觸摸屏進(jìn)行點(diǎn)擊、長(zhǎng)按或滑動(dòng)等操作。上述點(diǎn)擊、長(zhǎng)按或滑動(dòng)等操作方式或操作類型,會(huì)對(duì)應(yīng)有操作位置(顯示屏坐標(biāo)系下的坐標(biāo))。例如,測(cè)試者點(diǎn)擊了某一ui控件,點(diǎn)擊位置為(x=300y=400)。則相應(yīng)的第一操作事件可表示為click:x=300y=400。實(shí)際中,測(cè)試者的一個(gè)操作與下一操作之間是有停頓的。為了在回放過(guò)程中可以模擬測(cè)試者的真實(shí)操作,則需要記錄某一操作事件與下一操作事件之間的時(shí)間間隔(以sleep表示)。因此,第一操作事件具體可包括第一操作方式、在參考終端的顯示屏坐標(biāo)系下的第一操作位置,以及與下一第一操作事件的時(shí)間間隔;其中,第一操作方式可包括點(diǎn)擊(click)、長(zhǎng)按(press)、滑動(dòng)(swipe);第一操作位置指在參考終端的顯示屏坐標(biāo)系下的操作位置。本文后續(xù)還會(huì)對(duì)第一操作事件進(jìn)行具體的介紹。在402部分:參考終端根據(jù)上述第一操作事件以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào)生成一條錄制記錄,并保存至錄制文件。在一個(gè)示例中,可由測(cè)試游戲中的wetestsdk生成錄制記錄,發(fā)送給錄制工具,錄制工具將其保存至錄制文件。在另一個(gè)示例中,也可由測(cè)試游戲中的wetestsdk在生成錄制記錄后,保存至本地的錄制文件。最后錄制結(jié)束時(shí),將本地保存的錄制文件輸出給錄制工具。其中,每一條錄制記錄可包括:第一操作事件、與之相關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息和操作序列號(hào)。在一個(gè)示例中,錄制記錄的格式可如下表1所示:sceneindexelementaction表1其中,scene表示場(chǎng)景信息(場(chǎng)景名稱);index表示操作序列號(hào);element表示操作對(duì)象(ui控件標(biāo)識(shí)),element可能為空;actions表示第一操作事件。或者,在另一個(gè)示例中,錄制記錄的格式可如下所示:(第一條錄制記錄)login,1,/root/login/qqbutton,(clickx=300y=400sleep=3秒);(第二條錄制記錄)gamestart,2,/root/game/attack,(pressx=300y=400press=2秒,sleep=1秒);(第三條錄制記錄)gamestart,3,/root/game/attack,/root/game/attack,(swipestart_x=300start_y=400move=[(250,220)]end_x=150end_y=50duration=2秒,sleep=1秒);在第一條錄制記錄中,login是場(chǎng)景名稱(即場(chǎng)景信息),后面的1是操作序列號(hào),“/root/login/qqbutton”是ui控件的標(biāo)識(shí)(以路徑作為標(biāo)識(shí)),而(clickx=300y=400sleep=3秒)表示第一操作事件。其中,click表示第一操作方式,“x=300y=400”表示第一操作位置,而sleep=3秒表示本操作事件與下一操作事件之間的時(shí)間間隔為3秒。在第二條錄制記錄的第一操作事件中,第一操作方式則包括了press以及press=2秒,其中的“press”表示操作類型為長(zhǎng)按,press=2秒表示長(zhǎng)按的持續(xù)時(shí)長(zhǎng)為2秒;而在第三條錄制記錄的第一操作事件中,第一操作方式包括了swipe以及duration=2秒,其中,“swipe”表示操作類型為滑動(dòng),duration=2秒表示滑動(dòng)的持續(xù)時(shí)長(zhǎng)為2秒;而第一操作位置則包括“start_x=300start_y=400move=[(250,220)]end_x=150end_y=50”。需要說(shuō)明的是,在滑動(dòng)過(guò)程中,測(cè)試者會(huì)將手指放在屏幕上,然后手指在屏幕上滑動(dòng)一段時(shí)間(距離)后抬起手指。在此過(guò)程中,會(huì)產(chǎn)生begin輸入事件(對(duì)應(yīng)手指放在屏幕上),up輸入事件(對(duì)應(yīng)手指抬起),在begin輸入事件與up輸入事件之間,還會(huì)產(chǎn)生move輸入事件。在本申請(qǐng)中,是將begin、up和move三類輸入事件合并為一個(gè)(第一)操作事件。在第三條錄制記錄中的“start_x=300start_y=400”對(duì)應(yīng)的是手指放在屏幕上時(shí)在參考終端的顯示屏坐標(biāo)系下的位置,“end_x=150end_y=50”對(duì)應(yīng)的是手指抬起時(shí)在參考終端的顯示屏坐標(biāo)系下的位置,move=[(250,220)]表示move輸入事件在參考終端的顯示屏坐標(biāo)系下的位置。還需要說(shuō)明的是,第三條錄制記錄中包括兩個(gè)ui控件的標(biāo)識(shí),上述兩個(gè)ui控件的標(biāo)識(shí)可能相同,也可能不同。其中,第一個(gè)ui控件的標(biāo)識(shí)與“start_x=300start_y=400”相關(guān)聯(lián),表征的是手指放在屏幕上時(shí)所操作的響應(yīng)類ui控件,第二個(gè)ui控件的標(biāo)識(shí)與“end_x=150end_y=50”相關(guān)聯(lián),表征的是手指抬起時(shí)所操作的響應(yīng)類ui控件。此外,錄制記錄中還可包括回放次數(shù)。用于表征該條錄制記錄在回放過(guò)程中被回放的次數(shù)。需要指出的是,在現(xiàn)有的錄制記錄中,僅包括了操作序列號(hào)和操作位置。這就決定了,現(xiàn)有的回放方式僅可嚴(yán)格按時(shí)間順序依次執(zhí)行錄制記錄。而在本實(shí)施例中,錄制記錄中還包括了操作對(duì)象、場(chǎng)景信息,操作對(duì)象和場(chǎng)景信息在后續(xù)的回放過(guò)程中,起到了重要的作用。本文后續(xù)將進(jìn)行介紹。下面,將更詳細(xì)得介紹如何生成錄制文件。圖5示出了上述錄制過(guò)程的另一種示例性流程,可包括:在500部分:測(cè)試者啟動(dòng)測(cè)試游戲開(kāi)啟錄制工具。例如,測(cè)試者點(diǎn)開(kāi)游戲的app,然后開(kāi)啟錄制工具。理論上講,可在任意時(shí)間點(diǎn)開(kāi)啟錄制工具進(jìn)行錄制,但為了完整得測(cè)試游戲,一般會(huì)選擇在開(kāi)啟測(cè)試游戲之后就開(kāi)啟錄制工具。在501部分:錄制工具或wetestsdk判斷錄制是否結(jié)束,若是,進(jìn)入509部分,否則進(jìn)入502部分。當(dāng)游戲結(jié)束,或測(cè)試者手動(dòng)結(jié)束錄制(例如點(diǎn)擊了錄制工具的結(jié)束按鈕)時(shí),都可導(dǎo)致錄制結(jié)束。無(wú)論哪種情況,都會(huì)造成wetestsdk與錄制工具之間斷開(kāi)通訊,因此,錄制工具或wetestsdk可通過(guò)判斷是否與對(duì)方斷開(kāi)通訊,來(lái)判斷錄制是否結(jié)束。在502部分:wetestsdk等待用戶操作游戲(監(jiān)聽(tīng))。在503部分:wetestsdk獲取測(cè)試者觸摸上述參考終端的顯示屏而產(chǎn)生的輸入事件,判斷輸入事件的類型(階段)。若上述輸入事件為begin輸入事件,進(jìn)入504部分,若輸入事件的類型為up或move輸入事件,進(jìn)入505部分;輸入事件類型可為begin、move、up。也即,某一輸入事件具體可為begin輸入事件、move輸入事件或up輸入事件。以點(diǎn)擊操作為例,測(cè)試者會(huì)將手指放在屏幕上進(jìn)行短暫的按壓,然后抬起手指。在此過(guò)程中,會(huì)產(chǎn)生begin輸入事件(對(duì)應(yīng)手指放在屏幕上),up輸入事件(對(duì)應(yīng)手指抬起)。在begin輸入事件與up輸入事件之間,還可能產(chǎn)生move輸入事件。尤其在滑動(dòng)操作過(guò)程中,測(cè)試者在將手指放在屏幕上后,還會(huì)在屏幕上滑動(dòng)一段距離再抬起手指。因此,在滑動(dòng)操作對(duì)應(yīng)的begin輸入事件與up輸入事件之間,會(huì)有多個(gè)move輸入事件。在504部分:wetestsdk查找begin輸入事件對(duì)應(yīng)的當(dāng)前操作ui控件(響應(yīng)類ui控件)的標(biāo)識(shí);那么,如何確認(rèn)begin輸入事件對(duì)應(yīng)的ui控件是否為響應(yīng)類控件呢?請(qǐng)參見(jiàn)圖6,對(duì)于ngui開(kāi)發(fā)的控件,wetestsdk可通過(guò)反射調(diào)用uicamera.raycast方法,獲取當(dāng)前坐標(biāo)下對(duì)應(yīng)的gameobject。如果查找到的gameobject中包含有uibutton、uitoggle、uiinput、uieventlistenser等組件,則表示該gameobject對(duì)應(yīng)的ui控件為響應(yīng)類控件或當(dāng)前操作控件,該gameobject的路徑將作為該begin輸入事件對(duì)應(yīng)的當(dāng)前操作ui控件的標(biāo)識(shí);而如果不包括上述組件,則表示該gameobject對(duì)應(yīng)的ui控件為非響應(yīng)類控件,后續(xù)也不會(huì)將該gameobject的路徑作為該begin輸入事件對(duì)應(yīng)的當(dāng)前操作ui控件的標(biāo)識(shí)。對(duì)于ugui開(kāi)發(fā)的控件,wetestsdk可通過(guò)eventsystem.current.raycastall()方法,獲取當(dāng)前坐標(biāo)下的所有g(shù)ameobject。如果raycastall返回多個(gè)gameobject,則查找第一個(gè)gameobject及其父節(jié)點(diǎn)中是否包含有ieventsystemhandler組件,如果是,表示該gameobject對(duì)應(yīng)的ui控件為響應(yīng)類控件或當(dāng)前操作控件。否則,表示該gameobject對(duì)應(yīng)的ui控件為非響應(yīng)類控件,后續(xù)也不會(huì)將該gameobject的路徑作為錄制記錄的ui控件標(biāo)識(shí)。此外,也可采用類似的方式來(lái)查找up輸入事件對(duì)應(yīng)的當(dāng)前操作ui控件(響應(yīng)類ui控件)的標(biāo)識(shí),在此不作贅述。在505部分:wetestsdk記錄該輸入事件。輸入事件可包括發(fā)生時(shí)刻、顯示屏坐標(biāo)和類型。在506部分:若輸入事件為up輸入事件,wetestsdk將該up輸入事件、該up輸入事件之前的begin輸入事件,以及二者之間的move輸入事件,合并為一個(gè)第一操作事件。需要說(shuō)明的是,在現(xiàn)有方式中,是直接記錄了輸入事件對(duì)應(yīng)的錄制記錄,并未對(duì)輸入事件進(jìn)行合并。而在本實(shí)施例中,則對(duì)輸入事件進(jìn)行合并,這樣可減少wetestsdk與錄制工具之間的傳輸流量。更具體的,可將begin輸入事件、up輸入事件,以及二者之間的move輸入事件,合并為click、press或swipe操作事件。如何合并將在后續(xù)說(shuō)明。在507部分:wetestsdk獲取與第一操作事件相關(guān)聯(lián)的場(chǎng)景信息及操作序列號(hào)。場(chǎng)景信息及操作序列號(hào)相關(guān)內(nèi)容請(qǐng)參見(jiàn)前述的401部分的介紹,在此不作贅述。在508部分:wetestsdk根據(jù)上述第一操作事件以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào)生成一條錄制記錄,并發(fā)送至錄制工具。相關(guān)內(nèi)容請(qǐng)參見(jiàn)前述的402部分,在此不作贅述。錄制工具會(huì)將接收到的錄制記錄保存至錄制文件。此外,錄制工具或wetestsdk還會(huì)根據(jù)與第i個(gè)第一操作事件相關(guān)聯(lián)的begin輸入事件的發(fā)生時(shí)刻,以及與第i-1個(gè)第一操作事件相關(guān)聯(lián)的up輸入事件的發(fā)生時(shí)刻,計(jì)算得到第i-1個(gè)第一操作事件的時(shí)間間隔(sleep)。舉例來(lái)講,假定與第0個(gè)第一操作事件關(guān)聯(lián)的up輸入事件的發(fā)生時(shí)刻為12:00,而與第1個(gè)第一操作事件相關(guān)聯(lián)的begin輸入事件的發(fā)生時(shí)刻12:05,則第0個(gè)操作事件的sleep=5秒。在509部分:錄制結(jié)束。下面將介紹將輸入事件合并為第一操作事件的具體方式。請(qǐng)考慮以下三種情況:情況一(第一條件):up輸入事件與之前(請(qǐng)注意指的是發(fā)生時(shí)刻位于up輸入事件之前)的begin輸入事件間的時(shí)間差小于預(yù)設(shè)時(shí)長(zhǎng),同時(shí),二者距離小于預(yù)設(shè)距離。在此情況下,將begin輸入事件、up輸入事件,以及二者間的move輸入事件,合并成操作方式為點(diǎn)擊(click)的第一操作事件。在一個(gè)示例中,預(yù)設(shè)時(shí)長(zhǎng)可取200ms,預(yù)設(shè)距離可取50pix(像素)。舉例來(lái)講,若begin輸入事件與up輸入事件的時(shí)間差在200ms以內(nèi),且begin輸入事件的坐標(biāo)與up輸入事件的坐標(biāo)的距離在50pix以內(nèi),則將該begin輸入事件、up輸入事件,以及二者間的move輸入事件,合并為一個(gè)click事件。或者,也可在begin輸入事件與up輸入事件的時(shí)間差在200ms以內(nèi),并且up輸入事件、begin輸入事件以及中間的move輸入事件,兩兩間距均小于預(yù)設(shè)距離時(shí),將begin輸入事件、up輸入事件,以及中間的move輸入事件,合并成操作方式為點(diǎn)擊(click)的第一操作事件。情況二(第二條件):up輸入事件與之前的begin輸入事件間的時(shí)間差大于上述預(yù)設(shè)時(shí)長(zhǎng),同時(shí),二者距離小于上述預(yù)設(shè)距離?;蛘撸部稍趗p輸入事件與之前的begin輸入事件間的時(shí)間差大于預(yù)設(shè)時(shí)長(zhǎng),并且,up輸入事件、begin輸入事件以及中間的move輸入事件,兩兩間距均小于預(yù)設(shè)距離時(shí),將begin輸入事件、up輸入事件,以及中間的move輸入事件,合并成操作方式為一個(gè)press事件。其他情況下,將begin輸入事件、up輸入事件,以及二者間的move輸入事件,合并成操作方式為滑動(dòng)的第一操作事件。舉例來(lái)講,若begin輸入事件與up輸入事件的時(shí)間差大于200ms,begin輸入事件與up輸入事件的坐標(biāo)間的距離也大于50pix則將該begin輸入事件、up輸入事件,以及二者間的move輸入事件,合并為一個(gè)swipe事件。此外,在一個(gè)示例中,還可對(duì)begin輸入事件與up輸入事件之間的move輸入事件進(jìn)行采樣,即抽取部分move輸入事件,以減少move輸入事件的數(shù)量;然后,將begin輸入事件、up輸入事件,以及抽取的部分move輸入事件,合并為一個(gè)swipe事件。舉例來(lái)講,假定在begin輸入事件與up輸入事件之間有100個(gè)move輸入事件,可抽取其中的20個(gè)move輸入事件,將這20個(gè)move輸入事件與begin輸入事件和up輸入事件合并為一個(gè)swipe事件。對(duì)move輸入事件采樣,可進(jìn)一步減少wetestsdk與錄制工具之間的傳輸流量。在介紹完錄制過(guò)程后,本文后續(xù)將介紹回放過(guò)程。圖7示出了上述錄制過(guò)程的另一種示例性流程。圖7所示的方法應(yīng)用于上述圖1a或圖1b提及的應(yīng)用場(chǎng)景中,在硬件上,由圖7所示的服務(wù)器與測(cè)試終端交互完成。在700部分:服務(wù)器在測(cè)試終端上安裝、啟動(dòng)測(cè)試游戲;在一個(gè)示例中,可由服務(wù)器的回放工具(python腳本實(shí)現(xiàn))自動(dòng)在測(cè)試終端上安裝、啟動(dòng)測(cè)試游戲。在701部分:服務(wù)器獲取錄制文件。在一個(gè)示例中,可由服務(wù)器的回放工具獲取錄制文件。上述錄制文件包括多條錄制記錄。錄制記錄的相應(yīng)描述可參見(jiàn)前述402部分的介紹,在此不作贅述。在702部分:服務(wù)器判斷是否滿足回放結(jié)束條件,若否,進(jìn)入703部分以執(zhí)行一次回放操作,若是,進(jìn)入回放結(jié)束步驟。在一個(gè)示例中,可由服務(wù)器上的回放工具執(zhí)行702部分?;胤沤Y(jié)束條件可包括游戲退出,或者,回放到最后一條錄制記錄,或者,回放率達(dá)到閥值(例如80%)。后續(xù)將介紹如何計(jì)算回放率。其中,游戲退出與否,可通過(guò)判斷與wetestsdk之間的通訊是否中斷來(lái)實(shí)現(xiàn)。在703部分:服務(wù)器獲取測(cè)試終端的當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表。當(dāng)前場(chǎng)景信息可為unity當(dāng)前游戲界面歸屬的scene名稱。舉例來(lái)講,當(dāng)前游戲界面為登錄界面,則其歸屬的scene名稱為login。當(dāng)前ui控件列表包括與當(dāng)前游戲界面相關(guān)聯(lián)的所有ui控件標(biāo)識(shí)。更具體的,當(dāng)前ui控件列表包括的是與當(dāng)前游戲界面相關(guān)聯(lián)的所有響應(yīng)類ui控件的標(biāo)識(shí)。舉例來(lái)講,當(dāng)前游戲界面關(guān)聯(lián)了石頭的控件,但該控件并不響應(yīng)點(diǎn)擊、長(zhǎng)按、滑動(dòng)等操作,則石頭的控件標(biāo)識(shí)不會(huì)出現(xiàn)在當(dāng)前ui控件列表中。在一個(gè)示例中,服務(wù)器中的回放工具可向游戲中的wetestsdk發(fā)送當(dāng)前ui控件列表請(qǐng)求消息,wetestsdk則將查找出的、與當(dāng)前游戲界面關(guān)聯(lián)的所有響應(yīng)類ui控件的標(biāo)識(shí)反饋給回放工具。在704部分:服務(wù)器根據(jù)上述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表,以及上一次所采用的錄制記錄中的操作序列號(hào),在錄制文件中查找匹配的錄制記錄,如查找出匹配的錄制記錄,進(jìn)入705部分,否則,進(jìn)入706部分。在一個(gè)示例中,可在錄制文件中查找與上述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次回放操作所采用的錄制記錄中的操作序列號(hào)均匹配的錄制記錄作為匹配的錄制記錄;當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表和操作序列號(hào)相關(guān)描述請(qǐng)參見(jiàn)前述記載,在此不作贅述。舉例來(lái)講,假定當(dāng)前場(chǎng)景名稱為01,ui控件列表包括ui控件a-e,上一次采用的錄制記錄的操作序列號(hào)為005;而在錄制文件中,在場(chǎng)景名稱01下有五條錄制記錄,示例性得為:場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件(click),操作序列號(hào)006;場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件(press),操作序列號(hào)010;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件(press),操作序列號(hào)100;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件(swipe),操作序列號(hào)101;場(chǎng)景名稱01,ui標(biāo)識(shí)f,第一操作事件(swipe),操作序列號(hào)120。則操作序列號(hào)006的錄制記錄與當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次回放操作所采用的錄制記錄中的操作序列號(hào)(006緊鄰005,在執(zhí)行時(shí)序上是銜接的)均匹配,則006對(duì)應(yīng)的錄制記錄(最優(yōu)匹配錄制記錄)即為匹配的錄制記錄。若未查找出與上述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次回放操作所采用的錄制記錄中的操作序列號(hào)均匹配的錄制記錄時(shí),可將與當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表相匹配的錄制記錄(次優(yōu)匹配錄制記錄)作為匹配的錄制記錄。可見(jiàn),在本申請(qǐng)中,在沒(méi)有最優(yōu)匹配錄制記錄情況下,可使用相對(duì)接近的次優(yōu)匹配錄制記錄繼續(xù)進(jìn)行回放,回放過(guò)程更加健壯。而若既未查找到與上述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次回放操作所采用的錄制記錄中的操作序列號(hào)均匹配的錄制記錄,也未查找到與當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表相匹配的錄制記錄,則確定未查找到出匹配的錄制記錄。在705部分:服務(wù)器在上述測(cè)試終端上回放上述目標(biāo)錄制記錄(即查找出的匹配的錄制記錄)。除回放目標(biāo)錄制記錄外,服務(wù)器中的游戲自動(dòng)化測(cè)試裝置/模塊還可執(zhí)行性能數(shù)據(jù)采集、終端日志采集、crash檢測(cè)等。在本發(fā)明其他實(shí)施例中,還可記錄目標(biāo)錄制記錄的回放次數(shù)。需要說(shuō)明的是,705部分需要服務(wù)器中的回放工具與wetestsdk之間交互才能實(shí)現(xiàn)??蓪⒛繕?biāo)錄制記錄中的第一操作事件稱為目標(biāo)第一操作事件,將目標(biāo)錄制記錄中的ui控件標(biāo)識(shí)所表征的控件稱為目標(biāo)ui控件。在一個(gè)示例中時(shí),服務(wù)器中的回放工具可根據(jù)上述目標(biāo)第一操作事件,確定針對(duì)目標(biāo)ui控件的第二操作事件,并通知測(cè)試終端(中的wetestsdk)執(zhí)行確定出的第二操作事件(可將指示測(cè)試終端執(zhí)行第二操作事件的通知稱為第一通知)。第二操作事件包括第二操作方式,在測(cè)試終端的顯示屏坐標(biāo)系下的第二操作位置,以及,預(yù)設(shè)等待時(shí)長(zhǎng)。本文后續(xù)將進(jìn)行詳細(xì)介紹如何根據(jù)目標(biāo)第一操作事件,確定針對(duì)目標(biāo)ui控件的第二操作事件。需要強(qiáng)調(diào)的是,在本實(shí)施例中,是根據(jù)當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及操作序列號(hào)來(lái)查找匹配的錄制記錄。舉例來(lái)講,假定在錄制過(guò)程中,彈出一個(gè)廣告p,測(cè)試人員點(diǎn)擊關(guān)閉了廣告p,則錄制文件中將存在關(guān)閉廣告p對(duì)應(yīng)的錄制記錄。可假設(shè)關(guān)閉廣告p對(duì)應(yīng)的錄制記錄包括第一操作事件a,與之關(guān)聯(lián)的ui控件b、場(chǎng)景信息c和操作序列號(hào)12。而在回放過(guò)程中,在測(cè)試終端上回放操作序列號(hào)為11的錄制記錄后,廣告p并未彈出,假設(shè)當(dāng)前游戲場(chǎng)景信息為場(chǎng)景信息c1、當(dāng)前ui控件列表包括ui控件b1,b2,b3。則根據(jù)本申請(qǐng)?zhí)峁┑姆桨福僮餍蛄刑?hào)12對(duì)應(yīng)的錄制記錄(包括ui控件b、場(chǎng)景信息c)與當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表不匹配,不會(huì)被作為目標(biāo)錄制記錄進(jìn)行回放。也即,在“錄制過(guò)程中出現(xiàn)的界面在回放過(guò)程中并未出現(xiàn)”的情況下,本申請(qǐng)?zhí)峁┑姆桨缚梢蕴^(guò)相應(yīng)的錄制記錄不進(jìn)行回放,從而不會(huì)導(dǎo)致操作錯(cuò)亂??梢?jiàn),本實(shí)施例所提供的技術(shù)方案強(qiáng)壯了回放過(guò)程,優(yōu)化了游戲自動(dòng)化測(cè)試。在706部分:根據(jù)上述當(dāng)前ui控件列表確定出隨機(jī)操作事件,并通知測(cè)試終端執(zhí)行上述隨機(jī)操作事件??蓪⒅甘緶y(cè)試終端執(zhí)行隨機(jī)操作事件的通知稱為第二通知。在一個(gè)示例中,隨機(jī)操作事件可實(shí)現(xiàn):在當(dāng)前ui控件列表不為空時(shí),從當(dāng)前ui控件列表中隨機(jī)選擇一個(gè)ui控件進(jìn)行點(diǎn)擊。在當(dāng)前ui列表為空時(shí),在測(cè)試終端的屏幕上隨機(jī)點(diǎn)擊。更具體的,與第一操作事件相類似,上述隨機(jī)操作事件可包括第三操作方式,在測(cè)試終端的顯示屏坐標(biāo)系下的第三操作位置,以及,默認(rèn)等待時(shí)長(zhǎng)(可為零,或者1秒等)。其中,第三操作方式可為點(diǎn)擊、長(zhǎng)按和滑動(dòng)。默認(rèn)等待時(shí)長(zhǎng)可為零秒、1秒等,本領(lǐng)域技術(shù)人員可根據(jù)實(shí)際需要進(jìn)行靈活設(shè)計(jì),在此不作贅述。至于第三操作位置,具體可通過(guò)如下方式確定:在上述當(dāng)前ui控件列表不為空時(shí),從上述當(dāng)前ui控件列表中隨機(jī)選擇一個(gè)ui控件標(biāo)識(shí);可將隨機(jī)選擇出的ui控件標(biāo)識(shí)所表征的ui控件稱為隨機(jī)ui控件;確定該隨機(jī)ui控件在所述測(cè)試終端的顯示屏坐標(biāo)系下的當(dāng)前頂點(diǎn)位置以及覆蓋區(qū)域;根據(jù)該隨機(jī)ui控件的覆蓋區(qū)域和當(dāng)前頂點(diǎn)位置,確定第三操作位置;或者,在上述當(dāng)前ui控件列表為空時(shí),在所述測(cè)試終端的顯示屏坐標(biāo)系下隨機(jī)選擇一個(gè)坐標(biāo)作為第三操作位置。706部分可解決現(xiàn)有回放方式存在的另一問(wèn)題:在錄制過(guò)程中未出現(xiàn)的界面在回放過(guò)程中出現(xiàn)了。這同樣可導(dǎo)致現(xiàn)有自動(dòng)化測(cè)試過(guò)程的操作錯(cuò)亂。例如在錄制過(guò)程中并未彈出廣告界面,但在回放過(guò)程中彈出了廣告界面,如嚴(yán)格按照時(shí)間順序執(zhí)行錄制記錄,那么后續(xù)操作將可能完全錯(cuò)亂。而在本申請(qǐng)實(shí)施例中,可在當(dāng)前ui控件列表不為空時(shí),從當(dāng)前ui控件列表中隨機(jī)選擇一個(gè)ui控件進(jìn)行點(diǎn)擊。或者,在當(dāng)前ui列表為空時(shí),在測(cè)試終端的屏幕上隨機(jī)點(diǎn)擊。在一次或多次隨機(jī)點(diǎn)擊操作后,廣告界面可能會(huì)被關(guān)閉。被關(guān)閉后,可根據(jù)廣告界面關(guān)閉后的當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表,以及上一次所采用的錄制記錄中的操作序列號(hào),在錄制文件中查找匹配的錄制記錄作為目標(biāo)錄制記錄進(jìn)行回放,而不會(huì)發(fā)生錯(cuò)亂。在本發(fā)明其他實(shí)施例中,仍請(qǐng)參見(jiàn)圖7,在705部分或706部分之后,還可包括:707部分:服務(wù)器生成本次回放操作對(duì)應(yīng)的回放記錄保存至回放報(bào)告。在其他實(shí)施例中,也可由wetestsdk生成回放記錄,并返回服務(wù)器,由服務(wù)器將回放記錄保存至回放報(bào)告?;胤庞涗浥c前述錄制記錄的格式相類似。在一個(gè)示例中,若查找到匹配的錄制記錄,那么回放該匹配的錄制記錄后對(duì)應(yīng)的回放記錄可包括第二操作事件,與第二操作事件關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息、回放序列號(hào)等。回放序列號(hào)用于表征第二操作事件(或本次回放操作)在回放過(guò)程中的執(zhí)行順序。在若未查找到匹配的錄制記錄,而是執(zhí)行的隨機(jī)操作事件,則相應(yīng)的回放記錄可包括隨機(jī)操作事件,與隨機(jī)操作事件相關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息、截圖,以及,表征該隨機(jī)操作事件在回放過(guò)程中的執(zhí)行順序的回放序列號(hào)。本文后續(xù)還將對(duì)回放記錄進(jìn)行介紹。在708部分:服務(wù)器根據(jù)所有回放記錄統(tǒng)計(jì)得到的回放率。需要說(shuō)明的是,回放率是每進(jìn)行一次回放操作就計(jì)算一次。因?yàn)樵谙乱淮位胤挪僮髦埃€需要根據(jù)回放率來(lái)判斷是否滿足回放結(jié)束條件。回放率可通過(guò)下述方式計(jì)算:匹配的錄制記錄的條數(shù)/最大的回放序列號(hào)(回放操作執(zhí)行次數(shù))。舉例來(lái)講,假定回放報(bào)告中最大回放序列號(hào)為4,也即進(jìn)行了四次回放操作,其中,執(zhí)行了一次隨機(jī)操作事件,匹配的錄制記錄的條數(shù)為3,則回放率為75%。此外,還可統(tǒng)計(jì)隨機(jī)操作事件的數(shù)量。回放率和隨機(jī)操作事件的數(shù)量可屬于回放報(bào)告的一部分,因此,707部分和708部分的操作,都可視為對(duì)回放報(bào)告的更新。下面,將介紹如何在上述測(cè)試終端上回放目標(biāo)錄制記錄的具體方式。圖8示出了回放目標(biāo)錄制記錄的一種示例性流程。圖8所示的方法應(yīng)用于上述圖1a或圖1b提及的應(yīng)用場(chǎng)景中,在硬件上,由圖8所示的服務(wù)器與測(cè)試終端交互完成。上述回放目標(biāo)錄制記錄的示例性流程包括:在800部分:服務(wù)器向測(cè)試終端發(fā)送位置查詢請(qǐng)求,位置查詢請(qǐng)求中攜帶了目標(biāo)ui控件標(biāo)識(shí)(也即目標(biāo)ui控件對(duì)應(yīng)的gameobeject節(jié)點(diǎn)的路徑)。在801部分:測(cè)試終端(wetestsdk)獲取并返回目標(biāo)ui控件標(biāo)識(shí)的實(shí)時(shí)位置信息。上述實(shí)時(shí)位置信息可包括目標(biāo)ui控件在測(cè)試終端的顯示屏坐標(biāo)系下的當(dāng)前頂點(diǎn)位置,以及,目標(biāo)ui控件在測(cè)試終端的顯示屏上的覆蓋區(qū)域。在一個(gè)示例中,上述當(dāng)前頂點(diǎn)位置具體可為目標(biāo)ui控件的左上角坐標(biāo)或右下角坐標(biāo),而覆蓋區(qū)域具體為目標(biāo)ui控件的長(zhǎng)和寬。需要說(shuō)明的是,雖然ui控件在前臺(tái)可被渲染成各種形狀,例如圓形、橢圓等。但在后臺(tái),ui控件的形狀均為矩形。所以每一ui控件均有左上角。而對(duì)于一個(gè)矩形的目標(biāo)ui控件來(lái)說(shuō),在知道其左上角坐標(biāo)及覆蓋區(qū)域的情況下,可唯一的確定目標(biāo)ui控件實(shí)時(shí)、真正的位置所在。當(dāng)前頂點(diǎn)位置和ui控件在終端顯示屏上的覆蓋區(qū)域可由wetestsdk計(jì)算得到。此外,前述提及的隨機(jī)ui控件,其在所述測(cè)試終端的顯示屏坐標(biāo)系下的當(dāng)前頂點(diǎn)位置以及覆蓋區(qū)域,也可通過(guò)類似801部分的操作而確定。在802部分:服務(wù)器根據(jù)上述覆蓋區(qū)域、當(dāng)前頂點(diǎn)位置確定第二操作事件的第二操作位置。以人進(jìn)行點(diǎn)擊或長(zhǎng)按為例,人一般是會(huì)點(diǎn)擊或長(zhǎng)按ui控件的中心部位。對(duì)于滑動(dòng)ui控件也是如此。而在801部分獲取到的是ui控件左上角的坐標(biāo),因此,需要計(jì)算第二操作位置。此外,前述提及的根據(jù)隨機(jī)ui控件的覆蓋區(qū)域和當(dāng)前頂點(diǎn)位置確定第三操作位置,也可采用類似802部分的操作而實(shí)現(xiàn)。需要說(shuō)明的是,在目標(biāo)錄制記錄中的操作對(duì)象不為空時(shí),可采用800-802來(lái)確定第二操作事件的第二操作位置。在此過(guò)程中,不需要使用目標(biāo)錄制記錄中的第一操作位置。而若目標(biāo)錄制記錄中的操作對(duì)象為空時(shí)(想象一下用戶點(diǎn)擊了石頭控件),則可根據(jù)參考終端和測(cè)試終端的屏幕分辨率,將目標(biāo)第一操作事件對(duì)應(yīng)的第一操作位置轉(zhuǎn)換為第二操作位置。在803部分:服務(wù)器將目標(biāo)第一操作事件的第一操作方式作為上述第二操作方式,將上述目標(biāo)第一操作事件的時(shí)間間隔作為上述預(yù)設(shè)等待時(shí)長(zhǎng)t。舉例來(lái)講,假定目標(biāo)錄制記錄包括:login,1,/root/login/qqbutton,(clickx=300y=400sleep=3秒)。其中,目標(biāo)錄制記錄中的目標(biāo)ui控件為“/root/login/qqbutton”,不為空。假定根據(jù)目標(biāo)ui控件的覆蓋區(qū)域和當(dāng)前頂點(diǎn)位置,確定出第二操作位置為x=500y=400,則第二操作事件為:clickx=500y=400t=3秒。后續(xù)wetestsdk將在測(cè)試終端顯示屏的x=500y=400位置上進(jìn)行點(diǎn)擊。在804部分:對(duì)測(cè)試終端的當(dāng)前游戲界面進(jìn)行截圖,并在截圖上標(biāo)記第二操作位置(例如在截圖上標(biāo)記紅點(diǎn))。后續(xù)生成的回放記錄中將包含上述截圖。這樣,通過(guò)重播截圖序列,可對(duì)應(yīng)查看錄制記錄的執(zhí)行過(guò)程。在805部分:服務(wù)器通知測(cè)試終端采用803部分得到的第二操作方式對(duì)第二操作位置進(jìn)行操作(通知第二操作事件),以實(shí)現(xiàn)對(duì)目標(biāo)ui控件采用上述第二操作方式進(jìn)行操作。請(qǐng)同時(shí)參見(jiàn)圖1a和圖1b,在一個(gè)示例中,可由服務(wù)器通過(guò)adb向游戲中的wetestsdk發(fā)送通知。則終端根據(jù)通知,執(zhí)行上述第二操作事件,以實(shí)現(xiàn)對(duì)與第二操作位置對(duì)應(yīng)的ui控件、采用第二操作方式進(jìn)行操作。仍沿用前例,假定第二操作事件為:clickx=500y=400t=3秒。則wetestsdk將在測(cè)試終端顯示屏的x=500y=400位置上進(jìn)行點(diǎn)擊。在806部分:服務(wù)器等待上述預(yù)設(shè)等待時(shí)長(zhǎng)t。在807部分:服務(wù)器生成本次回放操作對(duì)應(yīng)的回放記錄,并更新回放報(bào)告?;胤艌?bào)告的示例性格式請(qǐng)參見(jiàn)圖9。在圖9中,非匹配回放記錄是對(duì)應(yīng)隨機(jī)操作事件的,圖9中的片段是由操作序列號(hào)連續(xù)的錄制記錄所對(duì)應(yīng)的回放記錄構(gòu)成的。更新回放報(bào)告的其他相關(guān)描述請(qǐng)參見(jiàn)前述實(shí)施例707部分和708部分的記載,在此不作贅述。下面將重點(diǎn)介紹如何從錄制文件中查找匹配的錄制記錄。圖10示出了查找匹配的錄制記錄的一種示例性流程。圖10所示的方法應(yīng)用于上述圖1a或圖1b提及的應(yīng)用場(chǎng)景中,在硬件上,由圖10所示的服務(wù)器與測(cè)試終端交互完成。上述示例性流程可包括:在1000部分:服務(wù)器獲取測(cè)試終端的當(dāng)前界面對(duì)應(yīng)的應(yīng)用程序唯一標(biāo)識(shí),并判斷上述應(yīng)用程序唯一標(biāo)識(shí)是否是測(cè)試游戲的唯一標(biāo)識(shí)或與測(cè)試游戲相關(guān)聯(lián)的應(yīng)用程序的唯一標(biāo)識(shí);若是,進(jìn)入1001部分,否則,啟動(dòng)上述測(cè)試游戲。換種說(shuō)法,可判斷應(yīng)用程序唯一標(biāo)識(shí)是否表征了測(cè)試游戲或與測(cè)試游戲相關(guān)聯(lián)的應(yīng)用程序。應(yīng)用程序唯一標(biāo)識(shí)為包名。在一個(gè)示例中,服務(wù)器中的回放工具可通過(guò)uiautomator或者其他工具確定手機(jī)當(dāng)前界面的包名(應(yīng)用程序唯一標(biāo)識(shí)),以確定進(jìn)程。在回放過(guò)程中,可能因各種原因,其他應(yīng)用程序(即非測(cè)試游戲)的界面會(huì)成為當(dāng)前界面,考慮下述兩種情況:情況一:與測(cè)試游戲相關(guān)聯(lián)的應(yīng)用程序的操作界面成為當(dāng)前界面。舉例來(lái)講,如測(cè)試游戲可通過(guò)微信賬號(hào)或qq賬號(hào)登錄,微信應(yīng)用程序或qq應(yīng)用程序就是與測(cè)試游戲相關(guān)聯(lián)的應(yīng)用程序。在嘗試登錄的過(guò)程,微信應(yīng)用程序或qq應(yīng)用程序的操作界面可能成為當(dāng)前界面;情況二,與測(cè)試游戲無(wú)關(guān)聯(lián)的應(yīng)用程序(未知程序)的操作界面成為當(dāng)前界面。在這種情況下,就要嘗試啟動(dòng)測(cè)試游戲,否則可能無(wú)法完成回放。在1001部分:服務(wù)器獲取測(cè)試終端的當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表。1001部分與前述實(shí)施例的703部分相同,在此不作贅述。1001部分未在圖10中示出。在1002部分:從上述錄制文件中查找滿足第一匹配條件的錄制記錄。若未查找到,進(jìn)入1003部分,若查找到,進(jìn)入1004部分。其中,第一匹配條件包括場(chǎng)景信息與當(dāng)前游戲場(chǎng)景信息相匹配。例如,當(dāng)前游戲場(chǎng)景的名稱為login,則查找所有游戲場(chǎng)景信息為login的錄制記錄。可將滿足第一匹配條件的錄制記錄稱為第一候選錄制記錄。在1003部分:根據(jù)上述當(dāng)前ui控件列表確定出隨機(jī)操作事件,并通知測(cè)試終端執(zhí)行上述隨機(jī)操作事件。1003部分與前述的706部分相同,在此不作贅述。在1004部分:在上述第一候選錄制記錄中查找滿足第二匹配條件的錄制記錄。若查找到,進(jìn)入1005部分,否則,進(jìn)入1006部分。其中第二匹配條件可包括:操作序列號(hào)與上一次所采用的錄制記錄中的操作序列號(hào)相接續(xù)。舉例來(lái)講,上一次所采用的錄制記錄中的操作序列號(hào)是3,而第一候選錄制記錄中有操作序列號(hào)為4的錄制記錄,則認(rèn)為相接續(xù)??蓪M足第二匹配條件的錄制記錄稱為第二候選錄制記錄,第二候選錄制記錄同時(shí)滿足第一匹配條件和第二匹配條件。在1005部分:在上述第二候選錄制記錄中查找滿足第三匹配條件的錄制記錄;若查找到進(jìn)入1006部分,否則進(jìn)入1007部分。上述第三匹配條件包括:ui控件標(biāo)識(shí)與上述當(dāng)前ui控件列表相匹配。滿足第三匹配條件的錄制記錄,亦同時(shí)滿足第一匹配條件和第二匹配條件,是最優(yōu)選錄制記錄。最優(yōu)選錄制記錄將作為匹配的錄制記錄(即目標(biāo)錄制記錄),后續(xù)將在測(cè)試終端上回放該最優(yōu)選錄制記錄。舉例來(lái)講,假定當(dāng)前場(chǎng)景名稱為01,ui控件列表包括ui控件標(biāo)識(shí)a-e,上一次回放操作對(duì)應(yīng)的操作序列號(hào)為005;而在錄制文件中,與場(chǎng)景名稱01匹配的錄制記錄有五條,分別:場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件click,操作序列號(hào)006;場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件press,操作序列號(hào)010;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件press,操作序列號(hào)100;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件swipe,操作序列號(hào)101;場(chǎng)景名稱01,ui標(biāo)識(shí)f,第一操作事件swipe,操作序列號(hào)120。則選擇操作序列號(hào)006的錄制記錄。因?yàn)?06緊鄰005,在執(zhí)行時(shí)序上是銜接的,并且ui標(biāo)識(shí)a在當(dāng)前ui控件列表中。在1006部分:在上述第一候選錄制記錄中查找出滿足第四匹配條件的錄制記錄,若查找到進(jìn)入1007部分,否則進(jìn)入1008部分。上述第四匹配條件可包括:ui控件標(biāo)識(shí)與所述當(dāng)前ui控件列表相匹配。舉例來(lái)講,假定當(dāng)前場(chǎng)景名稱為01,ui控件列表包括ui控件標(biāo)識(shí)a-e,上一次回放操作對(duì)應(yīng)的操作序列號(hào)為005;而在錄制文件中,與場(chǎng)景名稱01匹配的錄制記錄有五條,分別:場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件click,操作序列號(hào)007,回放次數(shù)1;場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件press,操作序列號(hào)010,回放次數(shù)0;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件press,操作序列號(hào)100,回放次數(shù)5;場(chǎng)景名稱01,ui標(biāo)識(shí)b,第一操作事件swipe,操作序列號(hào)101,回放次數(shù)2;場(chǎng)景名稱01,ui標(biāo)識(shí)f,第一操作事件swipe,操作序列號(hào)120,回放次數(shù)8。則標(biāo)下劃線的錄制記錄均為滿足第四匹配條件的第三錄制記錄。在1007部分:從第三候選錄制記錄中選擇回放次數(shù)最少或操作序列號(hào)最小的錄制記錄作為上述匹配的錄制記錄進(jìn)入回放。仍沿用前例,可選擇“場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件click,操作序列號(hào)007,回放次數(shù)1”的錄制記錄作為匹配的錄制記錄,也可選擇“場(chǎng)景名稱01,ui標(biāo)識(shí)a,第一操作事件press,操作序列號(hào)010,回放次數(shù)0”的錄制記錄作為匹配的錄制記錄。在1007部分選擇出的錄制記錄可視為次優(yōu)選錄制記錄。在1008部分:根據(jù)上述當(dāng)前ui控件列表確定出隨機(jī)操作事件,并通知測(cè)試終端執(zhí)行上述隨機(jī)操作事件。1008部分與前述的706部分相同,在此不作贅述。圖11示出了上述實(shí)施例中所涉及的游戲自動(dòng)化測(cè)試裝置或服務(wù)器的一種可能的結(jié)構(gòu)示意圖,包括:獲取模塊1101,用于獲取錄制文件;其中,上述錄制文件包括多條錄制記錄,每一條錄制記錄包括:第一操作事件、與上述第一操作事件相關(guān)聯(lián)的操作對(duì)象(ui控件標(biāo)識(shí))、場(chǎng)景信息和操作序列號(hào);回放模塊1102,用于根據(jù)上述錄制文件,執(zhí)行至少一次回放操作;其中,回放操作包括:獲取測(cè)試終端的當(dāng)前游戲場(chǎng)景信息和當(dāng)前ui控件列表;所述當(dāng)前ui控件列表包括與所述測(cè)試終端的當(dāng)前游戲界面相關(guān)聯(lián)的所有ui控件標(biāo)識(shí);根據(jù)所述當(dāng)前游戲場(chǎng)景信息、當(dāng)前ui控件列表以及上一次回放操作所采用的錄制記錄中的操作序列號(hào),在所述錄制文件中查找匹配的錄制記錄;如查找出匹配的錄制記錄,將所述匹配的錄制記錄作為目標(biāo)錄制記錄;在所述測(cè)試終端上回放所述目標(biāo)錄制記錄。在本發(fā)明其他實(shí)施例中,上述回放操作還可包括:如未查找出匹配的錄制記錄,根據(jù)上述當(dāng)前ui控件列表確定出隨機(jī)操作事件,并通知測(cè)試終端執(zhí)行上述隨機(jī)操作事件。隨機(jī)操作事件可參見(jiàn)前述記載,在此不作贅述。在本發(fā)明其他實(shí)施例中,仍請(qǐng)參見(jiàn)圖11,上述游戲自動(dòng)化測(cè)試裝置或服務(wù)器還可包括:錄制模塊1103,用于在錄制過(guò)程中,確定每一第一操作事件,以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào);使用所述第一操作事件以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào)更新錄制文件。圖12示出了上述實(shí)施例中所涉及的測(cè)試終端的一種可能的結(jié)構(gòu)示意圖,包括:接收單元1201,用于接收來(lái)自服務(wù)器或游戲自動(dòng)化測(cè)試裝置的第一通知或第二通知;所述第一通知用于指示執(zhí)行第二操作事件,所述第二通知用于指示執(zhí)行隨機(jī)操作事件;執(zhí)行單元1202,用于根據(jù)所述第一通知,執(zhí)行所述第二操作事件,以實(shí)現(xiàn)在所述測(cè)試終端上回放目標(biāo)錄制記錄;或者,根據(jù)所述第二通知,執(zhí)行所述隨機(jī)操作事件。具體細(xì)節(jié)請(qǐng)參見(jiàn)本文前述記載,在此不作贅述。在本發(fā)明其他實(shí)施例中,仍請(qǐng)參見(jiàn)圖12,上述測(cè)試終端還可包括:錄制單元1203,用于根據(jù)第一操作事件以及與之關(guān)聯(lián)的操作對(duì)象、場(chǎng)景信息及操作序列號(hào)生成一條錄制記錄并發(fā)送給所述服務(wù)器或游戲自動(dòng)化測(cè)試裝置。錄制單元1203和執(zhí)行單元1202的功能可由sdk實(shí)現(xiàn)。其中,獲取模塊1101可用于執(zhí)行圖7所示的701部分?;胤拍K1102可用于執(zhí)行圖7所示實(shí)施例的702-708部分、圖8所示實(shí)施例的800,802-807部分、圖10所示實(shí)施例的1000-1008部分。錄制模塊1103(錄制工具)可通過(guò)與測(cè)試終端中的錄制單元1202(sdk)通訊,執(zhí)行圖4所示實(shí)施例的401-402部分,圖5所示的實(shí)施例的500-509部分,以及,圖6所示的實(shí)施例。執(zhí)行單元1202可用于執(zhí)行圖8所示實(shí)施例的801部分,及其他sdk執(zhí)行的步驟。接收單元1201可用于執(zhí)行圖8所示實(shí)施例的800部分和805部分。本發(fā)明實(shí)施例還要求保護(hù)游戲自動(dòng)化測(cè)試系統(tǒng),其可包括上述所有實(shí)施例中的測(cè)試終端以及上述服務(wù)器,或包括上述所有實(shí)施例中的測(cè)試終端及游戲自動(dòng)化測(cè)試裝置。結(jié)合本發(fā)明公開(kāi)內(nèi)容所描述的方法或者算法的步驟可以硬件的方式來(lái)實(shí)現(xiàn),也可以是由處理器執(zhí)行軟件指令的方式來(lái)實(shí)現(xiàn)。軟件指令可以由相應(yīng)的軟件模塊組成,軟件模塊可以被存放于ram存儲(chǔ)器、閃存、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤、移動(dòng)硬盤、cd-rom或者本領(lǐng)域熟知的任何其它形式的存儲(chǔ)介質(zhì)中。一種示例性的存儲(chǔ)介質(zhì)耦合至處理器,從而使處理器能夠從該存儲(chǔ)介質(zhì)讀取信息,且可向該存儲(chǔ)介質(zhì)寫(xiě)入信息。當(dāng)然,存儲(chǔ)介質(zhì)也可以是處理器的組成部分。處理器和存儲(chǔ)介質(zhì)可以位于asic中。另外,該asic可以位于用戶設(shè)備中。當(dāng)然,處理器和存儲(chǔ)介質(zhì)也可以作為分立組件存在于用戶設(shè)備中。本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)能夠存取的任何可用介質(zhì)。以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)12