欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于跨平臺自動測試的方法、裝置及電子設(shè)備與流程

文檔序號:12719424閱讀:288來源:國知局
用于跨平臺自動測試的方法、裝置及電子設(shè)備與流程

本申請涉及自動化測試技術(shù)領(lǐng)域,具體而言,涉及用于跨平臺自動測試的方法、裝置及電子設(shè)備。



背景技術(shù):

近年來,智能移動設(shè)備呈爆發(fā)性增長。隨著移動設(shè)備的應(yīng)用需求日益增大,為移動設(shè)備的應(yīng)用程序提供軟件測試的需求越來越多。

相關(guān)技術(shù)中,提出了一種對移動設(shè)備上安裝的應(yīng)用程序進(jìn)行自動化測試的方法。對于安卓移動設(shè)備,將安卓移動設(shè)備通過USB連接到PC端,將用戶在移動設(shè)備上的操作動作通過USB發(fā)送到PC端上,PC端獲取用戶在移動設(shè)備屏幕上的點(diǎn)擊位置,通過uiautomator(一種安卓的自動化界面測試工具)獲取用戶操作的對象。在生成腳本文件之后,通過Robotium框架(一款主要針對安卓平臺的應(yīng)用進(jìn)行黑盒自動化測試的安卓自動化測試框架)使用java語言讀取錄制的腳本xml文件,根據(jù)腳本文件轉(zhuǎn)換為Robotium框架所用的測試用例。

對于ios移動設(shè)備,使用UI Automation對Developer簽名的應(yīng)用程序或者運(yùn)行在模擬器中的應(yīng)用程序進(jìn)行錄制,獲得用戶的行為動作并保存。利用ios系統(tǒng)對待測試的應(yīng)用程序進(jìn)行測試腳本回放的操作包括:將待測應(yīng)用程序進(jìn)行Developer簽名后,拿到源碼后配置上Developer的證書,通過Xcode編譯安裝到真實(shí)設(shè)備中,回放UI Automation的自動化測試腳本。

以上技術(shù)對于安卓移動設(shè)備來說,是通過用戶在移動設(shè)備上操作進(jìn)而獲取錄制數(shù)據(jù),使用adb命令getevent獲取事件,使用adb截圖功能獲取設(shè)備屏幕圖像,而adb截圖和事件獲取的速度很慢(秒量級),用戶需要手動在移動設(shè)備上操作,使用上造成較大不便。對于ios移動設(shè)備來說,使用UI Automation錄制用戶在移動設(shè)備上的行為動作,回放時待測應(yīng)用程序進(jìn)行對應(yīng)的簽名等支持操作,進(jìn)而回放測試腳本。因此,以上技術(shù)要求用戶操作不同的設(shè)備時使用不同的方式,因此學(xué)習(xí)和使用成本較高,流程無法跨平臺,以致工作效率不高。



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

本申請公開用于跨平臺自動測試的方法,使得用戶的跨平臺測試效率有效提高。

本發(fā)明的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本發(fā)明的實(shí)踐而習(xí)得。

根據(jù)本發(fā)明的一個方面,提供一種用于跨平臺自動測試的方法,包括:

持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū);

監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件;

將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

根據(jù)一些實(shí)施例,監(jiān)聽對所述設(shè)備映射區(qū)的操作包括:監(jiān)聽對所述設(shè)備映射區(qū)的鼠標(biāo)按下操作、鼠標(biāo)抬起操作、鼠標(biāo)按下并移動操作、以及鍵盤輸入操作中的至少一種。

根據(jù)一些實(shí)施例,若所述被測目標(biāo)設(shè)備為觸屏設(shè)備,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件包括:

根據(jù)鼠標(biāo)按下操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指按下操作的操作事件;

根據(jù)鼠標(biāo)抬起操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指抬起操作的操作事件;

根據(jù)鼠標(biāo)移按下并移動操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指劃動操作的操作事件;

根據(jù)鍵盤輸入操作得到對所述被測目標(biāo)設(shè)備進(jìn)行功能按鍵操作的操作事件。

根據(jù)一些實(shí)施例,所述被測目標(biāo)設(shè)備包括觸屏設(shè)備、遠(yuǎn)程PC、本地PC。

根據(jù)一些實(shí)施例,所述觸屏設(shè)備包括智能移動終端、以及觸摸屏的智能設(shè)備。

根據(jù)一些實(shí)施例,所述被測目標(biāo)設(shè)備的操作系統(tǒng)包括安卓系統(tǒng)、ios系統(tǒng)、以及Windows系統(tǒng)。

根據(jù)一些實(shí)施例,持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面的包括:通過本地傳輸、USB傳輸、有線網(wǎng)絡(luò)傳輸、以及無線網(wǎng)絡(luò)傳輸中的一種傳輸方式持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面。

根據(jù)一些實(shí)施例,在根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件之后還包括:根據(jù)所述操作事件錄制測試腳本。

