本公開涉及軟件技術(shù)領(lǐng)域,具體而言,涉及一種自動(dòng)化測(cè)試方法、自動(dòng)化測(cè)試裝置、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以及電子設(shè)備。
背景技術(shù):
隨著移動(dòng)端游戲(例如可以是手機(jī)游戲等)市場(chǎng)的快速發(fā)展,對(duì)移動(dòng)端游戲進(jìn)行自動(dòng)化測(cè)試的需求量也逐漸增大。在一些大型游戲中,游戲開發(fā)者基于游戲引擎對(duì)游戲進(jìn)行開發(fā)并進(jìn)行自動(dòng)化測(cè)試。例如,在一些3dmmorpg(3dmassivelymultiplayeronlinerole-playinggame,大型3d多人在線角色扮演游戲)中,可以結(jié)合游戲引擎來實(shí)現(xiàn)大部分的游戲內(nèi)容的自動(dòng)化測(cè)試。
但是,上述自動(dòng)化測(cè)試方案較適用于客戶端游戲;對(duì)移動(dòng)端游戲來說,適用性并不高。
需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對(duì)本公開的背景的理解,因此可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)要素:
本公開的目的在于提供一種自動(dòng)化測(cè)試方法、自動(dòng)化測(cè)試裝置、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以及電子設(shè)備,進(jìn)而至少在一定程度上克服由于相關(guān)技術(shù)的限制和缺陷而導(dǎo)致的一個(gè)或者多個(gè)問題。
根據(jù)本公開的一個(gè)方面,提供一種自動(dòng)化測(cè)試方法,應(yīng)用于控制機(jī),所述自動(dòng)化測(cè)試方法包括:
連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中;
當(dāng)監(jiān)測(cè)到所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài);
將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器。
在本公開的一種示例性實(shí)施例中,在將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中之后還包括:
接收所述服務(wù)器發(fā)送的腳本名稱列表;以及
當(dāng)任一所述待運(yùn)行腳本完成運(yùn)行時(shí),刪除所述腳本名稱列表中已完成運(yùn)行的所述待運(yùn)行腳本對(duì)應(yīng)的腳本名稱。
在本公開的一種示例性實(shí)施例中,在將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中之后還包括:
判斷各所述待運(yùn)行腳本的運(yùn)行狀態(tài)是否出現(xiàn)異常;
在判斷所述運(yùn)行狀態(tài)出現(xiàn)異常時(shí),將與出現(xiàn)異常運(yùn)行狀態(tài)關(guān)聯(lián)的所述待運(yùn)行腳本的日志信息發(fā)送至自動(dòng)化測(cè)試平臺(tái)的測(cè)試前端以使所述測(cè)試前端將所述日志信息進(jìn)行展示。
在本公開的一種示例性實(shí)施例中,將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器:
啟動(dòng)socket并與所述服務(wù)器建立socket連接;
當(dāng)查詢到各所述待運(yùn)行腳本的運(yùn)行狀態(tài)時(shí),通過所述socket連接將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中。
在本公開的一種示例性實(shí)施例中,所述自動(dòng)化測(cè)試方法還包括:
利用通用串行總線建立與所述移動(dòng)終端的連接并通過調(diào)試橋?qū)λ鲆苿?dòng)終端的狀態(tài)信息進(jìn)行監(jiān)測(cè)。
在本公開的一種示例性實(shí)施例中,通過調(diào)試橋?qū)λ鲆苿?dòng)終端的狀態(tài)信息進(jìn)行監(jiān)測(cè)包括:
判斷所述移動(dòng)終端與所述待運(yùn)行腳本的客戶端是否啟動(dòng);
在判斷所述客戶端未啟動(dòng)時(shí),獲取所述移動(dòng)終端的端口;
利用所述調(diào)試橋根據(jù)所述端口啟動(dòng)所述客戶端。
根據(jù)本公開的一個(gè)方面,提供一種自動(dòng)化測(cè)試方法,應(yīng)用于包括測(cè)試前端以及服務(wù)器的自動(dòng)化測(cè)試平臺(tái),所述自動(dòng)化測(cè)試方法包括:
建立所述服務(wù)器與控制機(jī)的連接以使所述控制機(jī)控制所述服務(wù)器將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中;以及
接收所述控制機(jī)發(fā)送的各所述待運(yùn)行腳本在所述移動(dòng)終端中的運(yùn)行狀態(tài)并將各所述待運(yùn)行腳本的運(yùn)行狀態(tài)展示到所述測(cè)試前端。
在本公開的一種示例性實(shí)施例中,建立所述服務(wù)器與控制機(jī)的連接包括:
利用守護(hù)進(jìn)程建立所述控制機(jī)與所述服務(wù)器的連接。
在本公開的一種示例性實(shí)施例中,所述自動(dòng)化測(cè)試方法還包括:
接收所述測(cè)試前端發(fā)送的包括多個(gè)所述待運(yùn)行腳本名稱的提交請(qǐng)求并將多個(gè)所述待運(yùn)行腳本名稱打包成腳本名稱列表;
將所述腳本名稱列表發(fā)送給所述控制機(jī)以使所述控制機(jī)在任一所述待運(yùn)行腳本完成運(yùn)行時(shí)刪除所述腳本名稱列表中對(duì)應(yīng)的腳本名稱。
根據(jù)本公開的一個(gè)方面,提供一種自動(dòng)化測(cè)試裝置,包括:
連接模塊,用于連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中;
運(yùn)行狀態(tài)查詢模塊,用于當(dāng)監(jiān)測(cè)到所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài);
運(yùn)行狀態(tài)發(fā)送模塊,用于將各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中。
根據(jù)本公開的一個(gè)方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任意一項(xiàng)所述的自動(dòng)化測(cè)試方法。
根據(jù)本公開的一個(gè)方面,提供一種電子設(shè)備,包括:
處理器;以及
存儲(chǔ)器,用于存儲(chǔ)所述處理器的可執(zhí)行指令;
其中,所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行上述任意一項(xiàng)所述的自動(dòng)化測(cè)試方法。
本公開一種自動(dòng)化測(cè)試方法及裝置,通過建立與服務(wù)器的連接并使服務(wù)器將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中,然后運(yùn)行待運(yùn)行腳本并根據(jù)各待運(yùn)行腳本的運(yùn)行狀態(tài)完成對(duì)各待運(yùn)行腳本的運(yùn)行監(jiān)控;一方面,通過將待運(yùn)行腳本注入到移動(dòng)終端并運(yùn)行待運(yùn)行腳本,實(shí)現(xiàn)了腳本在移動(dòng)終端的運(yùn)行;另一方面,通過運(yùn)行狀態(tài)監(jiān)控各待運(yùn)行腳本的運(yùn)行情況,可以時(shí)時(shí)對(duì)運(yùn)行狀態(tài)進(jìn)行查看并在運(yùn)行狀態(tài)出現(xiàn)異常的情況下及時(shí)處理,提高了測(cè)試效率;再一方面,通過通用唯一識(shí)別碼查詢各待運(yùn)行腳本的運(yùn)行狀態(tài),當(dāng)運(yùn)行狀態(tài)出現(xiàn)異常時(shí),可以及時(shí)對(duì)出現(xiàn)異常的運(yùn)行腳本進(jìn)行定位,節(jié)省了查找異常運(yùn)行腳本的時(shí)間成本。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。顯而易見地,下面描述中的附圖僅僅是本公開的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示意性示出一種自動(dòng)化測(cè)試方法的流程圖。
圖2示意性示出一種實(shí)現(xiàn)自動(dòng)化測(cè)試方法的示例框圖。
圖3示意性示出一種自動(dòng)化測(cè)試平臺(tái)的示例圖。
圖4示意性示出一種狀態(tài)信息示例圖。
圖5示意性示出一種測(cè)試前端腳本勾選示例圖。
圖6示意性示出另一種自動(dòng)化測(cè)試方法的流程圖。
圖7示意性示出一種對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行監(jiān)測(cè)的方法流程圖。
圖8示意性示出另一種自動(dòng)化測(cè)試方法的流程圖。
圖9示意性示出另一種自動(dòng)化測(cè)試方法的流程圖。
圖10示意性示出一種自動(dòng)化測(cè)試裝置的框圖。
圖11示意性示出一種實(shí)現(xiàn)自動(dòng)化測(cè)試方法的電子設(shè)備示例圖。
圖12示意性示出一種實(shí)現(xiàn)自動(dòng)化測(cè)試方法的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)示例圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本公開將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對(duì)本公開的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識(shí)到,可以實(shí)踐本公開的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個(gè)或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知技術(shù)方案以避免喧賓奪主而使得本公開的各方面變得模糊。
此外,附圖僅為本公開的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對(duì)它們的重復(fù)描述。附圖中所示的一些方框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對(duì)應(yīng)??梢圆捎密浖问絹韺?shí)現(xiàn)這些功能實(shí)體,或在一個(gè)或多個(gè)硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
本示例實(shí)施方式中首先提供了一種自動(dòng)化測(cè)試方法,應(yīng)用于控制機(jī)。參考圖1所示,該自動(dòng)化測(cè)試方法可以包括以下步驟:
步驟s110.連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中。
步驟s120.當(dāng)監(jiān)測(cè)到所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài)。
步驟s130.將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器。
上述自動(dòng)化測(cè)試方法中,一方面,通過將待運(yùn)行腳本注入到移動(dòng)終端并運(yùn)行待運(yùn)行腳本,實(shí)現(xiàn)了腳本在移動(dòng)終端的運(yùn)行;另一方面,通過運(yùn)行狀態(tài)監(jiān)控各待運(yùn)行腳本的運(yùn)行情況,可以時(shí)時(shí)對(duì)運(yùn)行狀態(tài)進(jìn)行查看并在運(yùn)行狀態(tài)出現(xiàn)異常的情況下及時(shí)處理,提高了測(cè)試效率;再一方面,通過通用唯一識(shí)別碼查詢各待運(yùn)行腳本的運(yùn)行狀態(tài),當(dāng)運(yùn)行狀態(tài)出現(xiàn)異常時(shí),可以及時(shí)對(duì)出現(xiàn)異常的運(yùn)行腳本進(jìn)行定位,節(jié)省了查找異常運(yùn)行腳本的時(shí)間成本。
下面將對(duì)本示例實(shí)施方式中上述自動(dòng)化測(cè)試方法中的各步驟進(jìn)行詳細(xì)的解釋。
在步驟s110中,連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中。
在本示例實(shí)施方式中,守護(hù)進(jìn)程(daemon)是運(yùn)行在后臺(tái)的特殊進(jìn)程,可以獨(dú)立于控制終端(每個(gè)系統(tǒng)與用戶進(jìn)行交流的界面稱為終端,每一個(gè)從該終端開始運(yùn)行的進(jìn)程都會(huì)依附于該終端,則該終端可以被稱為該進(jìn)程的控制終端)并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件;遠(yuǎn)程終端協(xié)議(telnet)可以將用戶的擊鍵傳送到遠(yuǎn)地主機(jī),同時(shí)也能將遠(yuǎn)地主機(jī)的輸出通過tcp連接返回到用戶屏幕;用戶使用telnet就可以在本身所在地通過tcp連接注冊(cè)(登錄)到遠(yuǎn)地的另一個(gè)主機(jī)上。在本示例中,首先利用控制機(jī)連接運(yùn)行在自動(dòng)化測(cè)試平臺(tái)后臺(tái)的守護(hù)進(jìn)程,當(dāng)守護(hù)進(jìn)程連接成功后,控制機(jī)通過守護(hù)進(jìn)程連接自動(dòng)化測(cè)試平臺(tái)的服務(wù)器并使得服務(wù)器通過telnet將多個(gè)需要運(yùn)行的腳本注入到移動(dòng)終端中;舉例而言:
參考圖2以及圖3所示,pc控制機(jī)201通過守護(hù)進(jìn)程與自動(dòng)化測(cè)試平臺(tái)的服務(wù)器202(例如可以是游戲引擎)連接,使服務(wù)器202通過telnet與移動(dòng)終端203進(jìn)行連接并將待運(yùn)行腳本注入到移動(dòng)終端203中。其中,上述移動(dòng)終端203可以為一個(gè)也可以為多個(gè),本示例實(shí)施方式對(duì)此不做特殊限制。此外,在本公開的其他示例實(shí)施方式中,也可以通過其他方式將待運(yùn)行腳本注入到移動(dòng)終端中,例如以拷貝的方式,本示例實(shí)施方式對(duì)此不做特殊限制。
在步驟s120中,當(dāng)監(jiān)測(cè)到所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài)。
在本示例實(shí)施方式中,通用唯一識(shí)別碼(uuid,universallyuniqueidentifier)是指某一進(jìn)程在一終端上生成的數(shù)字,它保證對(duì)在同一時(shí)空中的所有終端都是唯一的。uuid可以由以下幾部分的組合:當(dāng)前日期和時(shí)間(uuid的第一個(gè)部分與時(shí)間有關(guān),如果你在生成一個(gè)uuid之后,過幾秒又生成一個(gè)uuid,則第一個(gè)部分不同,其余相同)、時(shí)鐘序列以及全局唯一的ieee機(jī)器識(shí)別號(hào)(如果有網(wǎng)卡,從網(wǎng)卡獲得,沒有網(wǎng)卡以其他方式獲得),例如可以是:3f2504e0-4f89-11d3-9a0c-0305e82c3301。在本示例中,當(dāng)服務(wù)器將多個(gè)待運(yùn)行腳本注入到移動(dòng)移動(dòng)終端后,利用移動(dòng)終端運(yùn)行各待運(yùn)行腳本,當(dāng)控制機(jī)監(jiān)測(cè)到移動(dòng)終端在運(yùn)行各待運(yùn)行腳本時(shí),根據(jù)各待運(yùn)行腳本在各移動(dòng)終端中的uuid查詢各待運(yùn)行腳本的運(yùn)行狀態(tài)。舉例而言:
參考圖2所示,利用移動(dòng)終端203運(yùn)行各待運(yùn)行腳本,當(dāng)pc控制機(jī)201監(jiān)測(cè)到移動(dòng)終端203在運(yùn)行各待運(yùn)行腳本時(shí),根據(jù)守護(hù)進(jìn)程返回的各待運(yùn)行腳本在移動(dòng)終端203中的uuid查看該待運(yùn)行腳本的運(yùn)行狀態(tài)信息(腳本運(yùn)行狀態(tài)信息可以參考圖4所示);例如:當(dāng)需要查看待運(yùn)行腳本“新手指引&新手任務(wù)流程回歸測(cè)試”在某一移動(dòng)終端中的運(yùn)行狀態(tài)時(shí),可以根據(jù)“新手指引&新手任務(wù)流程回歸測(cè)試”在該移動(dòng)終端中的uuid:“3f2504e0-4f89-11d3-9a0c-0305e82c3301”進(jìn)行查詢。此外,在本公開的其他示例實(shí)施方式中,也可以通過其他方式查看待運(yùn)行腳本的運(yùn)行狀態(tài),本示例實(shí)施方式對(duì)此不做特殊限制。
在步驟s130中,將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器。
在本示例實(shí)施方式中,以根據(jù)“新手指引&新手任務(wù)流程回歸測(cè)試”在某一移動(dòng)終端中的uuid:“3f2504e0-4f89-11d3-9a0c-0305e82c3301”查詢其運(yùn)行狀態(tài)為例,運(yùn)行狀態(tài)信息可以參考圖4中所示,狀態(tài)信息可以包括狀態(tài)信息的發(fā)送方(例如可以是pc控制機(jī))、待運(yùn)行腳本的運(yùn)行方(例如可以是某一移動(dòng)終端)、模塊名(待運(yùn)行腳本的名稱)、日志信息等等,還可以包括待運(yùn)行腳本是否是當(dāng)前運(yùn)行腳本、是否需要暫停待運(yùn)行腳本、是否需要等待運(yùn)行、待運(yùn)行腳本的所屬任務(wù)以及是否中止待運(yùn)行腳本等等,本示例實(shí)施方式對(duì)此不做特殊限制。其中,將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器可以包括:?jiǎn)?dòng)socket并與所述服務(wù)器建立socket連接,當(dāng)查詢到各所述待運(yùn)行腳本的運(yùn)行狀態(tài)時(shí),通過所述socket連接將查詢到的各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中。詳細(xì)而言:
參考圖2所示,首先啟動(dòng)pc控制機(jī)的socket,然后與自動(dòng)化測(cè)試平臺(tái)的服務(wù)器202建立socket連接;socket連接建立完成后,當(dāng)pc控制機(jī)201查詢到各待運(yùn)行腳本的運(yùn)行狀態(tài)時(shí),通過socket連接將查詢到的待運(yùn)行腳本“新手指引&新手任務(wù)流程回歸測(cè)試”的運(yùn)行狀態(tài)發(fā)送給服務(wù)器202,使得測(cè)試人員可以及時(shí)查詢?cè)摯\(yùn)行腳本的運(yùn)行狀態(tài),提高測(cè)試效率。此外,在本公開的其他示例實(shí)施方式中,也可以通過其他方式將各待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送給服務(wù)器,本示例實(shí)施方式對(duì)此不做特殊限制。其中,上述socket可以使網(wǎng)絡(luò)上的兩個(gè)程序通過一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換;并且,建立網(wǎng)絡(luò)通信連接至少要一對(duì)端口號(hào)(socket)。
在本示例的另一種實(shí)施方式中,上述自動(dòng)化測(cè)試方法還可以包括:判斷各所述待運(yùn)行腳本的運(yùn)行狀態(tài)是否出現(xiàn)異常;在判斷所述運(yùn)行狀態(tài)出現(xiàn)異常時(shí),將與出現(xiàn)異常運(yùn)行狀態(tài)關(guān)聯(lián)的所述待運(yùn)行腳本的日志信息發(fā)送至自動(dòng)化測(cè)試平臺(tái)的測(cè)試前端以使所述測(cè)試前端將所述日志信息進(jìn)行展示。舉例而言:
參考圖2以及圖4所示,根據(jù)待運(yùn)行腳本“新手指引&新手任務(wù)流程回歸測(cè)試”的狀態(tài)信息判斷該待運(yùn)行腳本的運(yùn)行狀態(tài)是否出現(xiàn)異常;在判斷待運(yùn)行腳本的運(yùn)行狀態(tài)出現(xiàn)異常時(shí),pc控制機(jī)201將運(yùn)行狀態(tài)信息中包括的日志發(fā)送至服務(wù)器202中,然后服務(wù)器202將日志發(fā)送至自動(dòng)化測(cè)試平臺(tái)的測(cè)試前端204中進(jìn)行展示,使得測(cè)試人員可以根據(jù)日志信息中包括的uuid及時(shí)的對(duì)出現(xiàn)運(yùn)行狀態(tài)出現(xiàn)異常的待運(yùn)行腳本進(jìn)行定位并調(diào)整然后將調(diào)整以后的待運(yùn)行腳本重新進(jìn)行運(yùn)行,提升了測(cè)試的效率。
在本示例的另一種實(shí)施方式中,參考圖6所示,上述自動(dòng)化測(cè)試方法還可以包括步驟s610以及步驟s620。其中:
在步驟s610中,接收所述服務(wù)器發(fā)送的腳本名稱列表。舉例而言:
參考圖2以及圖5所示,在自動(dòng)化測(cè)試平臺(tái)的測(cè)試前端204中勾選多個(gè)待運(yùn)行腳本的腳本名稱,然后將勾選好的待運(yùn)行腳本進(jìn)行提交;當(dāng)完成提交后,自動(dòng)化測(cè)試平臺(tái)將提交的多個(gè)待運(yùn)行腳本的腳本名稱進(jìn)行打包形成腳本名稱列表,然后將腳本名稱列表發(fā)送給服務(wù)器202;服務(wù)器202接收腳本名稱列表后,通過socket將腳本名稱列表發(fā)送給pc控制機(jī)201。
在步驟s620中,當(dāng)任一所述待運(yùn)行腳本完成運(yùn)行時(shí),刪除所述腳本名稱列表中已完成運(yùn)行的所述待運(yùn)行腳本對(duì)應(yīng)的腳本名稱。舉例而言:
當(dāng)待運(yùn)行腳本“新手指引&新手任務(wù)流程回歸測(cè)試”完成運(yùn)行時(shí),“新手指引&新手任務(wù)流程回歸測(cè)試”從上述腳本名稱列表中刪除。通過該方案,使得測(cè)試人員可以直接從腳本名稱列表中查看哪些待運(yùn)行腳本還未完成運(yùn)行,可以更好的對(duì)未完成的待運(yùn)行腳本進(jìn)行運(yùn)行監(jiān)控。
本公開還提供了另一種自動(dòng)化測(cè)試方法。該自動(dòng)化測(cè)試方法還可以包括:利用通用串行總線建立與所述移動(dòng)終端的連接并通過調(diào)試橋?qū)λ鲆苿?dòng)終端的狀態(tài)信息進(jìn)行監(jiān)測(cè)。參考圖7所示,通過調(diào)試橋?qū)λ鲆苿?dòng)終端的狀態(tài)信息進(jìn)行監(jiān)測(cè)可以包括步驟s710、步驟s720以及步驟s730。其中:
在步驟s710中,判斷所述移動(dòng)終端與所述待運(yùn)行腳本的客戶端是否啟動(dòng)。
在本示例實(shí)施方式中,繼續(xù)參考圖2所示,pc控制機(jī)201首先利用串行總線(usb,universalserialbus)建立與移動(dòng)終端203的連接,然后通過調(diào)試橋(adb,androiddebugbridge)判斷移動(dòng)終端203中與上述待運(yùn)行腳本的客戶端(例如可以是app)是否啟動(dòng)。
在步驟s720中,在判斷所述客戶端未啟動(dòng)時(shí),獲取所述移動(dòng)終端的端口。
在本示例實(shí)施方式中,在判斷上述客戶端未啟動(dòng)時(shí),可以先獲取該移動(dòng)終端的端口,也可以是socket接口,本示例實(shí)施方式對(duì)此不做特殊限制。其中,上述端口可以被定義為用來讓移動(dòng)終端與pc控制機(jī)同步并連接移動(dòng)終端和pc控制機(jī)之間數(shù)據(jù)傳遞的端口;一般需要驅(qū)動(dòng)程序和同步程序。
在步驟s730中,利用所述調(diào)試橋根據(jù)所述端口啟動(dòng)所述客戶端。
在本示例實(shí)施方式中,當(dāng)獲取到上述移動(dòng)終端的端口后,pc控制機(jī)可以利用adb啟動(dòng)上述客戶端,然后連接自動(dòng)化測(cè)試平臺(tái)的守護(hù)進(jìn)程并通知守護(hù)進(jìn)程運(yùn)行登錄腳本以完成該客戶端的賬號(hào)登錄。此外,在本公開的其他示例實(shí)施方式中,也可以通過其他方式啟動(dòng)上述客戶端,本示例實(shí)施方式對(duì)此不做特殊限制。
本公開還提供了另一種自動(dòng)化測(cè)試方法,應(yīng)用于包括測(cè)試前端以及服務(wù)器的自動(dòng)化測(cè)試平臺(tái)。參考圖8所示,該自動(dòng)化測(cè)試方法還可以包括步驟s810以及步驟s820。其中:
在步驟s810中,建立所述服務(wù)器與控制機(jī)的連接以使所述控制機(jī)控制所述服務(wù)器將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中。
在步驟s820中,接收所述控制機(jī)發(fā)送的各所述待運(yùn)行腳本在所述移動(dòng)終端中的運(yùn)行狀態(tài)并將各所述待運(yùn)行腳本的運(yùn)行狀態(tài)展示到所述測(cè)試前端。舉例而言:
繼續(xù)參考圖2所示,首先自動(dòng)化測(cè)試平臺(tái)利用守護(hù)進(jìn)程建立pc控制機(jī)201與所述服務(wù)器202的連接;然后利用pc控制機(jī)201控制服務(wù)器202將多個(gè)待運(yùn)行腳本通過telnet注入到移動(dòng)終端203中;當(dāng)pc控制機(jī)查詢到各待運(yùn)行狀態(tài)在移動(dòng)終端204中的運(yùn)行狀態(tài)時(shí),通過socket連接將各待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至自動(dòng)化測(cè)試平臺(tái),自動(dòng)化測(cè)試平臺(tái)可以將各待運(yùn)行腳本的運(yùn)行狀態(tài)存儲(chǔ)至服務(wù)器中,也可以將各待運(yùn)行腳本的運(yùn)行狀態(tài)展示到測(cè)試前端,本示例實(shí)施方式對(duì)此不做特殊限制。
本公開還提供了另一種自動(dòng)化測(cè)試方法。參考圖9所示,該自動(dòng)化測(cè)試方法還可以包括步驟s910以及步驟s920。其中:
在步驟s910中,接收所述測(cè)試前端發(fā)送的包括多個(gè)所述待運(yùn)行腳本名稱的提交請(qǐng)求并將多個(gè)所述待運(yùn)行腳本名稱打包成腳本名稱列表。詳細(xì)而言:
參考圖1以及圖3所示,在自動(dòng)化測(cè)試平臺(tái)的測(cè)試前端204中勾選多個(gè)待運(yùn)行腳本的腳本名稱,然后將勾選好的待運(yùn)行腳本進(jìn)行提交;當(dāng)完成提交后,自動(dòng)化測(cè)試平臺(tái)將提交的多個(gè)待運(yùn)行腳本的腳本名稱進(jìn)行打包形成腳本名稱列表。
在步驟s920中,將所述腳本名稱列表發(fā)送給所述控制機(jī)以使所述控制機(jī)在各所述待運(yùn)行腳本完成運(yùn)行時(shí)刪除所述腳本名稱列表中對(duì)應(yīng)的腳本名稱。詳細(xì)而言:
當(dāng)上述腳本名稱列表打包完成后,可以將該腳本名稱列表發(fā)送給服務(wù)器202;服務(wù)器202接收腳本名稱列表后,通過socket將腳本名稱列表發(fā)送給pc控制機(jī)201;當(dāng)該腳本名稱列表中的待運(yùn)行腳本“新手指引&新手任務(wù)流程回歸測(cè)試”完成運(yùn)行時(shí),將“新手指引&新手任務(wù)流程回歸測(cè)試”從上述腳本名稱列表中刪除。通過將腳本名稱列表中完成運(yùn)行腳本名稱刪除,可以使得測(cè)試人員可以直接從腳本名稱列表中查看哪些待運(yùn)行腳本還未完成運(yùn)行,更好的對(duì)未完成的待運(yùn)行腳本進(jìn)行運(yùn)行監(jiān)控。
此外,盡管在附圖中以特定順序描述了本公開中方法的各個(gè)步驟,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些步驟,或是必須執(zhí)行全部所示的步驟才能實(shí)現(xiàn)期望的結(jié)果。附加的或備選的,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,以及/或者將一個(gè)步驟分解為多個(gè)步驟執(zhí)行等。
本示例實(shí)施方式還提供了一種自動(dòng)化測(cè)試裝置。參考圖10所示,該自動(dòng)化測(cè)試裝置可以包括:連接模塊1010、運(yùn)行狀態(tài)查詢模塊1020以及運(yùn)行狀態(tài)發(fā)送模塊1030。其中:
連接模塊1010用于連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器以使所述服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中;
運(yùn)行狀態(tài)查詢模塊1020用于當(dāng)監(jiān)測(cè)所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài);
運(yùn)行狀態(tài)發(fā)送模塊1030用于將各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中。
上述自動(dòng)化測(cè)試裝置中各模塊的具體細(xì)節(jié)已經(jīng)在對(duì)應(yīng)的自動(dòng)化測(cè)試方法中進(jìn)行了詳細(xì)想描述,因此此處不再贅述。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動(dòng)作執(zhí)行的設(shè)備的多個(gè)模塊或者單元,但是這種劃分并非強(qiáng)制性的。實(shí)際上,根據(jù)本公開的實(shí)施方式,上文描述的兩個(gè)或更多模塊或者單元的特征和功能可以在一個(gè)模塊或者單元中具體化。反之,上文描述的一個(gè)模塊或者單元的特征和功能可以進(jìn)一步劃分為由多個(gè)模塊或者單元來具體化。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本公開實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是cd-rom,u盤,移動(dòng)硬盤等)中或網(wǎng)絡(luò)上,包括多個(gè)指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、移動(dòng)終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開實(shí)施方式的方法。
在本公開的示例性實(shí)施例中,還提供了一種能夠?qū)崿F(xiàn)上述方法的電子設(shè)備。
所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
下面參照?qǐng)D11來描述根據(jù)本發(fā)明的這種實(shí)施方式的電子設(shè)備600。圖11顯示的電子設(shè)備600僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
如圖11所示,電子設(shè)備600以通用計(jì)算設(shè)備的形式表現(xiàn)。電子設(shè)備600的組件可以包括但不限于:上述至少一個(gè)處理單元610、上述至少一個(gè)存儲(chǔ)單元620、連接不同系統(tǒng)組件(包括存儲(chǔ)單元620和處理單元610)的總線630、顯示單元640。
其中,所述存儲(chǔ)單元存儲(chǔ)有程序代碼,所述程序代碼可以被所述處理單元610執(zhí)行,使得所述處理單元610執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。例如,所述處理單元610可以執(zhí)行如圖2中所示的步驟s110:連接守護(hù)進(jìn)程并通過所述守護(hù)進(jìn)程控制服務(wù)器通過遠(yuǎn)程終端協(xié)議將多個(gè)待運(yùn)行腳本注入到移動(dòng)終端中;步驟s120:當(dāng)監(jiān)測(cè)到所述移動(dòng)終端運(yùn)行各所述待運(yùn)行腳本時(shí),根據(jù)各所述待運(yùn)行腳本在所述移動(dòng)終端中的通用唯一識(shí)別碼查詢各所述待運(yùn)行腳本的運(yùn)行狀態(tài);步驟s130:將各所述待運(yùn)行腳本的運(yùn)行狀態(tài)發(fā)送至所述服務(wù)器中。
存儲(chǔ)單元620可以包括易失性存儲(chǔ)單元形式的可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)單元(ram)6201和/或高速緩存存儲(chǔ)單元6202,還可以進(jìn)一步包括只讀存儲(chǔ)單元(rom)6203。
存儲(chǔ)單元620還可以包括具有一組(至少一個(gè))程序模塊6205的程序/實(shí)用工具6204,這樣的程序模塊6205包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。
總線630可以為表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)單元總線或者存儲(chǔ)單元控制器、外圍總線、圖形加速端口、處理單元或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。
電子設(shè)備600也可以與一個(gè)或多個(gè)外部設(shè)備700(例如鍵盤、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該電子設(shè)備600交互的設(shè)備通信,和/或與使得該電子設(shè)備600能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口650進(jìn)行。并且,電子設(shè)備600還可以通過網(wǎng)絡(luò)適配器660與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器660通過總線630與電子設(shè)備600的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合電子設(shè)備600使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、raid系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本公開實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是cd-rom,u盤,移動(dòng)硬盤等)中或網(wǎng)絡(luò)上,包括多個(gè)指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、終端裝置、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開實(shí)施方式的方法。
在本公開的示例性實(shí)施例中,還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有能夠?qū)崿F(xiàn)本說明書上述方法的程序產(chǎn)品。在一些可能的實(shí)施方式中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的步驟。
參考圖12所示,描述了根據(jù)本發(fā)明的實(shí)施方式的用于實(shí)現(xiàn)上述方法的程序產(chǎn)品800,其可以采用便攜式緊湊盤只讀存儲(chǔ)器(cd-rom)并包括程序代碼,并可以在終端設(shè)備,例如個(gè)人電腦上運(yùn)行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合。可讀介質(zhì)可以是可讀信號(hào)介質(zhì)或者可讀存儲(chǔ)介質(zhì)??勺x存儲(chǔ)介質(zhì)例如可以為但不限于電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。
計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合??勺x信號(hào)介質(zhì)還可以是可讀存儲(chǔ)介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言—諸如“c”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過任意種類的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
此外,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施例的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本公開的其他實(shí)施例。本申請(qǐng)旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本公開的真正范圍和精神由權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本公開的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本公開的真正范圍和精神由所附的權(quán)利要求指出。