基于Sikuli的操作信息封裝方法及裝置的制造方法
【專利說明】基于SikuIi的操作信息封裝方法及裝置 【技術(shù)領(lǐng)域】
[0001] 本申請涉及測試技術(shù),尤其涉及一種基于Sikuli的操作信息封裝方法及裝置。 【【背景技術(shù)】】
[0002] Sikuli是由麻省理工學(xué)院(MassachusettsInstituteofTechnology,MIT)的研 究團(tuán)隊發(fā)布的新型圖形化編程技術(shù),可W利用屏幕截圖直接引用圖形用戶界面(Graphical UserInte計ace,GUI)元素進(jìn)行編程,完成交互操作。在軟件測試過程例如,用戶界面(User inte計ace,UI)測試中,可W進(jìn)一步利用Sikuli提供的應(yīng)用程序編程接口(Application ProgrammingInte計ace,API),將一些公共操作封裝成公共接口,進(jìn)而生成化va歸檔文件 (化vaArchive,Jar)包,W供其他外部方法進(jìn)行調(diào)用。
[0003] 然而,由于Jar包對路徑處理存在難點,使得目前無法實現(xiàn)封裝有GUI元素引用的 公共接口的Jar包的調(diào)用,從而導(dǎo)致了公共方法調(diào)用的可靠性的降低。 【
【發(fā)明內(nèi)容】
】
[0004] 本申請的多個方面提供一種基于Sikuli的操作信息封裝方法及裝置,用W提高 公共方法調(diào)用的可靠性
[0005] 本申請的一方面,提供一種基于Sikuli的操作信息封裝方法,包括:
[0006] 獲取待封裝的操作信息,所述操作信息中包含至少一個圖片的HTTP請求;
[0007] 利用Sikuli提供的API,對所述操作信息進(jìn)行封裝,W獲得公共接口;
[0008] 根據(jù)所述公共接口,生成可執(zhí)行的文件包。
[0009] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述可執(zhí)行 的文件包包括JAR包。
[0010] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述圖片包 括GUI元素。
[0011] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述獲取待 封裝的操作信息,所述操作信息中包含至少一個圖片的HTTP請求之前,還包括:
[0012] 采用SVN方式,將所述至少一個圖片部署在第一服務(wù)器上。
[0013] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述根據(jù)所 述公共接口,生成可執(zhí)行的文件包之后,還包括:
[0014] 將所述可執(zhí)行的文件包上傳到第二服務(wù)器上,W供進(jìn)行下載。
[0015] 本申請的另一方面,提供一種基于Sikuli的操作信息封裝裝置,包括:
[0016] 獲取單元,用于獲取待封裝的操作信息,所述操作信息中包含至少一個圖片的 HTTP請求;
[0017] 封裝單元,用于利用Sikuli提供的API,對所述操作信息進(jìn)行封裝,W獲得公共接 n;
[0018] 導(dǎo)出單元,用于根據(jù)所述公共接口,生成可執(zhí)行的文件包。
[0019] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述可執(zhí)行 的文件包包括JAR包。
[0020] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述圖片包 括GUI元素。
[0021] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述裝置還 包括圖片部署單元,用于
[0022] 采用SVN方式,將所述至少一個圖片部署在第一服務(wù)器上。
[0023] 如上所述的方面和任一可能的實現(xiàn)方式,進(jìn)一步提供一種實現(xiàn)方式,所述裝置還 包括下載部署單元,用于
[0024] 將所述可執(zhí)行的文件包上傳到第二服務(wù)器上,W供進(jìn)行下載。
[0025]由上述技術(shù)方案可知,本申請實施例通過獲取待封裝的操作信息,所述操作信息 中包含至少一個圖片的HTTP請求,進(jìn)而利用Sikuli提供的API,對所述操作信息進(jìn)行封裝, W獲得公共接口,使得能夠根據(jù)所述公共接口,生成可執(zhí)行的文件包,由于待封裝的操作信 息中通過HTTP請求引用圖片,使得可執(zhí)行的文件包無需對路徑進(jìn)行處理,因此,能夠避免 現(xiàn)有技術(shù)中由于Jar包對路徑處理存在難點,使得目前無法實現(xiàn)封裝有GUI元素引用的公 共接口的Jar包的調(diào)用的問題,從而提高了公共方法調(diào)用的可靠性。
[0026]另外,采用本申請?zhí)峁┑募夹g(shù)方案,由于待封裝的操作信息中通過HTTP請求引用 圖片,因此,只需要將圖片部署在外部服務(wù)器上,而無需封裝在可執(zhí)行的文件包中,該樣,能 夠有效減小可執(zhí)行的文件包的大小,節(jié)省了可執(zhí)行的文件包的下載時間,從而提高了公共 方法的代碼的編譯效率。
[0027]另外,采用本申請?zhí)峁┑募夹g(shù)方案,由于待封裝的操作信息中通過HTTP請求引用 圖片,因此,只需要將圖片部署在外部服務(wù)器上,而無需封裝在可執(zhí)行的文件包中,該樣,能 夠在外部服務(wù)器上獨立操作圖片,例如,修改圖片等,從而提高了公共方法調(diào)用的靈活性。 【【附圖說明】】
[0028]為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本申請的一些實 施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可W根據(jù)該些附 圖獲得其他的附圖。
[0029] 圖1為本申請一實施例提供的基于Sikuli的操作信息封裝方法的流程示意圖;
[0030] 圖2為本申請另一實施例提供的基于Sikuli的操作信息封裝裝置的結(jié)構(gòu)示意 圖;
[0031] 圖3為本申請另一實施例提供的基于Sikuli的操作信息封裝裝置的結(jié)構(gòu)示意 圖;
[0032] 圖4為本申請另一實施例提供的基于Sikuli的操作信息封裝裝置的結(jié)構(gòu)示意圖。 【【具體實施方式】】
[0033]為使本申請實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請實施例 中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是 本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的全部其他實施例,都屬于本申請保護(hù)的范圍。
[0034]另外,本文中術(shù)語"和/或",僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可W存在 H種關(guān)系,例如,A和/或B,可W表示;單獨存在A,同時存在A和B,單獨存在B該H種情 況。另外,本文中字符"/",一般表示前后關(guān)聯(lián)對象是一種"或"的關(guān)系。
[0035] 圖1為本申請一實施例提供的基于Sikuli的操作信息封裝方法的流程示意圖,女口 圖1所示。
[0036] 101、獲取待封裝的操作信息,所述操作信息中包含至少一個圖片的超文本傳輸協(xié) 議(Hyper Text Transfer Protocol, HTTP)請求。
[0037] 具體地,待封裝的操作信息為一些公共方法,例如,點擊圖片所示的按鈕等。一般 來說,圖片可W為利用屏幕截圖所獲得的GUI元素。由于操作信息涉及了圖片的引用,因 此,在操作信息中,需要包含所引用圖片的HTTP請求。例如,一個圖片的HTTP請求可W為 如下:
[0038]http://10. 125. 10. 176:8080/ie/public/comtinue.png〇
[0039] 可選地,在本實施例的一個可能的實現(xiàn)方式中,還可W進(jìn)一步將所述至少一個圖 片部署在第一服務(wù)器上。
[0040] 其中,所述第一服務(wù)器可W為任意一種萬維網(wǎng)(WorldWideWeb,Web)服務(wù)器,例 女口,tomcat服務(wù)器、apache服務(wù)器或jetty服務(wù)器等,本實施例對此不進(jìn)行特別限定。
[0041] 具體地,具體可W采用版本控制系統(tǒng)(subversion,SVN)方式,將所述至少一個圖 片部署在第一服務(wù)器上。例如,將所述至少一個圖片部署在SVN服務(wù)器上進(jìn)行管理,進(jìn)而再 部署到所述第一服務(wù)器上。其中,SVN服務(wù)器對數(shù)據(jù)進(jìn)行管理的詳細(xì)描述可W參見現(xiàn)有技 術(shù)中的相關(guān)內(nèi)容,此處不再費述。由于SVN服務(wù)器可W超越時間的管理文件和目錄。文件 保存在中央版本庫,除了能記住文件和目錄的每次修改W外,中央版本庫非常像普通的文 件服務(wù)器。用戶可W將文件恢復(fù)到過去的版本,并且可W通過檢查歷史知道數(shù)據(jù)做了哪些 修改,誰做的修改。該樣,能夠有效提高圖片管理的可靠性和靈活性。
[0042] 102、利用Sikuli提供的API,對所述操作信息進(jìn)行封裝,W獲得公共接口。
[0043]例如,可W利用Sikuli提供的API,即org.sikuli.script.Region中的clickO 方法和exists0方法,W及org.sikuli.script.Screen,對所述操作信息進(jìn)行封裝,W獲 得公共接口可W為如下形式:
[0044]
[0045] 103、根據(jù)所述公共接口,生成可執(zhí)行的文件包。
[0046] 可選地,在本實施例的一個可能的實現(xiàn)方式中,通過執(zhí)行103,所生成的所述可執(zhí) 行的文件包可W包括但不限于JAR包。
[0047] 可選地,在本實施例的一個可能的實現(xiàn)方式中,在103之后,還可W進(jìn)一步將所述 可執(zhí)行的文件包上傳到第二服務(wù)器上,W供進(jìn)行下載。該樣,當(dāng)其他外部方法需要進(jìn)行公 共方法的調(diào)用時,只需要在外部方法的代碼的P0M配置文件中配置該個可執(zhí)行的文件包即 可。
[004引其中,所述第二服務(wù)器可W為任意一種倉庫服務(wù)器,例如,利用Nexus或Arti化ctory搭建的Maven倉庫服務(wù)器等,本實施例對此不進(jìn)行特別限定。
[0049] 本實施例中,通過獲取待封裝的操作信息,所述操作信息中包含至少一個圖片的 HTTP請求,進(jìn)而利用Sikuli提供的API,對所述操作信息進(jìn)行封裝,W獲得公共接口,使得 能夠根據(jù)所述公共接口,生成可執(zhí)行的文件包,由于待封裝的操作信息中通過HTTP請求引 用圖片,使得可執(zhí)行的文件包無需對路徑進(jìn)行處理,因此,能夠避免現(xiàn)有技術(shù)中由于Jar包 對路徑處理存在難點,使得目前無法實現(xiàn)封裝有GUI元素引用的公共接口的Jar包的調(diào)用 的問題,從而提高了公共方法調(diào)用的可靠性。
[0050] 另外,采用本申請?zhí)峁┑募夹g(shù)方案,由于待封裝的操作信息中通過HTTP請求引用 圖片,因此,只需要將圖片部署在外部服務(wù)器上,而無需封裝在可執(zhí)行的文件包中,該樣,能 夠有效減小可執(zhí)行的文件包的大小,節(jié)省了可執(zhí)行的文件包的下載時間,從而提高了公共 方法的代碼的編譯效率。
[0051] 另外,采用本申請?zhí)峁┑募夹g(shù)方案,由于待封裝的操作信息中通過HTTP請求引用 圖片,因此,只需要將圖片部署在外部服務(wù)器上,而無需封裝在可執(zhí)行的文件包中,該樣,能 夠在外部服務(wù)器上獨立操作圖片,例如,修改圖片等,從而提高了公共方法調(diào)用的靈活性