根據(jù)本發(fā)明的另一方面,提供一種用于跨平臺自動測試的裝置,其包括:

設(shè)備映射模塊,用于持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū);

操作捕捉模塊,用于監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件;

封裝與發(fā)送模塊,用于將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

根據(jù)一些實(shí)施例,所述操作捕捉模塊用于:監(jiān)聽對所述設(shè)備映射區(qū)的鼠標(biāo)按下操作、鼠標(biāo)抬起操作、鼠標(biāo)按下并移動操作、以及鍵盤輸入操作中的至少一種。

根據(jù)一些實(shí)施例,若所述被測目標(biāo)設(shè)備為觸屏設(shè)備,所述操作捕捉模塊用于:

根據(jù)鼠標(biāo)按下操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指按下操作的操作事件;

根據(jù)鼠標(biāo)抬起操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指抬起操作的操作事件;

根據(jù)鼠標(biāo)按下并移動操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指劃動操作的操作事件;

根據(jù)鍵盤輸入操作得到對所述被測目標(biāo)設(shè)備進(jìn)行功能按鍵操作的操作事件。

根據(jù)本發(fā)明的另一方面,提供一種電子設(shè)備,包括:處理器;存儲器,存儲用于所述處理器控制如第一方面任一項(xiàng)操作的指令。

本申請的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:

針對跨平臺自動化測試的應(yīng)用場景,本申請的實(shí)施例提供的技術(shù)方案將基于安卓、ios、Windows等操作系統(tǒng)上的應(yīng)用程序的圖像流和操作流進(jìn)行統(tǒng)一化封裝,使得測試過程中調(diào)用流程的統(tǒng)一化,以使自動化測試中用戶不再需要關(guān)心不同平臺下的底層接口的用法,并且用戶可以直接通過操作腳本生產(chǎn)工具中的設(shè)備映射區(qū)對目標(biāo)設(shè)備進(jìn)行操作。

應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。

附圖說明

通過參照附圖詳細(xì)描述其示例實(shí)施例,本發(fā)明的上述和其它特征及優(yōu)點(diǎn)將變得更加明顯。

圖1示出了根據(jù)本發(fā)明一實(shí)施例的用于跨平臺自動測試的方法;

圖2示出了根據(jù)本發(fā)明另一實(shí)施例的用于跨平臺自動測試的方法;

圖3示出了根據(jù)本發(fā)明另一實(shí)施例的連接被測目標(biāo)設(shè)備示意圖;

圖4示出了根據(jù)本發(fā)明另一實(shí)施例的不同操作系統(tǒng)的被測目標(biāo)設(shè)備統(tǒng)一映射方法結(jié)構(gòu)示意圖;

圖5示出了根據(jù)本發(fā)明一實(shí)施例的用于跨平臺自動測試的裝置的框圖;

圖6示出了根據(jù)本發(fā)明另一實(shí)施例的用于跨平臺自動測試的裝置的框圖;

圖7示出了根據(jù)本發(fā)明一實(shí)施例的電子設(shè)備。

具體實(shí)施方式

現(xiàn)在將參考附圖更全面地描述示例實(shí)施例。然而,示例實(shí)施例能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的實(shí)施例;相反,提供這些實(shí)施例使得本發(fā)明將全面和完整,并將示例實(shí)施例的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。在圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。

此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個或更多實(shí)施例中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對本發(fā)明的實(shí)施例的充分理解。然而,本領(lǐng)域技術(shù)人員將意識到,可以實(shí)踐本發(fā)明的技術(shù)方案而沒有特定細(xì)節(jié)中的一個或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知方法、裝置、實(shí)現(xiàn)或者操作以避免模糊本發(fā)明的各方面。

附圖中所示的方框圖僅僅是功能實(shí)體,不一定必須與物理上獨(dú)立的實(shí)體相對應(yīng)。即,可以采用軟件形式來實(shí)現(xiàn)這些功能實(shí)體,或在一個或多個硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。

附圖中所示的流程圖僅是示例性說明,不是必須包括所有的內(nèi)容和操作/步驟,也不是必須按所描述的順序執(zhí)行。例如,有的操作/步驟還可以分解,而有的操作/步驟可以合并或部分合并,因此實(shí)際執(zhí)行的順序有可能根據(jù)實(shí)際情況改變。

圖1示出了根據(jù)本發(fā)明一實(shí)施例的用于跨平臺自動測試的方法,本實(shí)施例可適用于通過PC機(jī)所安裝的腳本生產(chǎn)工具對該P(yáng)C機(jī)上的被測應(yīng)用程序或與該P(yáng)C機(jī)連接的被測目標(biāo)設(shè)備上的被測應(yīng)用程序進(jìn)行測試的情況,如圖1所示,本實(shí)施例所述的用于跨平臺自動測試的方法包括:

在步驟S110中,持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū)。

在步驟S120中,監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件。

