本申請(qǐng)涉及自動(dòng)化運(yùn)營(yíng)技術(shù)領(lǐng)域,具體涉及一種自動(dòng)化腳本的生成方法;相應(yīng)于上述方法,本申請(qǐng)同時(shí)涉及一種自動(dòng)化腳本的生成裝置及電子設(shè)備,以及一種自動(dòng)化腳本的運(yùn)行方法、裝置及電子設(shè)備。
背景技術(shù):
隨著計(jì)算機(jī)及互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,一些互聯(lián)網(wǎng)服務(wù)提供商推出了一種自動(dòng)化運(yùn)營(yíng)平臺(tái),這種自動(dòng)化運(yùn)營(yíng)平臺(tái)可以實(shí)現(xiàn)將用戶的有規(guī)律、重復(fù)性的操作轉(zhuǎn)化成自動(dòng)化操作的功能。例如,電子商務(wù)交易系統(tǒng)中的商品自動(dòng)化上架及下架、消息的自動(dòng)化推送、商品效果的自動(dòng)化追蹤、信息的自動(dòng)化搜集、系統(tǒng)資源的自動(dòng)化管理、自動(dòng)化下載圖片、自動(dòng)化圖片處理等。通過(guò)自動(dòng)化運(yùn)營(yíng)平臺(tái)將人工操作轉(zhuǎn)化成自動(dòng)化操作,能夠極大的降低人工工作量,從而達(dá)到節(jié)約人工成本、提高運(yùn)營(yíng)效率的效果。
傳統(tǒng)的自動(dòng)化腳本開(kāi)發(fā)方法為:開(kāi)發(fā)人員首先創(chuàng)建用于控制自動(dòng)化腳本運(yùn)行的用戶界面,然后再進(jìn)行操作邏輯的編碼。這種開(kāi)發(fā)方法需要開(kāi)發(fā)人員為每個(gè)自動(dòng)化腳本各自開(kāi)發(fā)用戶界面,一個(gè)用戶界面涉及的編碼量通常在千行左右、甚至更多。由此可見(jiàn),傳統(tǒng)方法開(kāi)發(fā)自動(dòng)化腳本的耗時(shí)較長(zhǎng)、工作量較大,特別是,在修改用戶界面后需要重新發(fā)布自動(dòng)化腳本。
綜上所述,現(xiàn)有技術(shù)存在需要為每個(gè)自動(dòng)化腳本各自開(kāi)發(fā)用戶界面的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┮环N自動(dòng)化腳本的生成方法,以解決現(xiàn)有技術(shù)下需要為每個(gè)自動(dòng)化腳本各自開(kāi)發(fā)用戶界面的問(wèn)題。本申請(qǐng)還提供一種自動(dòng)化腳本的生成裝置及電子設(shè)備,以及一種自動(dòng)化腳本的運(yùn)行方法、裝置及電子設(shè)備。
本申請(qǐng)?zhí)峁┮环N自動(dòng)化腳本的生成方法,包括:
獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼;
獲取生成用戶界面所依據(jù)的界面配置參數(shù);
根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
可選的,
所述待生成自動(dòng)化腳本的操作包括界面操作;
所述操作邏輯代碼包括與界面中的控件對(duì)應(yīng)的邏輯代碼;
所述與界面中的控件對(duì)應(yīng)的邏輯代碼,采用如下步驟生成:
根據(jù)為所述控件預(yù)設(shè)的控件標(biāo)識(shí)、及預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,獲取所述控件的控件類型屬性;以及,根據(jù)所述界面所屬的界面類型,確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù);
根據(jù)所述控件類型屬性和確定的所述腳本功能函數(shù),獲取為所述控件類型預(yù)設(shè)的動(dòng)作;
將所述控件標(biāo)識(shí)、所述映射關(guān)系集、獲取的所述預(yù)設(shè)的動(dòng)作、所述界面的界面標(biāo)識(shí)作為所述腳本功能函數(shù)的參數(shù),形成所述與界面中的控件對(duì)應(yīng)的邏輯代碼。
可選的,所述腳本功能函數(shù)的參數(shù)形式包括自然語(yǔ)言形式。
可選的,所述映射關(guān)系集采用如下步驟生成:
通過(guò)預(yù)設(shè)的控件抓取工具,獲取界面包括的控件及控件屬性;
為獲取到的各個(gè)控件設(shè)置所述控件標(biāo)識(shí);
根據(jù)設(shè)置的所述控件標(biāo)識(shí),形成各個(gè)控件的所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,將各個(gè)控件的所述映射關(guān)系形成所述映射關(guān)系集。
可選的,所述通過(guò)預(yù)設(shè)的控件抓取工具,獲取界面包括的控件及控件屬性的步驟,包括:
通過(guò)操作系統(tǒng)的應(yīng)用程序接口,獲取當(dāng)前鼠標(biāo)位置處的控件句柄;
根據(jù)所述控件句柄獲取所述當(dāng)前鼠標(biāo)位置處的控件對(duì)象;
根據(jù)所述控件對(duì)象,獲取所述當(dāng)前鼠標(biāo)位置處的控件;
讀取所述當(dāng)前鼠標(biāo)位置處的控件的各個(gè)屬性。
可選的,所述界面所屬的界面類型包括網(wǎng)頁(yè)類型或視窗類型。
可選的,所述操作邏輯代碼包括根據(jù)預(yù)先封裝的腳本功能函數(shù)編寫(xiě)的邏輯代碼。
可選的,所述預(yù)先封裝的腳本功能函數(shù)的參數(shù)形式包括自然語(yǔ)言形式。
可選的,還包括:
根據(jù)運(yùn)行所述自動(dòng)化腳本時(shí)所述預(yù)先封裝的腳本功能函數(shù)拋出的異常,調(diào)試所述自動(dòng)化腳本。
相應(yīng)的,本申請(qǐng)還提供一種自動(dòng)化腳本的生成裝置,包括:
操作邏輯代碼獲取單元,用于獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼;
界面配置參數(shù)獲取單元,用于獲取生成用戶界面所依據(jù)的界面配置參數(shù);
自動(dòng)化腳本生成單元,用于根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
可選的,所述待生成自動(dòng)化腳本的操作包括界面操作;所述操作邏輯代碼包括與界面中的控件對(duì)應(yīng)的邏輯代碼;所述裝置還包括:
控件邏輯代碼生成單元,用于生成所述與界面中的控件對(duì)應(yīng)的邏輯代碼;
所述控件邏輯代碼生成單元,包括:
控件類型屬性獲取子單元,用于根據(jù)為所述控件預(yù)設(shè)的控件標(biāo)識(shí)、及預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,獲取所述控件的控件類型屬性;
腳本功能函數(shù)確定子單元,用于根據(jù)所述界面所屬的界面類型,確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù);
動(dòng)作獲取子單元,用于根據(jù)所述控件類型屬性和確定的所述腳本功能函數(shù),獲取為所述控件類型預(yù)設(shè)的動(dòng)作;
控件邏輯代碼生成子單元,用于將所述控件標(biāo)識(shí)、所述映射關(guān)系集、獲取的所述預(yù)設(shè)的動(dòng)作、所述界面的界面標(biāo)識(shí)作為所述腳本功能函數(shù)的參數(shù),形成所述與界面中的控件對(duì)應(yīng)的邏輯代碼。
可選的,還包括:
映射關(guān)系集生成單元,用于生成所述映射關(guān)系集;
所述映射關(guān)系集生成單元,包括:
控件及控件屬性獲取子單元,用于通過(guò)預(yù)設(shè)的控件抓取工具,獲取界面包 括的控件及控件屬性;
控件標(biāo)識(shí)設(shè)置子單元,用于為獲取到的各個(gè)控件設(shè)置所述控件標(biāo)識(shí);
映射關(guān)系集生成子單元,用于根據(jù)設(shè)置的所述控件標(biāo)識(shí),形成各個(gè)控件的所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,將各個(gè)控件的所述映射關(guān)系形成所述映射關(guān)系集。
可選的,所述控件及控件屬性獲取子單元,包括:
句柄獲取子單元,用于通過(guò)操作系統(tǒng)的應(yīng)用程序接口,獲取當(dāng)前鼠標(biāo)位置處的控件句柄;
對(duì)象獲取子單元,用于根據(jù)所述控件句柄獲取所述當(dāng)前鼠標(biāo)位置處的控件對(duì)象;
控件獲取子單元,用于根據(jù)所述控件對(duì)象獲取所述當(dāng)前鼠標(biāo)位置處的控件;
屬性獲取子單元,用于讀取所述當(dāng)前鼠標(biāo)位置處的控件的各個(gè)屬性。
相應(yīng)的,本申請(qǐng)還提供一種電子設(shè)備,包括:
顯示器;
處理器;以及
存儲(chǔ)器,用于存儲(chǔ)實(shí)現(xiàn)自動(dòng)化腳本的生成方法的程序,該設(shè)備通電并通過(guò)所述處理器運(yùn)行該自動(dòng)化腳本的生成方法的程序后,執(zhí)行下述步驟:獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼;獲取生成用戶界面所依據(jù)的界面配置參數(shù);根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
相應(yīng)的,本申請(qǐng)還提供一種自動(dòng)化腳本的運(yùn)行方法,包括:
獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù);以及,獲取用戶界面模板;
根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面;
通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集;
根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
可選的,在所述從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作數(shù)據(jù)集之前, 還包括:
將所述組件注冊(cè)到所述操作系統(tǒng)中。
可選的,所述操作系統(tǒng)包括:視窗操作系統(tǒng)或非視窗操作系統(tǒng)。
可選的,所述操作系統(tǒng)是視窗操作系統(tǒng);所述將所述組件注冊(cè)到所述操作系統(tǒng)中,采用如下方式:
通過(guò)com組件方式,將所述組件注冊(cè)到所述視窗操作系統(tǒng)中。
可選的,所述操作系統(tǒng)是非視窗操作系統(tǒng);所述將所述組件注冊(cè)到所述操作系統(tǒng)中,采用如下方式:
通過(guò)配置文件方式,將所述組件注冊(cè)到所述非視窗操作系統(tǒng)中。
可選的,所述界面配置參數(shù)包括運(yùn)行參數(shù)標(biāo)識(shí)、所述待操作對(duì)象的屬性名、腳本功能標(biāo)識(shí)。
相應(yīng)的,本申請(qǐng)還提供一種自動(dòng)化腳本的運(yùn)行裝置,包括:
界面配置參數(shù)獲取單元,用于獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù);
用戶界面模板獲取單元,用于獲取用戶界面模板;
用戶界面生成單元,用于根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面;
腳本運(yùn)行相關(guān)數(shù)據(jù)獲取單元,用于通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集;
自動(dòng)化腳本執(zhí)行單元,用于根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
可選的,還包括:
組件注冊(cè)單元,用于將所述組件注冊(cè)到所述操作系統(tǒng)中。
相應(yīng)的,本申請(qǐng)還提供一種電子設(shè)備,包括:
顯示器;
處理器;以及
存儲(chǔ)器,用于存儲(chǔ)實(shí)現(xiàn)自動(dòng)化腳本的運(yùn)行方法的程序,該設(shè)備通電并通過(guò)所述處理器運(yùn)行該自動(dòng)化腳本的運(yùn)行方法的程序后,執(zhí)行下述步驟:獲取待運(yùn) 行自動(dòng)化腳本的用戶界面的界面配置參數(shù);以及,獲取用戶界面模板;根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面;通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集;根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
與現(xiàn)有技術(shù)相比,本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,在為可重復(fù)性操作編寫(xiě)操作邏輯代碼、及設(shè)置界面配置參數(shù)后,根據(jù)操作邏輯代碼、界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,生成該操作的自動(dòng)化腳本。
使用本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,在開(kāi)發(fā)自動(dòng)化腳本時(shí),使用通用的用戶界面模板,僅需為用戶界面設(shè)置界面配置參數(shù);這種處理方式,避免直接開(kāi)發(fā)用戶界面本身,簡(jiǎn)化了自動(dòng)化腳本的開(kāi)發(fā)過(guò)程,需要編寫(xiě)的代碼大幅度減少;因此,本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,可以有效減少開(kāi)發(fā)工作量、解放開(kāi)發(fā)人員、提升研發(fā)效率。
使用本申請(qǐng)?zhí)峁┑姆椒榻缑骖惖牟僮魃勺詣?dòng)化腳本時(shí),可以通過(guò)預(yù)設(shè)的控件抓取工具獲取界面中的控件及控件屬性,并根據(jù)為各個(gè)控件設(shè)置的控件標(biāo)識(shí),生成控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,在進(jìn)行操作邏輯編碼時(shí),開(kāi)發(fā)人員可以直接對(duì)映射關(guān)系中的控件進(jìn)行操作;這種處理方式,避免通過(guò)解析界面源代碼對(duì)控件進(jìn)行定位,既簡(jiǎn)化了界面控件定位的步驟又不容易出錯(cuò),且用戶無(wú)需學(xué)習(xí)界面開(kāi)發(fā)語(yǔ)言;因此,本申請(qǐng)?zhí)峁┑姆椒梢赃M(jìn)一步有效降低開(kāi)發(fā)成本、且減少程序出錯(cuò)的可能性。
此外,本申請(qǐng)?zhí)峁┑姆椒?,預(yù)先將腳本語(yǔ)言的同類自動(dòng)化指令進(jìn)行聚合,并將聚合的同類自動(dòng)化指令高度封裝,大量的自動(dòng)化指令高度封裝后縮減為少量的腳本功能函數(shù),開(kāi)發(fā)人員在邏輯編碼時(shí)可以將自動(dòng)化指令功能通過(guò)封裝的腳本功能函數(shù)以自然語(yǔ)言參數(shù)的方式進(jìn)行帶入;這種處理方式,極大的簡(jiǎn)化了腳本語(yǔ)言的學(xué)習(xí)成本。
此外,本申請(qǐng)?zhí)峁┑姆椒?,封裝后的每個(gè)腳本功能函數(shù)自帶判定功能,如果函數(shù)執(zhí)行失敗則立即報(bào)警,腳本的執(zhí)行過(guò)程既是調(diào)試代碼的過(guò)程;這種處理方式,使得無(wú)需專業(yè)開(kāi)發(fā)人員即可對(duì)腳本進(jìn)行調(diào)試;因此,本申請(qǐng)?zhí)峁┑姆椒軌蜻M(jìn)一步降低開(kāi)發(fā)成本。
當(dāng)然,實(shí)施本申請(qǐng)實(shí)施例的任一方法或產(chǎn)品并不一定需要同時(shí)達(dá)到以上所 述的所有優(yōu)點(diǎn)。
附圖說(shuō)明
圖1是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成方法的實(shí)施例的流程圖;
圖2是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成方法的實(shí)施例的用戶界面的流程圖;
圖3是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成方法的實(shí)施例的生成界面控件的腳本邏輯代碼的流程圖;
圖4是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成方法的實(shí)施例的生成映射關(guān)系集的流程圖;
圖5是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成裝置的實(shí)施例的示意圖;
圖6是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的生成裝置的實(shí)施例的具體示意圖;
圖7是本申請(qǐng)?zhí)峁┑囊环N電子設(shè)備的實(shí)施例的示意圖。
圖8是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的運(yùn)行方法的實(shí)施例的流程圖;
圖9是本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的運(yùn)行裝置的實(shí)施例的示意圖;
圖10是本申請(qǐng)?zhí)峁┑挠忠环N電子設(shè)備的實(shí)施例的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是,本申請(qǐng)能夠以很多不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此本申請(qǐng)不受下面公開(kāi)的具體實(shí)施的限制。
在本申請(qǐng)中,提供了一種自動(dòng)化腳本的生成方法、裝置及電子設(shè)備,一種自動(dòng)化腳本的運(yùn)行方法、裝置及電子設(shè)備。在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說(shuō)明。為了便于理解,在描述實(shí)施例之前,先對(duì)本申請(qǐng)的技術(shù)方案作簡(jiǎn)要的說(shuō)明。
在本申請(qǐng)?zhí)峁┑募夹g(shù)方案中,所述自動(dòng)化腳本的生成方法通常在自動(dòng)化運(yùn)營(yíng)平臺(tái)的開(kāi)發(fā)模塊實(shí)施,該方法與開(kāi)發(fā)人員相關(guān);所述自動(dòng)化腳本的運(yùn)行方法通常在自動(dòng)化運(yùn)營(yíng)平臺(tái)的移動(dòng)app模塊或客戶端模塊實(shí)施。
腳本開(kāi)發(fā)人員為特定操作編寫(xiě)該操作的操作邏輯代碼、及為用戶界面設(shè)置界面配置參數(shù)后,根據(jù)編寫(xiě)的操作邏輯代碼、設(shè)置的界面配置參數(shù)、及預(yù)先開(kāi)發(fā)的用戶界面模板,即可為該操作生成自動(dòng)化腳本,所述自動(dòng)化腳本的操作邏輯代碼和界面配置參數(shù)通常存儲(chǔ)在腳本服務(wù)器中,用戶界面模板通常包括在移動(dòng)客戶端(移動(dòng)app)中或臺(tái)式機(jī)客戶端中。將生成的自動(dòng)化腳本發(fā)布后,移動(dòng)設(shè)備通過(guò)所述移動(dòng)客戶端、臺(tái)式機(jī)通過(guò)所述臺(tái)式機(jī)客戶端生成所述自動(dòng)化腳本對(duì)應(yīng)的用戶界面,在生成所述用戶界面時(shí),客戶端首先需要獲取界面配置參數(shù),然后,再根據(jù)界面配置參數(shù)和用戶界面模板生成用戶界面,當(dāng)用戶在該用戶界面中設(shè)置腳本運(yùn)行參數(shù)、增加待操作對(duì)象后,所述客戶端通過(guò)預(yù)先注冊(cè)的用于獲取用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集,并根據(jù)運(yùn)行參數(shù)數(shù)據(jù)執(zhí)行自動(dòng)化腳本,對(duì)待操作對(duì)象集中的各個(gè)對(duì)象進(jìn)行處理。
本申請(qǐng)?zhí)峁┑募夹g(shù)方案,在開(kāi)發(fā)自動(dòng)化腳本時(shí),使用通用的用戶界面模板,僅需為用戶界面設(shè)置界面配置參數(shù)即可,無(wú)需進(jìn)行用戶界面的開(kāi)發(fā)。由于僅需設(shè)置界面配置參數(shù),因而,簡(jiǎn)化了自動(dòng)化腳本的開(kāi)發(fā)過(guò)程,需要編寫(xiě)的代碼大幅度減少。
下面,對(duì)本申請(qǐng)的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。請(qǐng)參考圖1,其為本申請(qǐng)的自動(dòng)化腳本的生成方法的實(shí)施例的流程圖。
在實(shí)施本方法之前,即:獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼,及獲取生成用戶界面所依據(jù)的界面配置參數(shù),并根據(jù)操作邏輯代碼、界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本之前,需要預(yù)先開(kāi)發(fā)可通用的用戶界面模板。
通過(guò)對(duì)傳統(tǒng)開(kāi)發(fā)方法下不同自動(dòng)化腳本對(duì)應(yīng)的用戶界面的分析和抽象,發(fā)明人發(fā)現(xiàn)可以將各種用戶界面抽象為包括:自動(dòng)化工具列表、執(zhí)行操作列表、參數(shù)配置列表及操作對(duì)象列表這四部分內(nèi)容的用戶界面模板。基于這種抽象可設(shè)計(jì)并開(kāi)發(fā)通用的用戶界面模板,不同自動(dòng)化腳本的用戶界面在所述執(zhí)行操作列表部分、參數(shù)配置列表部分及操作對(duì)象列表部分的不同之處,可以根據(jù)為各個(gè)用戶界面分別設(shè)置的界面配置參數(shù)體現(xiàn),根據(jù)不同的界面配置參數(shù)可生成不同的用戶界面。
請(qǐng)參考圖2,其為本申請(qǐng)的自動(dòng)化腳本的生成方法的實(shí)施例的用戶界面的示 意圖。由圖2可見(jiàn),用戶界面模板包括一個(gè)treeview(樹(shù)形視圖)及三個(gè)listview(列表視圖),treeview中以腳本開(kāi)發(fā)者為樹(shù)節(jié)點(diǎn),顯示各個(gè)開(kāi)發(fā)者開(kāi)發(fā)的腳本工具,在“執(zhí)行操作”這個(gè)listview中顯示了已選腳本工具包括的各個(gè)功能標(biāo)識(shí)所對(duì)應(yīng)的執(zhí)行按鈕,在“參數(shù)配置”這個(gè)listview中顯示了可為已選腳本工具配置的腳本運(yùn)行參數(shù),在“數(shù)據(jù)列表”這個(gè)listview中顯示了操作對(duì)象的屬性和數(shù)據(jù)。本實(shí)施例的界面配置參數(shù)包括:自動(dòng)化腳本的功能標(biāo)識(shí)、腳本運(yùn)行參數(shù)名、操作對(duì)象的屬性名。
預(yù)先開(kāi)發(fā)了用戶界面模板后,該模板可用于不同的自動(dòng)化腳本,在為各種操作編寫(xiě)自動(dòng)化腳本時(shí),無(wú)需開(kāi)發(fā)用戶界面,從而簡(jiǎn)化了腳本開(kāi)發(fā)過(guò)程。開(kāi)發(fā)用戶界面模板可采用c#等高級(jí)程序語(yǔ)言。
預(yù)先開(kāi)發(fā)了用戶界面模板后,可以執(zhí)行圖1所述的步驟s101至步驟s105,以實(shí)現(xiàn)本實(shí)施例提供的自動(dòng)化腳本的生成方法,下面對(duì)各個(gè)步驟進(jìn)行詳細(xì)說(shuō)明。
步驟s101:獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼。
所述操作是指可重復(fù)性操作,例如,商品上架及下架、消息推送、商品效果追蹤、信息搜集、系統(tǒng)資源管理、下載圖片、圖片處理等操作。所述操作可以為對(duì)界面的操作,還可以為與界面無(wú)關(guān)的操作,例如,商品上架及下架即為對(duì)界面的操作,下載圖片即為與界面無(wú)關(guān)的操作。
所述操作邏輯代碼是指,采用腳本語(yǔ)言編寫(xiě)的有關(guān)操作過(guò)程的腳本代碼,例如,商品上架的操作過(guò)程為按預(yù)設(shè)添寫(xiě)順序?yàn)樯唐返母鞣N屬性添寫(xiě)屬性值,則商品上架的操作邏輯代碼包括所需添寫(xiě)的屬性及添寫(xiě)順序等邏輯代碼。
編寫(xiě)自動(dòng)化腳本可采用的腳本語(yǔ)言包括但不限于:autoit、javascript、vbscript等腳本語(yǔ)言。如果所述待生成自動(dòng)化腳本的操作涉及windows界面操作,則可以采用autoit腳本語(yǔ)言,該語(yǔ)言可在windowsgui(用戶界面)中進(jìn)行自動(dòng)操作,可以組合使用模擬鍵擊、鼠標(biāo)移動(dòng)和窗口/控件操作等來(lái)實(shí)現(xiàn)自動(dòng)化任務(wù),這是其它腳本語(yǔ)言所無(wú)法做到或尚無(wú)可靠方法實(shí)現(xiàn)的(比如vbscript和sendkeys)。
在實(shí)施本步驟之前,需要先由腳本開(kāi)發(fā)人員為待生成自動(dòng)化腳本的操作編寫(xiě)操作邏輯代碼。腳本開(kāi)發(fā)人員編寫(xiě)完成操作邏輯代碼后,將操作邏輯代碼提交給執(zhí)行本申請(qǐng)的自動(dòng)化腳本的生成方法的執(zhí)行者,該執(zhí)行者可以為腳本生成器。所述執(zhí)行者獲取到所述操作邏輯代碼后,即可執(zhí)行下一步獲取生成用戶界 面所依據(jù)的界面配置參數(shù)。
需要說(shuō)明的是,本步驟和下一步驟并無(wú)確定的前后執(zhí)行順序,在具體實(shí)施時(shí),腳本開(kāi)發(fā)人員也可先將所述界面配置參數(shù)提交給所述執(zhí)行者,再將所述操作邏輯代碼提交所述執(zhí)行者,這種執(zhí)行順序?qū)ψ罱K生成的自動(dòng)化腳本并不產(chǎn)生影響,這兩個(gè)步驟之間并無(wú)依賴關(guān)系。
目前,腳本開(kāi)發(fā)人員在編寫(xiě)操作邏輯代碼時(shí),需要使用腳本語(yǔ)言所提供的自動(dòng)化指令(函數(shù)指令)。由于腳本語(yǔ)言所提供的自動(dòng)化指令非常多,以autoit腳本語(yǔ)言為例,該語(yǔ)言提供了幾千個(gè)自動(dòng)化指令,因此,現(xiàn)有技術(shù)下編寫(xiě)操作邏輯代碼,存在學(xué)習(xí)成本巨大、開(kāi)發(fā)門檻較高、非專業(yè)人士不能夠上手的問(wèn)題。
為了解決現(xiàn)有技術(shù)下編寫(xiě)操作邏輯代碼存在的學(xué)習(xí)成本大等問(wèn)題,本申請(qǐng)?zhí)峁┑姆椒?,在開(kāi)發(fā)人員開(kāi)發(fā)自動(dòng)化腳本之前,預(yù)先將腳本語(yǔ)言的同類自動(dòng)化指令進(jìn)行聚合,并將聚合的同類自動(dòng)化指令高度封裝,大量的自動(dòng)化指令高度封裝后縮減為少量的腳本功能函數(shù),將這些高度封裝的腳本功能函數(shù)提供給腳本開(kāi)發(fā)人員編寫(xiě)操作邏輯編碼用。因此,腳本開(kāi)發(fā)人員僅需掌握少量的高度封裝的腳本功能函數(shù),無(wú)需學(xué)習(xí)腳本語(yǔ)言提供的大量自動(dòng)化指令,在編寫(xiě)操作邏輯編碼時(shí),可以將自動(dòng)化指令功能通過(guò)封裝的腳本功能函數(shù)以參數(shù)的方式進(jìn)行帶入,從而極大的簡(jiǎn)化了腳本語(yǔ)言的學(xué)習(xí)成本。在具體實(shí)施時(shí),還可進(jìn)一步的將封裝的腳本功能函數(shù)的參數(shù)形式設(shè)置為自然語(yǔ)言形式,例如,中文參數(shù)形式。
以autoit腳本語(yǔ)言為例,該語(yǔ)言提供了2000多個(gè)自動(dòng)化指令,通過(guò)將同類指令聚合后高度封裝了20個(gè)基本類別的腳本功能函數(shù),例如,圖形處理類的腳本功能函數(shù)、文件操作類的腳本功能函數(shù)、officeexcel類的腳本功能函數(shù)、ie類的腳本功能函數(shù)等。
在本實(shí)施例中,采用autoit腳本語(yǔ)言編寫(xiě)腳本程序,將ie類的自動(dòng)化指令封裝后形成的腳本功能函數(shù)的形式可以為:_j_ie(“控件標(biāo)識(shí)與控件屬性的映射關(guān)系集文件”,“控件標(biāo)識(shí)”,“操作類型”,“控件值”,“頁(yè)面對(duì)象標(biāo)識(shí)”),其中,_j_ie為封裝后的ie類腳本功能函數(shù)的函數(shù)名,該函數(shù)的第三個(gè)參數(shù)“操作類型”的參數(shù)值為中文形式表達(dá)的具體自動(dòng)化指令,例如,對(duì)于網(wǎng)頁(yè)中的輸入框元素,該參數(shù)的參數(shù)值包括“輸入”這個(gè)參數(shù)值;對(duì)于網(wǎng)頁(yè)中的按鈕元素,該參數(shù)的參數(shù)值包括“點(diǎn)擊”這個(gè)參數(shù)值,開(kāi)發(fā)人員在編寫(xiě)操作邏輯編碼時(shí),只需要掌握_j_ie函數(shù)及“操作類型”的各種中文參數(shù)值即可。
當(dāng)所述操作屬于所述對(duì)界面的操作時(shí),所述操作邏輯代碼包括與界面中的控件對(duì)應(yīng)的邏輯代碼。目前,腳本開(kāi)發(fā)人員在為所述對(duì)界面的操作編寫(xiě)操作邏輯代碼時(shí),需要分析界面源代碼以對(duì)界面中的控件進(jìn)行定位;這種處理方式,需要開(kāi)發(fā)人員掌握界面開(kāi)發(fā)語(yǔ)言,且需要人工進(jìn)行控件定位;因此,現(xiàn)有技術(shù)下對(duì)界面控件進(jìn)行定位,存在學(xué)習(xí)成本巨大、開(kāi)發(fā)門檻較高、非專業(yè)人士不能夠上手且容易定位出錯(cuò)的問(wèn)題。
為了解決現(xiàn)有技術(shù)下對(duì)界面控件定位存在學(xué)習(xí)成本巨大且容易出錯(cuò)等問(wèn)題,本申請(qǐng)?zhí)峁┑姆椒?,在開(kāi)發(fā)人員編寫(xiě)操作邏輯代碼之前,首先生成界面中各個(gè)控件的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,即所述映射關(guān)系集。開(kāi)發(fā)人員在為界面中的控件編寫(xiě)與其對(duì)應(yīng)的邏輯編碼時(shí),可以直接對(duì)映射關(guān)系中的控件進(jìn)行操作,避免通過(guò)解析界面源代碼對(duì)控件進(jìn)行定位,既簡(jiǎn)化了界面控件定位的步驟又不容易出錯(cuò),且無(wú)需開(kāi)發(fā)人員學(xué)習(xí)界面開(kāi)發(fā)語(yǔ)言。
請(qǐng)參考圖3,其為本申請(qǐng)的自動(dòng)化腳本的生成方法的實(shí)施例的生成界面控件的腳本邏輯代碼的流程圖。在具體實(shí)施時(shí),所述與界面中的控件對(duì)應(yīng)的邏輯代碼,可采用如下步驟生成:
步驟s201:根據(jù)為所述控件預(yù)設(shè)的控件標(biāo)識(shí)、及預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,獲取所述控件的控件類型屬性;以及,根據(jù)所述界面所屬的界面類型,確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù)。
所述控件的控件標(biāo)識(shí)是在生成所述映射關(guān)系集時(shí)由腳本開(kāi)發(fā)人員設(shè)置的,在所述映射關(guān)系集生成后,當(dāng)開(kāi)發(fā)人員需要對(duì)控件進(jìn)行定位時(shí),無(wú)需查看界面源代碼,僅需指定控件標(biāo)識(shí),即可根據(jù)預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,獲取控件的控件類型屬性。
所述控件類型屬性是指,標(biāo)識(shí)控件類型的屬性,例如,html網(wǎng)頁(yè)元素<input>的元素(即控件)類型為text類型。
所述預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集包括:所述界面中各個(gè)控件的所述控件標(biāo)識(shí)及所述控件屬性之間的映射關(guān)系。
在實(shí)施本步驟之前,需要首先生成所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集。請(qǐng)參考圖4,其為本申請(qǐng)的自動(dòng)化腳本的生成方法的實(shí)施例的生成映射關(guān)系集的流程圖。在本實(shí)施例中,所述映射關(guān)系集可采用如下步驟生成:
步驟s301:通過(guò)預(yù)設(shè)的控件抓取工具,獲取界面包括的控件及控件屬性。
通過(guò)控件抓取工具獲取界面包括的控件及控件屬性的過(guò)程,可包括如下步驟:1)通過(guò)操作系統(tǒng)的應(yīng)用程序接口(如winapi),獲取當(dāng)前鼠標(biāo)位置處的控件句柄(例如,針對(duì)所述界面中的各個(gè)控件,可將鼠標(biāo)移動(dòng)至所述控件的上方);2)根據(jù)所述控件句柄獲取所述當(dāng)前鼠標(biāo)位置處的控件對(duì)象;3)根據(jù)所述控件對(duì)象獲取所述當(dāng)前鼠標(biāo)位置處的控件;4)讀取所述當(dāng)前鼠標(biāo)位置處的控件的各個(gè)屬性。
步驟s303:為獲取到的各個(gè)控件設(shè)置所述控件標(biāo)識(shí)。
抓取到界面包括的控件、并獲取到控件的各個(gè)屬性后,還需要為控件設(shè)置控件標(biāo)識(shí),開(kāi)發(fā)人員可直接通過(guò)控件標(biāo)識(shí)對(duì)界面控件定位,例如,可將登錄頁(yè)面中的賬戶名輸入框這個(gè)控件(如該控件的控件名屬性值為username)的控件標(biāo)識(shí)設(shè)置為開(kāi)發(fā)人員容易記住的“商品名稱”。
步驟s305:根據(jù)設(shè)置的所述控件標(biāo)識(shí),形成各個(gè)控件的所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,將各個(gè)控件的所述映射關(guān)系形成所述映射關(guān)系集。
將控件的控件標(biāo)識(shí)、控件屬性,形成控件的所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,各個(gè)控件的所述映射關(guān)系構(gòu)成所述映射關(guān)系集。
在具體實(shí)施時(shí),可將映射關(guān)系集保存在數(shù)據(jù)庫(kù)中,以供開(kāi)發(fā)人員定位控件用。開(kāi)發(fā)人員可以直接對(duì)預(yù)先生成的映射關(guān)系中的控件進(jìn)行操作,簡(jiǎn)化了解析源代碼的步驟。
至此,通過(guò)步驟s301至步驟s305,對(duì)本實(shí)施例提供的生成所述映射關(guān)系集的實(shí)施方式進(jìn)行了詳細(xì)描述。
本步驟s201還需要根據(jù)界面所屬的界面類型,確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù)。例如,網(wǎng)頁(yè)所屬的界面類型為ie類界面,該ie類界面對(duì)應(yīng)的腳本功能函數(shù)可以為_(kāi)j_ie。
獲取到所述控件的控件類型屬性、及確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù)之后,就可以進(jìn)入下一步根據(jù)所述控件類型屬性和確定的所述腳本功能函數(shù),獲取為所述控件類型預(yù)設(shè)的動(dòng)作。
步驟s203:根據(jù)所述控件類型屬性和確定的所述腳本功能函數(shù),獲取為所述控件類型預(yù)設(shè)的動(dòng)作。
所述動(dòng)作是指對(duì)所述控件進(jìn)行的操作,例如,控件類型屬性為text類型,腳本功能函數(shù)為_(kāi)j_ie,則動(dòng)作包括“輸入”、“刪除”等動(dòng)作。
為了簡(jiǎn)化編寫(xiě)與控件對(duì)應(yīng)的邏輯代碼的步驟,所述腳本功能函數(shù)的封裝者在封裝腳本功能函數(shù)時(shí)為各個(gè)腳本功能函數(shù)指定了與控件類型對(duì)應(yīng)的默認(rèn)動(dòng)作。根據(jù)上一步驟獲取的所述控件類型屬性和確定的所述腳本功能函數(shù),即可獲取為所述控件類型預(yù)設(shè)的動(dòng)作。例如,控件類型屬性為text類型,腳本功能函數(shù)為_(kāi)j_ie,則預(yù)設(shè)動(dòng)作可以為“輸入”動(dòng)作。
步驟s205:將所述控件標(biāo)識(shí)、所述映射關(guān)系集、獲取的所述預(yù)設(shè)的動(dòng)作、所述界面的界面標(biāo)識(shí)作為所述腳本功能函數(shù)的參數(shù),形成所述與界面中的控件對(duì)應(yīng)的邏輯代碼。
本步驟將所述控件標(biāo)識(shí)、所述映射關(guān)系集、獲取的所述預(yù)設(shè)的動(dòng)作、所述界面的界面標(biāo)識(shí)作為所述腳本功能函數(shù)的參數(shù),形成所述與界面中的控件對(duì)應(yīng)的邏輯代碼。例如,為登錄頁(yè)面包括的帳戶名輸入框控件生成的邏輯代碼可以為:_j_ie(“控件標(biāo)識(shí)與控件屬性的映射關(guān)系集文件”,“帳戶名”,“輸入”,“張三”,$ie)。
至此,通過(guò)步驟s201至步驟s205,對(duì)本實(shí)施例提供的為界面中的控件生成與其對(duì)應(yīng)的邏輯代碼的實(shí)施方式進(jìn)行了詳細(xì)描述。
下面以登陸頁(yè)面的登陸操作為例,給出應(yīng)用本申請(qǐng)實(shí)施例提供的方法生成的操作邏輯代碼,以直觀說(shuō)明應(yīng)用本申請(qǐng)實(shí)施例提供的方法所達(dá)到的效果。生成的操作邏輯代碼如下:
local$ie=j(luò)_ie_create("www.taobao.com/login.html")
local$res1=j(luò)_ie("login","登錄輸入框","輸入","張三",$ie)
local$res2=j(luò)_ie("login","密碼輸入框","模擬輸入","abbk35kd",$ie)
local$res3=j(luò)_ie("login","登錄按鈕","點(diǎn)擊","",$ie)
上述代碼j_ie_create("www.taobao.com/login.html"),用于新建一個(gè)ie窗口并打開(kāi)www.taobao.com/login.html頁(yè)面,聲明一個(gè)名為$ie的局域變量,裝入這個(gè)新創(chuàng)建瀏覽器的對(duì)象,即$ie用于表示該頁(yè)面對(duì)象;上述代碼j_ie("login","登錄輸入框","輸入","張三",$ie)對(duì)應(yīng)賬戶名的普通輸入操作,成功返回1,失敗返回0;上述代碼j_ie("login","密碼輸入框","模擬輸入","abbk35kd",$ie)模擬鼠標(biāo)鍵盤進(jìn)行操作,成功返回1,失敗返回0;上述代碼j_ie("login","登錄按鈕","點(diǎn)擊","",$ie)對(duì)應(yīng)普通點(diǎn)擊按鈕操作,因?yàn)榘粹o控件不需要輸入數(shù)據(jù),所以值參數(shù)用“”表示不要輸入,成功返回1,失敗返回0。
步驟s103:獲取生成用戶界面所依據(jù)的界面配置參數(shù)。
所述用戶界面是指,供用戶使用的、用于控制自動(dòng)化腳本運(yùn)行的界面。由于本申請(qǐng)的用戶界面根據(jù)用戶界面模板和界面配置參數(shù)生成,因此,在生成自動(dòng)化腳本時(shí)還需要獲取界面配置參數(shù)。
所述界面配置參數(shù)包括但不限于:用于控制腳本運(yùn)行的各個(gè)運(yùn)行參數(shù)標(biāo)識(shí)(如運(yùn)行參數(shù)名)和操作對(duì)象的屬性名。
在實(shí)施本步驟之前,需要先由腳本開(kāi)發(fā)人員為用戶界面設(shè)置界面配置參數(shù)。腳本開(kāi)發(fā)人員設(shè)置完成界面配置參數(shù)后,將界面配置參數(shù)提交給執(zhí)行本申請(qǐng)的自動(dòng)化腳本的生成方法的執(zhí)行者。所述執(zhí)行者獲取到所述操作邏輯代碼和所述界面配置參數(shù)后,即可進(jìn)入下一步為所述操作生成自動(dòng)化腳本。
步驟s105:根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
獲取到操作邏輯代碼和界面配置參數(shù)后,根據(jù)操作邏輯代碼和界面配置參數(shù),以及預(yù)先開(kāi)發(fā)的用戶界面模板,即可為所述操作生成自動(dòng)化腳本。
在具體實(shí)施時(shí),操作邏輯代碼和界面配置參數(shù)通常存儲(chǔ)在腳本服務(wù)器中,用戶界面模板通常包括在移動(dòng)客戶端或臺(tái)式機(jī)客戶端中。
在現(xiàn)有技術(shù)下,對(duì)于直接根據(jù)腳本語(yǔ)言提供的自動(dòng)化指令所編寫(xiě)的操作邏輯代碼,只有掌握這些自動(dòng)化指令的專業(yè)開(kāi)發(fā)人員才能夠?qū)ψ詣?dòng)化腳本進(jìn)行調(diào)試。因此,現(xiàn)有技術(shù)下調(diào)試自動(dòng)化腳本,存在工作量較大且調(diào)試難度較高的問(wèn)題。
為了降低腳本調(diào)試的工作量及降低調(diào)試難度,本申請(qǐng)?zhí)峁┑姆椒?,根?jù)運(yùn)行自動(dòng)化腳本時(shí)腳本功能函數(shù)拋出的異常,對(duì)自動(dòng)化腳本進(jìn)行調(diào)試。
在具體實(shí)施時(shí),為腳本開(kāi)發(fā)人員提供的高度封裝的腳本功能函數(shù)可以帶有判定功能,如果函數(shù)執(zhí)行失敗則可通過(guò)拋出異常的方式向開(kāi)發(fā)人員報(bào)警,拋出的具體異常信息可作為調(diào)試指導(dǎo)信息,指導(dǎo)開(kāi)發(fā)人員對(duì)自動(dòng)化腳本進(jìn)行修改。采用這種處理方式,腳本的執(zhí)行過(guò)程既是調(diào)試代碼的過(guò)程,因此,能夠達(dá)到無(wú)需專業(yè)開(kāi)發(fā)人員即可對(duì)腳本進(jìn)行調(diào)試的效果。
在上述的實(shí)施例中,提供了一種自動(dòng)化腳本的生成方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種自動(dòng)化腳本的生成裝置。該裝置是與上述方法的實(shí)施例相對(duì)應(yīng)。
請(qǐng)參看圖5,其為本申請(qǐng)的自動(dòng)化腳本的生成裝置的實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種自動(dòng)化腳本的生成裝置,包括:操作邏輯代碼獲取單元101,用于獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼;界面配置參數(shù)獲取單元103,用于獲取生成用戶界面所依據(jù)的界面配置參數(shù);自動(dòng)化腳本生成單元105,用于根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
請(qǐng)參看圖6,其為本申請(qǐng)的自動(dòng)化腳本的生成裝置的實(shí)施例的具體示意圖。可選的,所述待生成自動(dòng)化腳本的操作包括界面操作;所述操作邏輯代碼包括與界面中的控件對(duì)應(yīng)的邏輯代碼;所述裝置還包括:
控件邏輯代碼生成單元201,用于生成所述與界面中的控件對(duì)應(yīng)的邏輯代碼;
所述控件邏輯代碼生成單元201,包括:
控件類型屬性獲取子單元,用于根據(jù)為所述控件預(yù)設(shè)的控件標(biāo)識(shí)、及預(yù)先生成的控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系集,獲取所述控件的控件類型屬性;
腳本功能函數(shù)確定子單元,用于根據(jù)所述界面所屬的界面類型,確定與所述界面對(duì)應(yīng)的預(yù)先封裝的腳本功能函數(shù);
動(dòng)作獲取子單元,用于根據(jù)所述控件類型屬性和確定的所述腳本功能函數(shù),獲取為所述控件類型預(yù)設(shè)的動(dòng)作;
控件邏輯代碼生成子單元,用于將所述控件標(biāo)識(shí)、所述映射關(guān)系集、獲取的所述預(yù)設(shè)的動(dòng)作、所述界面的界面標(biāo)識(shí)作為所述腳本功能函數(shù)的參數(shù),形成所述與界面中的控件對(duì)應(yīng)的邏輯代碼。
可選的,還包括:
映射關(guān)系集生成單元203,用于生成所述映射關(guān)系集;
所述映射關(guān)系集生成單元203,包括:
控件及控件屬性獲取子單元2031,用于通過(guò)預(yù)設(shè)的控件抓取工具,獲取界面包括的控件及控件屬性;
控件標(biāo)識(shí)設(shè)置子單元2033,用于為獲取到的各個(gè)控件設(shè)置所述控件標(biāo)識(shí);
映射關(guān)系集生成子單元2035,用于根據(jù)設(shè)置的所述控件標(biāo)識(shí),形成各個(gè)控件的所述控件標(biāo)識(shí)與控件屬性之間的映射關(guān)系,將各個(gè)控件的所述映射關(guān)系形成所述映射關(guān)系集。
可選的,所述控件及控件屬性獲取子單元2031,包括:
句柄獲取子單元,用于通過(guò)操作系統(tǒng)的應(yīng)用程序接口,獲取當(dāng)前鼠標(biāo)位置處的控件句柄;
對(duì)象獲取子單元,用于根據(jù)所述控件句柄獲取所述當(dāng)前鼠標(biāo)位置處的控件對(duì)象;
控件獲取子單元,用于根據(jù)所述控件對(duì)象獲取所述當(dāng)前鼠標(biāo)位置處的控件;
屬性獲取子單元,用于讀取所述當(dāng)前鼠標(biāo)位置處的控件的各個(gè)屬性。
請(qǐng)參考圖7,其為本申請(qǐng)的一種電子設(shè)備實(shí)施例的示意圖。由于設(shè)備實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的設(shè)備實(shí)施例僅僅是示意性的。
本實(shí)施例的一種電子設(shè)備,該電子設(shè)備包括:顯示器101;處理器102;以及存儲(chǔ)器103,用于存儲(chǔ)實(shí)現(xiàn)自動(dòng)化腳本的生成方法的程序,該設(shè)備通電并通過(guò)所述處理器運(yùn)行該自動(dòng)化腳本的生成方法的程序后,執(zhí)行下述步驟:獲取為待生成自動(dòng)化腳本的操作編寫(xiě)的操作邏輯代碼;獲取生成用戶界面所依據(jù)的界面配置參數(shù);根據(jù)所述操作邏輯代碼、所述界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,為所述待生成自動(dòng)化腳本的操作生成自動(dòng)化腳本。
本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,在為可重復(fù)性操作編寫(xiě)操作邏輯代碼、及設(shè)置界面配置參數(shù)后,根據(jù)操作邏輯代碼、界面配置參數(shù)及預(yù)先開(kāi)發(fā)的用戶界面模板,生成該操作的自動(dòng)化腳本。使用本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,在開(kāi)發(fā)自動(dòng)化腳本時(shí),僅需為用戶界面設(shè)置界面配置參數(shù),無(wú)需開(kāi)發(fā)用戶界面本身,簡(jiǎn)化了自動(dòng)化腳本的開(kāi)發(fā)過(guò)程,需要編寫(xiě)的代碼大幅度減少;因此,本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的生成方法,可以有效減少開(kāi)發(fā)工作量、解放開(kāi)發(fā)人員、提升研發(fā)效率。
與上述的自動(dòng)化腳本的生成方法相對(duì)應(yīng),本申請(qǐng)還提供一種自動(dòng)化腳本的運(yùn)行方法。請(qǐng)參考圖8,其為本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的運(yùn)行方法實(shí)施例的流程圖,本實(shí)施例與第一實(shí)施例內(nèi)容相同的部分不再贅述,請(qǐng)參見(jiàn)實(shí)施例一中的相應(yīng)部分。本申請(qǐng)?zhí)峁┑囊环N自動(dòng)化腳本的運(yùn)行方法包括:
步驟s101:獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù);以及,獲取用戶界面模板。
所述界面配置參數(shù)包括但不限于:用于控制腳本運(yùn)行的各個(gè)運(yùn)行參數(shù)標(biāo)識(shí)、所述待操作對(duì)象的屬性名、腳本功能標(biāo)識(shí)。
界面配置參數(shù)通常和自動(dòng)化腳本的操作邏輯代碼一同存儲(chǔ)在腳本服務(wù)器中,獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù)的步驟,具體可以為:首先,向腳本服務(wù)器發(fā)送對(duì)應(yīng)所述待運(yùn)行自動(dòng)化腳本的界面配置參數(shù)請(qǐng)求;服務(wù)器端接收到界面配置參數(shù)請(qǐng)求后,向請(qǐng)求方返回界面配置參數(shù);請(qǐng)求方接收到服務(wù)器返回的界面配置參數(shù)。
要實(shí)施本申請(qǐng)?zhí)峁┑淖詣?dòng)化腳本的運(yùn)行方法,還需要獲取用戶界面模板。用戶界面模板通常包括在移動(dòng)客戶端或臺(tái)式機(jī)客戶端中,啟動(dòng)客戶端時(shí)即可獲取到用戶界面模板。
步驟s103:根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面。
獲取到所述界面配置參數(shù)、及用戶界面模板后,即可根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成供用戶使用的、用于控制自動(dòng)化腳本運(yùn)行的所述用戶界面。
在具體實(shí)施時(shí),可以將各個(gè)界面配置參數(shù)填充到用戶界面模板的對(duì)應(yīng)位置處。由上述實(shí)施例一中圖2可見(jiàn),生成的用戶界面中“參數(shù)配置”部分顯示的“旺旺綁定信息”、“圖片路徑”、“發(fā)送延遲”、“發(fā)送類型”均屬于運(yùn)行參數(shù)名;“數(shù)據(jù)列表”部分顯示的“旺旺名稱”、“發(fā)送狀態(tài)”等為操作對(duì)象的屬性名;“執(zhí)行操作”部分顯示的“綁定旺旺”、“發(fā)送圖片”等按鈕為已選腳本工具包括的各個(gè)功能標(biāo)識(shí)所對(duì)應(yīng)的執(zhí)行按鈕。
步驟s105:通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集。
所述預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,用于從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集。
在生成用戶界面后,用戶即可通過(guò)該界面添加待操作對(duì)象、設(shè)置運(yùn)行參數(shù)的屬性值等操作。當(dāng)用戶點(diǎn)擊某個(gè)功能標(biāo)識(shí)的執(zhí)行按鈕時(shí),通過(guò)預(yù)先注冊(cè)的所述組件,即可從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)(即:運(yùn)行參數(shù)的參數(shù)名和 參數(shù)值)和待操作對(duì)象集。
例如,待運(yùn)行自動(dòng)化腳本為商品上架操作的自動(dòng)化腳本,通過(guò)所述組件獲取到的待操作對(duì)象包括多個(gè)待上架的商品。
要使用所述組件,在執(zhí)行本申請(qǐng)?zhí)峁┑姆椒ㄖ?,需要先將所述組件注冊(cè)到所述操作系統(tǒng)中。
所述操作系統(tǒng)包括:視窗操作系統(tǒng)或非視窗操作系統(tǒng)。如果所述操作系統(tǒng)為視窗操作系統(tǒng),則可以通過(guò)com組件方式,將所述組件注冊(cè)到所述視窗操作系統(tǒng)中;如果所述操作系統(tǒng)為非視窗操作系統(tǒng),則可以通過(guò)配置文件方式,將所述組件注冊(cè)到所述非視窗操作系統(tǒng)中。
步驟s107:根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
通過(guò)所述組建獲取到運(yùn)行參數(shù)數(shù)據(jù)及待操作對(duì)象集后,根據(jù)運(yùn)行參數(shù)數(shù)據(jù)可以對(duì)自動(dòng)化腳本的執(zhí)行方式進(jìn)行控制,并通過(guò)執(zhí)行自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
在上述的實(shí)施例中,提供了一種自動(dòng)化腳本的運(yùn)行方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種自動(dòng)化腳本的運(yùn)行裝置。該裝置是與上述方法的實(shí)施例相對(duì)應(yīng)。
請(qǐng)參看圖9,其為本申請(qǐng)的自動(dòng)化腳本的運(yùn)行裝置實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種自動(dòng)化腳本的運(yùn)行裝置,包括:界面配置參數(shù)獲取單元101,用于獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù);用戶界面模板獲取單元103,用于獲取用戶界面模板;用戶界面生成單元105,用于根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面;腳本運(yùn)行相關(guān)數(shù)據(jù)獲取單元107,用于通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集;自動(dòng)化腳本執(zhí)行單元109,用于根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
可選的,還包括:
組件注冊(cè)單元,用于將所述組件注冊(cè)到所述操作系統(tǒng)中。
請(qǐng)參考圖10,其為本申請(qǐng)的又一電子設(shè)備實(shí)施例的示意圖。由于設(shè)備實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。下述描述的設(shè)備實(shí)施例僅僅是示意性的。
本實(shí)施例的又一種電子設(shè)備,該電子設(shè)備包括:顯示器101;處理器102;以及存儲(chǔ)器103,用于存儲(chǔ)實(shí)現(xiàn)自動(dòng)化腳本的運(yùn)行方法的程序,該設(shè)備通電并通過(guò)所述處理器運(yùn)行該自動(dòng)化腳本的運(yùn)行方法的程序后,執(zhí)行下述步驟:獲取待運(yùn)行自動(dòng)化腳本的用戶界面的界面配置參數(shù);以及,獲取用戶界面模板;根據(jù)所述界面配置參數(shù)和所述用戶界面模板,生成所述用戶界面;通過(guò)預(yù)先注冊(cè)的用于獲取所述用戶界面中腳本運(yùn)行相關(guān)數(shù)據(jù)的組件,從所述用戶界面中提取運(yùn)行參數(shù)數(shù)據(jù)和待操作對(duì)象集;根據(jù)所述運(yùn)行參數(shù)數(shù)據(jù)運(yùn)行所述自動(dòng)化腳本,對(duì)所述待操作對(duì)象集包括的各個(gè)待操作對(duì)象進(jìn)行處理。
本申請(qǐng)雖然以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī) 程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。