在步驟S130中,將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

其中,監(jiān)聽對所述設(shè)備映射區(qū)的操作可包括:監(jiān)聽對所述設(shè)備映射區(qū)的鼠標(biāo)按下操作、鼠標(biāo)抬起操作、鼠標(biāo)按下并移動操作、以及鍵盤輸入等操作。

需要說明的是,若所述被測目標(biāo)設(shè)備為觸屏設(shè)備,則根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件包括:

根據(jù)鼠標(biāo)按下操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指按下操作的操作事件、根據(jù)鼠標(biāo)抬起操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指抬起操作的操作事件、根據(jù)鼠標(biāo)按下并移動操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指劃動操作的操作事件、以及根據(jù)鍵盤輸入操作得到對所述被測目標(biāo)設(shè)備進(jìn)行功能按鍵操作的操作事件。

需要說明的是,本實(shí)施例對所述被測目標(biāo)設(shè)備并不作限定,只要能包括可視化操作接口即可,例如可包括觸屏設(shè)備、遠(yuǎn)程PC、本地PC等。

例如,所述觸屏設(shè)備可包括智能移動終端、以及觸摸屏的智能設(shè)備。

而且,本實(shí)施例對所述被測目標(biāo)設(shè)備也并不作限定,所述被測目標(biāo)設(shè)備的操作系統(tǒng)可以為任意操作系統(tǒng),例如可以為安卓系統(tǒng)、ios系統(tǒng)、或Windows系統(tǒng)等。

本領(lǐng)域普通技術(shù)人員需要明確的是,本實(shí)施例適用于被測目標(biāo)設(shè)備與腳本生產(chǎn)工具之間任意連接方式,只要兩者能正常即時地通信即可,例如兩者可為同一PC機(jī),或者兩者為不同設(shè)備,其中腳本生產(chǎn)工具為PC機(jī),被測目標(biāo)設(shè)備為與該腳本生產(chǎn)工具直接相連或遠(yuǎn)程通信的PC機(jī)或者觸屏設(shè)備。

其中,若被測目標(biāo)設(shè)備為與該腳本生產(chǎn)工具直接相連的PC機(jī)或者觸屏設(shè)備,則其與腳本生產(chǎn)工具所在的PC機(jī)可通過USB連接通過USB傳輸數(shù)據(jù),或者通過有線網(wǎng)線路連接通過網(wǎng)線傳輸數(shù)據(jù)?;蛘?,若被測目標(biāo)設(shè)備為與該腳本生產(chǎn)工具不直接相連的PC機(jī)或者觸屏設(shè)備,其與腳本生產(chǎn)工具所在的PC機(jī)可通過無線網(wǎng)、藍(lán)牙或其他近場通信模塊傳輸數(shù)據(jù)。

因此,持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面的包括:通過本地傳輸、USB傳輸、有線網(wǎng)絡(luò)傳輸、以及無線網(wǎng)絡(luò)傳輸中的一種傳輸方式持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面。

本實(shí)施例通過安裝在PC端的腳本生產(chǎn)工具以直接相連或遠(yuǎn)程通信的方式持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū),監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件,將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備,因?yàn)樗霰粶y目標(biāo)設(shè)備可以是不同操作系統(tǒng)的與所述PC端直接相連或遠(yuǎn)程通信的PC機(jī)、安卓終端、或IOS終端等,因此測試人員無需關(guān)心不同平臺下的底層接口的用法,可直接通過腳本生產(chǎn)工具中的設(shè)備映射區(qū)對目標(biāo)設(shè)備進(jìn)行測試,能夠有效提高用戶的跨平臺測試效率。

圖2示出了根據(jù)本發(fā)明另一實(shí)施例的用于跨平臺自動測試的方法,適用于被測目標(biāo)設(shè)備,如圖2所示,本實(shí)施例所述的用于跨平臺自動測試的方法包括:

在步驟S210中,通過被測程序中內(nèi)置的通信模塊創(chuàng)建截圖進(jìn)程,通過所述截圖進(jìn)程持續(xù)獲取所述被測程序的窗口截圖,并將所述窗口截圖發(fā)送給腳本生產(chǎn)工具;

在步驟S220中,監(jiān)聽所述腳本生產(chǎn)工具發(fā)送的輸入事件,將所述輸入事件發(fā)送給所述被測程序,以使所述被測程序根據(jù)所述輸入事件進(jìn)行操作響應(yīng)。

根據(jù)本發(fā)明的一些實(shí)施例,通過所述截圖進(jìn)程持續(xù)獲取所述被測程序的窗口截圖包括:通過所述通信模塊獲取所述被測程序的窗口標(biāo)識,所述截圖進(jìn)程根據(jù)所述窗口標(biāo)識持續(xù)獲取所述應(yīng)用程序的窗口位置與大小并進(jìn)行窗口截圖。

本實(shí)施例通過被測目標(biāo)設(shè)備通過被測程序中內(nèi)置的通信模塊創(chuàng)建截圖進(jìn)程,通過所述截圖進(jìn)程持續(xù)獲取所述被測程序的窗口截圖,并將所述窗口截圖發(fā)送給腳本生產(chǎn)工具,在監(jiān)聽到腳本生產(chǎn)工具將用于測試的操作事件封裝成該被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件之后,將所述輸入事件發(fā)送給所述被測程序,以使所述被測程序根據(jù)所述輸入事件進(jìn)行操作響應(yīng),能實(shí)現(xiàn)用戶遠(yuǎn)程操作被測目標(biāo)設(shè)備的目的。

在本實(shí)施例中,不同操作系統(tǒng)的設(shè)備通過映射(例如安卓和ios)或者嵌套(PC應(yīng)用程序)的方式,集成到腳本生產(chǎn)工具內(nèi)的設(shè)備映射區(qū),用戶只需要在腳本生產(chǎn)工具中的設(shè)備映射區(qū)進(jìn)行操作,即可完成所需的測試過程。

圖3示出了根據(jù)本實(shí)施例的連接被測目標(biāo)設(shè)備示意圖,如圖3所示,對于不同類型的測試目標(biāo),本發(fā)明基于設(shè)備映射方式統(tǒng)一化的思路,建立統(tǒng)一化的設(shè)備圖像流、操作流的映射模型,并針對不同的平臺進(jìn)行更底層的封裝。通過這種方式,用戶不再需要關(guān)心跨平臺的底層實(shí)現(xiàn),只需要調(diào)用統(tǒng)一的上層封裝方法,即可實(shí)現(xiàn)對設(shè)備的控制、自動化腳本錄制過程。

圖4示出了根據(jù)本實(shí)施例的不同操作系統(tǒng)的被測目標(biāo)設(shè)備統(tǒng)一映射方法結(jié)構(gòu)示意圖。如圖4所示,本實(shí)施例中的設(shè)備映射主要分為兩塊,一是設(shè)備畫面映射(由設(shè)備到腳本生產(chǎn)工具),二是操作映射(由腳本生產(chǎn)工具到設(shè)備)。通過在設(shè)備上封裝“窗口截圖采集模塊”進(jìn)行設(shè)備圖像的采集,進(jìn)而在生產(chǎn)畫面上進(jìn)行實(shí)時的畫面呈現(xiàn),通過在腳本生產(chǎn)工具中封裝“操作捕捉模塊”,進(jìn)而實(shí)現(xiàn)用戶遠(yuǎn)程操作被測目標(biāo)設(shè)備的目的。

以下內(nèi)容將分別對上圖4中的各個模塊在不同操作系統(tǒng)平臺上的實(shí)現(xiàn)作出具體闡述。

內(nèi)容一、被測目標(biāo)設(shè)備的窗口截圖采集模塊。

對于本地PC上的應(yīng)用程序來說,其直接嵌入在腳本生產(chǎn)工具中,用戶可以直接看到該應(yīng)用程序本身并正常進(jìn)行操作,不需要再次封裝畫面?zhèn)鬏敼δ?,也就不用額外封裝“窗口截圖采集模塊”。

對于安卓設(shè)備、ios設(shè)備、遠(yuǎn)程PC應(yīng)用程序,用戶均通過腳本生產(chǎn)工具中的設(shè)備操作區(qū)進(jìn)行被測目標(biāo)設(shè)備畫面查看。由被測目標(biāo)設(shè)備方對設(shè)備畫面進(jìn)行屏幕畫面獲取并發(fā)送給腳本生產(chǎn)工具,實(shí)現(xiàn)畫面的傳輸。

對于遠(yuǎn)程機(jī)器上的PC應(yīng)用程序,應(yīng)用程序需要內(nèi)置一個與腳本生產(chǎn)工具的通信模塊,應(yīng)用程序與腳本生產(chǎn)工具建立連接后,通信模塊可以獲取應(yīng)用程序的窗口id,起一個截圖進(jìn)程持續(xù)獲取應(yīng)用程序窗口位置、大小信息并進(jìn)行窗口截圖,將獲取的內(nèi)容發(fā)送給腳本生產(chǎn)工具中的“設(shè)備映射模塊”,腳本生產(chǎn)工具的“設(shè)備映射模塊”將獲取到的截圖渲染到設(shè)備映射區(qū)內(nèi),為用戶提供實(shí)時的遠(yuǎn)程應(yīng)用程序的實(shí)時畫面。

對于安卓設(shè)備來說,“窗口截圖采集模塊”是一個運(yùn)行在設(shè)備里的minicap進(jìn)程,腳本生產(chǎn)工具連接安卓設(shè)備時會啟動一個通信進(jìn)程,用于與安卓設(shè)備的minicap進(jìn)程進(jìn)行通信。安卓設(shè)備中的minicap進(jìn)程可以持續(xù)性快速的獲取設(shè)備屏幕輸出,并將其發(fā)送給已建立連接的腳本生產(chǎn)工具。minicap的好處就是快,每幀屏幕實(shí)時畫面獲取時間小于0.1s,可以基本實(shí)現(xiàn)實(shí)時的屏幕畫面映射。相比之下,adb截屏獲取屏幕的方法,一般需要0.8-2秒之間,無法實(shí)現(xiàn)流暢的設(shè)備畫面映射。

對于ios設(shè)備來說,可以在待測試的應(yīng)用程序中集成libimobiledevice模塊作為截圖輔助工具,由libimobiledevice集成模塊持續(xù)對設(shè)備截屏,并將對應(yīng)的屏幕畫面發(fā)送給已建立連接的腳本生產(chǎn)工具。腳本生產(chǎn)工具中在連接ios設(shè)備后,會起一個用于和應(yīng)用程序通信的進(jìn)程,進(jìn)而從設(shè)備程序中獲取畫面并實(shí)現(xiàn)渲染。

內(nèi)容二、腳本生產(chǎn)工具的設(shè)備映射模塊。

對于腳本生產(chǎn)工具來說,與不同的安卓設(shè)備、ios設(shè)備、遠(yuǎn)程PC應(yīng)用程序建立連接后,由“設(shè)備映射模塊”持續(xù)接收被測目標(biāo)設(shè)備發(fā)來的畫面,其將接收到的被測目標(biāo)設(shè)備畫面渲染到設(shè)備映射區(qū)內(nèi),供用戶進(jìn)行實(shí)時觀看。

內(nèi)容三、腳本生產(chǎn)工具的操作捕捉模塊。

對于本地PC上的應(yīng)用程序,腳本生產(chǎn)工具只是將對應(yīng)的應(yīng)用程序窗口嵌入進(jìn)來,正常的鼠標(biāo)操作和鍵盤事件均可以直接進(jìn)行,不需要另外再實(shí)現(xiàn)操作傳輸?shù)耐贰?/p>

對于安卓設(shè)備、ios設(shè)備、遠(yuǎn)程PC應(yīng)用程序,用戶均通過腳本生產(chǎn)工具中的設(shè)備操作區(qū)進(jìn)行被測目標(biāo)設(shè)備操作,要由腳本生產(chǎn)工具對用戶的操作進(jìn)行捕獲,再將對應(yīng)的操作傳輸給被測目標(biāo)設(shè)備。

腳本生產(chǎn)工具中的“操作捕捉模塊”,本質(zhì)上是腳本生產(chǎn)工具內(nèi)的一個監(jiān)聽進(jìn)程,其在捕捉到用戶對應(yīng)的操作事件后,根據(jù)對應(yīng)的設(shè)備類型,按照對應(yīng)設(shè)備的響應(yīng)指令的格式,封裝成對應(yīng)格式的指令,發(fā)送給被測目標(biāo)設(shè)備的“操作響應(yīng)模塊”。

對于在PC平臺上的腳本生產(chǎn)工具,用戶的操作交互手段為鼠標(biāo)和鍵盤。當(dāng)腳本生產(chǎn)工具處于操作動作錄制狀態(tài)下時,腳本生產(chǎn)工具需要對用戶在設(shè)備映射區(qū)中的鼠標(biāo)鍵盤操作進(jìn)行捕獲。

本發(fā)明使用hook工具完成這一工作。對于被測目標(biāo)設(shè)備來說,捕捉動作包括:點(diǎn)擊、滑動(拖動)、鍵盤輸入。其中需要捕捉的有鼠標(biāo)按下事件(位置)、鼠標(biāo)移動事件(位置)、鼠標(biāo)抬起事件(位置)、鍵盤按鍵事件(鍵盤按鍵種類)。

當(dāng)腳本生產(chǎn)工具處于操作動作錄制狀態(tài)下時,腳本生產(chǎn)工具在設(shè)備映射區(qū)中每次檢測到使用者的鼠標(biāo)按下事件,記錄下鼠標(biāo)按下的位置;每次檢測到鼠標(biāo)抬起時,記錄下鼠標(biāo)抬起的位置并對本次鼠標(biāo)事件進(jìn)行解析。

因?yàn)槿耸植倏厥髽?biāo)不可能完全精確地操控鼠標(biāo),即使在執(zhí)行單次的點(diǎn)擊操作時,鼠標(biāo)按下的位置和鼠標(biāo)抬起的位置一般也不會完全精確地保持一致。因此我們需要設(shè)定一個誤差范圍(比如設(shè)備映射區(qū)中的5個像素距離),當(dāng)鼠標(biāo)按下抬起的位置差小于此誤差范圍時,則判定為此次鼠標(biāo)按下-抬起事件為一次點(diǎn)擊事件;當(dāng)鼠標(biāo)按下抬起的位置差大于此誤差范圍時,則判定為此次鼠標(biāo)按下-抬起事件為一次滑動(拖動)事件。

內(nèi)容四、腳本生產(chǎn)工具的封裝與發(fā)送模塊。

常規(guī)鼠標(biāo)的操作分為左鍵按下、移動、抬起和右鍵按下、移動、抬起,對于移動設(shè)備(安卓、ios)來說,只有按下、移動、抬起操作。在腳本生產(chǎn)工具處于操作動作錄制狀態(tài)下時,為了實(shí)現(xiàn)通用化的封裝,當(dāng)腳本生產(chǎn)工具連接的是移動設(shè)備時,將鼠標(biāo)按鍵(左按鍵或者右按鍵)的按下、移動、抬起操作歸并為手指的按下、移動、抬起的操作。用戶執(zhí)行鍵盤輸入時,腳本生產(chǎn)工具對對應(yīng)的鍵盤輸入進(jìn)行事件判斷,當(dāng)鍵盤上按下回退(Backspace)、刪除(Delete)、主頁(Home)、轉(zhuǎn)換(Shift)、大寫(Caps Lock)按鍵時,腳本生產(chǎn)工具將操作封裝成移動設(shè)備上對應(yīng)的鍵盤事件,當(dāng)鍵盤上按下字符輸入類型的按鍵時(如a-z/1-9/鍵盤上其他輸入字符),生產(chǎn)設(shè)備將操作封裝成移動設(shè)備上對應(yīng)的輸入事件。

腳本生產(chǎn)工具在連接PC應(yīng)用程序時,其不再將鼠標(biāo)、鍵盤操作進(jìn)行判別,而是直接將相應(yīng)操作發(fā)送出去。

內(nèi)容五、被測目標(biāo)設(shè)備的操作響應(yīng)模塊。

腳本生產(chǎn)工具通過對設(shè)備映射區(qū)中的用戶鼠標(biāo)、鍵盤操作事件的捕捉,將對應(yīng)的操作傳輸給被測目標(biāo)設(shè)備的“操作響應(yīng)模塊”。

對于本地PC上的應(yīng)用程序來說,其直接到嵌入腳本生產(chǎn)工具中,用戶可以通過鼠標(biāo)鍵盤直接對其進(jìn)行操作,不需要額外封裝“操作響應(yīng)模塊”。

對于遠(yuǎn)程的PC應(yīng)用程序來說,直接調(diào)用對應(yīng)的系統(tǒng)接口在PC系統(tǒng)上進(jìn)行模擬的鼠標(biāo)、鍵盤操作(以python語言舉例,windows模擬操作實(shí)現(xiàn)),通過把PC系統(tǒng)上對應(yīng)鼠標(biāo)按下事件、鼠標(biāo)移動事件、鼠標(biāo)抬起事件的封裝,實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊、鼠標(biāo)拖動的操作。遇到鍵盤事件時,也同樣使用封裝好對應(yīng)的模擬按鍵事件并執(zhí)行,從而實(shí)現(xiàn)PC上的操作響應(yīng)。

對于安卓設(shè)備來說,操作響應(yīng)模塊是一個運(yùn)行在安卓設(shè)備中的minitouch進(jìn)程,minitouch方法對安卓設(shè)備操作的實(shí)時性很高,幾乎沒有卡頓。該進(jìn)程接收到腳本生產(chǎn)工具“操作捕捉模塊”發(fā)來的指令后,進(jìn)行相應(yīng)的設(shè)備操作響應(yīng)。對于ios設(shè)備來說,可以將KIF(ios的集成測試框架:)封裝成操作模塊作為內(nèi)置集成模塊嵌入到應(yīng)用程序中,腳本生產(chǎn)工具與ios設(shè)備操作信息的推送,是通過ios設(shè)備上的應(yīng)用程序?qū)拥耐ㄐ艑?shí)現(xiàn)的,腳本生產(chǎn)工具捕捉到用戶操作后,將對應(yīng)的操作指令發(fā)給連接的ios設(shè)備上的應(yīng)用程序,應(yīng)用程序收到對應(yīng)的指令后,由內(nèi)置集成模塊進(jìn)行ios設(shè)備的相應(yīng)操作。

本發(fā)明通過使用minicap模塊作為安卓系統(tǒng)的截屏通信工具,大大提升了截屏速度,達(dá)到實(shí)時查看畫面的目的;另外通過使用minitouch模塊,將安卓手機(jī)的操控進(jìn)行遠(yuǎn)程虛擬化,解放了在測試過程中用戶需要手動在手機(jī)上操作的不便。

本發(fā)明通過將安卓設(shè)備、ios設(shè)備、PC應(yīng)用程序的畫面獲取、模擬操作分別進(jìn)行功能性的統(tǒng)一化封裝,對用戶來說不需要再分別關(guān)心不同平臺下測試接口,大大減小了學(xué)習(xí)成本和使用難度。

本發(fā)明提供了不同平臺測試的統(tǒng)一化封裝,因此可以使用同一套測試腳本,進(jìn)行不同平臺的測試內(nèi)容。換句話說,通過統(tǒng)一化的畫面、設(shè)備操作的封裝,可以讓用戶拋開對平臺的關(guān)心,使用同一套上層測試指令,進(jìn)行同一個測試app在不同平臺上冊測試工作。使得各平臺上測試工作的通用化大大增強(qiáng),可以有效提高用戶的跨平臺測試效率。

針對跨平臺自動化測試的應(yīng)用場景,本發(fā)明將安卓、ios、PC應(yīng)用程序的圖像流和操作流進(jìn)行統(tǒng)一化封裝,使得測試過程中調(diào)用流程的統(tǒng)一化,自動化測試中不再需要關(guān)心不同平臺下的底層接口的用法。且用戶可以直接通過操作腳本生產(chǎn)工具中的設(shè)備映射區(qū)對被測目標(biāo)設(shè)備進(jìn)行操作。

圖5示出了根據(jù)本發(fā)明一實(shí)施例的用于跨平臺自動測試的裝置的框圖,如圖5所示,本實(shí)施例所述的用于跨平臺自動測試的裝置包括設(shè)備映射模塊510、操作捕捉模塊520、以及封裝與發(fā)送模塊530。

該設(shè)備映射模塊510被配置為,用于持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū);

該操作捕捉模塊520被配置為,用于監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件;

該封裝與發(fā)送模塊530被配置為,用于將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

根據(jù)本發(fā)明的一些實(shí)施例,所述操作捕捉模塊用于:監(jiān)聽對所述設(shè)備映射區(qū)的鼠標(biāo)按下操作、鼠標(biāo)抬起操作、鼠標(biāo)按下并移動操作、以及鍵盤輸入操作中的至少一種。

根據(jù)本發(fā)明的一些實(shí)施例,若所述被測目標(biāo)設(shè)備為觸屏設(shè)備,所述操作捕捉模塊用于:

根據(jù)鼠標(biāo)按下操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指按下操作的操作事件;

根據(jù)鼠標(biāo)抬起操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指抬起操作的操作事件;

根據(jù)鼠標(biāo)按下并移動操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指劃動操作的操作事件;

根據(jù)鍵盤輸入操作得到對所述被測目標(biāo)設(shè)備進(jìn)行功能按鍵操作的操作事件。

根據(jù)本發(fā)明的一些實(shí)施例,所述被測目標(biāo)設(shè)備包括觸屏設(shè)備、遠(yuǎn)程PC、本地PC。

根據(jù)本發(fā)明的一些實(shí)施例,所述觸屏設(shè)備包括智能移動終端、以及觸摸屏的智能設(shè)備。

根據(jù)本發(fā)明的一些實(shí)施例,所述被測目標(biāo)設(shè)備的操作系統(tǒng)包括安卓系統(tǒng)、ios系統(tǒng)、以及Windows系統(tǒng)。

根據(jù)本發(fā)明的一些實(shí)施例,所述設(shè)備映射模塊用于:通過本地傳輸、USB傳輸、有線網(wǎng)絡(luò)傳輸、以及無線網(wǎng)絡(luò)傳輸中的一種傳輸方式持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面。

根據(jù)本發(fā)明的一些實(shí)施例,還包括腳本錄制模塊,用于在根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件之后還包括:根據(jù)所述操作事件錄制測試腳本。

關(guān)于上述實(shí)施例中的裝置,其中各個單元執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。

本實(shí)施例提供的用于跨平臺自動測試的裝置可執(zhí)行本發(fā)明實(shí)施例一和實(shí)施例二所提供的用于跨平臺自動測試的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。

圖6示出了根據(jù)本發(fā)明另一實(shí)施例的用于跨平臺自動測試的裝置的框圖,該用于跨平臺自動測試的裝置配置于被測目標(biāo)設(shè)備中,如圖6所示,本實(shí)施例所述的用于跨平臺自動測試的裝置包括:窗口截圖采集模塊610、以及操作響應(yīng)模塊620。

該窗口截圖采集模塊610被配置為,用于通過被測程序中內(nèi)置的通信模塊創(chuàng)建截圖進(jìn)程,通過所述截圖進(jìn)程持續(xù)獲取所述被測程序的窗口截圖,并將所述窗口截圖發(fā)送給腳本生產(chǎn)工具;

該操作響應(yīng)模塊620被配置為,用于監(jiān)聽所述腳本生產(chǎn)工具發(fā)送的輸入事件,將所述輸入事件發(fā)送給所述被測程序,以使所述被測程序根據(jù)所述輸入事件進(jìn)行操作響應(yīng)。

根據(jù)本發(fā)明的一些實(shí)施例,所述窗口截圖采集模塊用于:通過所述通信模塊獲取所述被測程序的窗口標(biāo)識,所述截圖進(jìn)程根據(jù)所述窗口標(biāo)識持續(xù)獲取所述應(yīng)用程序的窗口位置與大小并進(jìn)行窗口截圖。

本實(shí)施例提供的用于跨平臺自動測試的裝置可執(zhí)行本發(fā)明方法實(shí)施例所提供的用于跨平臺自動測試的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。

圖7示出了根據(jù)本發(fā)明一實(shí)施例的電子設(shè)備,如圖7所示,電子設(shè)備700可包括處理器710、存儲器720、發(fā)射器730及接收器740。

存儲器720可存儲用于處理器710控制操作處理的指令。存儲器720可包括易失性或非易失性存儲器,如靜態(tài)隨機(jī)存取存儲器(SRAM)、電可擦除可編程只讀存儲器(EEPROM)、可擦除可編程只讀存儲器(EPROM)、可編程只讀存儲器(PROM)、只讀存儲器(ROM)等,本發(fā)明對此沒有限制。

處理器710可調(diào)用存儲器720中存儲的指令控制相關(guān)操作。根據(jù)一實(shí)施例,存儲器720存儲用于處理器710控制以下操作的指令:

持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū);

監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件;

將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

易于理解,存儲器720還可存儲用于處理器710控制根據(jù)本發(fā)明實(shí)施例的其他操作的指令,這里不再贅述。

處理器710還可控制發(fā)射器730和接收器740進(jìn)行信號收發(fā)等。

通過以上的詳細(xì)描述,本領(lǐng)域的技術(shù)人員易于理解,根據(jù)本發(fā)明實(shí)施例的系統(tǒng)和方法具有以下優(yōu)點(diǎn)中的一個或多個。

根據(jù)本發(fā)明的實(shí)施例,監(jiān)聽對所述設(shè)備映射區(qū)的操作包括:監(jiān)聽對所述設(shè)備映射區(qū)的鼠標(biāo)按下操作、鼠標(biāo)抬起操作、鼠標(biāo)按下并移動操作、以及鍵盤輸入操作中的至少一種。

根據(jù)本發(fā)明的一些實(shí)施例,

若所述被測目標(biāo)設(shè)備為觸屏設(shè)備,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件包括:

根據(jù)鼠標(biāo)按下操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指按下操作的操作事件;

根據(jù)鼠標(biāo)抬起操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指抬起操作的操作事件;

根據(jù)鼠標(biāo)按下并移動操作得到對所述被測目標(biāo)設(shè)備進(jìn)行手指劃動操作的操作事件;

根據(jù)鍵盤輸入操作得到對所述被測目標(biāo)設(shè)備進(jìn)行功能按鍵操作的操作事件。

根據(jù)一些實(shí)施例,本發(fā)明還提供一種非臨時性計算機(jī)可讀存儲介質(zhì),例如包括指令的存儲器,上述指令可由裝置的處理器執(zhí)行以完成上述方法。例如,非臨時性計算機(jī)可讀存儲介質(zhì)可以是ROM、隨機(jī)存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。當(dāng)存儲介質(zhì)中的指令由終端的處理器執(zhí)行時,使得終端能夠執(zhí)行下述方法:持續(xù)接收被測目標(biāo)設(shè)備發(fā)送的屏幕畫面并將所述屏幕畫面渲染到在屏幕中指定的設(shè)備映射區(qū);監(jiān)聽對所述設(shè)備映射區(qū)的操作,根據(jù)所述操作得到對所述被測目標(biāo)設(shè)備的操作事件;將所述操作事件封裝成所述被測目標(biāo)設(shè)備的操作系統(tǒng)對應(yīng)的輸入事件,將所述輸入事件發(fā)送給所述被測目標(biāo)設(shè)備。

本領(lǐng)域技術(shù)人員可以理解,附圖只是示例實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的,因此不能用于限制本發(fā)明的保護(hù)范圍。

本領(lǐng)域技術(shù)人員可以理解上述各模塊可以按照實(shí)施例的描述分布于裝置中,也可以進(jìn)行相應(yīng)變化唯一不同于本實(shí)施例的一個或多個裝置中。上述實(shí)施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。

以上具體地示出和描述了本發(fā)明的示例性實(shí)施例。應(yīng)該理解,本發(fā)明不限于所公開的實(shí)施例,相反,本發(fā)明意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效布置。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
资中县| 胶州市| 九江县| 萝北县| 宁远县| 霸州市| 清新县| 十堰市| 新闻| 高邮市| 陈巴尔虎旗| 东乡| 晴隆县| 天津市| 定兴县| 仙桃市| 阿尔山市| 惠来县| 新平| 外汇| 武鸣县| 灵璧县| 新闻| 南京市| 义乌市| 青海省| 新绛县| 枝江市| 大厂| 奎屯市| 蒙城县| 本溪| 香港| 疏附县| 谢通门县| 南皮县| 通榆县| 信阳市| 阜康市| 蛟河市| 罗山县|