本發(fā)明涉及計算機領(lǐng)域,具體而言,本發(fā)明涉及一種基于網(wǎng)頁頁面的自動化測試定制方法和實現(xiàn)該方法的自動化測試定制系統(tǒng)。
背景技術(shù):
軟件測試(Software Testing)是一種用來促進及鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程,也可以說是一種審核或比較實際輸出結(jié)果與預(yù)期輸出結(jié)果的過程。軟件測試是在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進行評估。
前端Web自動化測試方式,最普遍的是直接使用selenium、robot framework等技術(shù),對于每個使用者來說,都需要系統(tǒng)學習相關(guān)知識,如編程技術(shù),了解相關(guān)原理,學習調(diào)試技術(shù)等,另外環(huán)境的安裝搭建需要每個人搭建一套,比較繁瑣和低效。業(yè)內(nèi)大部分公司對于這種測試用例都是通過jenkins等系統(tǒng)集成工具來組織管理的,而jenkins這些系統(tǒng)集成工具的搭建,維護以及用例運行等方面都需要很多人力和時間成本。因此需要開發(fā)一套自動化測試平臺,對于沒有編程技術(shù)的使用人員,只需要很短的學習時間就能完全掌握和使用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一,提供一種基于網(wǎng)頁頁面的自動化測試平臺的定制方法和定制系統(tǒng)。利用本發(fā)明所提供的方法和系統(tǒng),可以實現(xiàn)使用人員在網(wǎng)頁頁面端上與自動化測試平臺進行交互,實現(xiàn)自動化測試用例或腳本的編寫、調(diào)試、運行和管理。
為達到以上技術(shù)目的,本發(fā)明采用的技術(shù)方案如下:
第一方面,本發(fā)明提供了一種自動化測試定制方法,包括如下步驟:
響應(yīng)于用戶在網(wǎng)頁頁面對測試參數(shù)模塊的選取指令,依據(jù)該些選取指令的組合關(guān)系生成可執(zhí)行腳本;
接收用戶在網(wǎng)頁頁面定制的測試計劃,將用戶為所述測試計劃關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本轉(zhuǎn)換為腳本匯編部件;
啟動所述測試計劃以便使其按預(yù)定計劃執(zhí)行其相對應(yīng)的腳本匯編部件,并將其執(zhí)行所得的測試結(jié)果輸出到網(wǎng)頁頁面中。
結(jié)合第一方面,本發(fā)明在第一方面的第一種實現(xiàn)方式中,所述測試參數(shù)模塊根據(jù)被測試對象的內(nèi)部邏輯進行模塊化設(shè)計。
結(jié)合第一方面,本發(fā)明在第一方面的第二種實現(xiàn)方式中,所述對測試參數(shù)模塊的選取通過以下至少一種方式實現(xiàn):
從網(wǎng)頁頁面所顯示的多級菜單中逐一進行單項選擇和/或多項選擇;
在網(wǎng)頁頁面所顯示的命令調(diào)用框中利用編程語言進行命令編寫;
在網(wǎng)頁頁面所顯示的數(shù)據(jù)導(dǎo)入?yún)^(qū)域?qū)霚y試數(shù)據(jù)。
結(jié)合第一方面的第二種實現(xiàn)方式,本發(fā)明在第一方面的第三種實現(xiàn)方式中,所述測試數(shù)據(jù)包括由用戶選取不同數(shù)據(jù)庫及其相應(yīng)的數(shù)據(jù)存儲方式后輸入的測試數(shù)據(jù)和/或系統(tǒng)隨機生成的測試數(shù)據(jù)。
結(jié)合第一方面的第一種實現(xiàn)方式,本發(fā)明在第一方面的第四種實現(xiàn)方式中,所述可執(zhí)行腳本控制所述被測試對象執(zhí)行一個或多個運算操作動作,由云端基于所述選取指令的組合依據(jù)預(yù)設(shè)的規(guī)則自動翻譯而生成。
結(jié)合第一方面的第二種實現(xiàn)方式,本發(fā)明在第一方面的第五種實現(xiàn)方式中,,所生成的可執(zhí)行腳本存入到云端的數(shù)據(jù)庫中以備調(diào)用。
結(jié)合第一方面,本發(fā)明在第一方面的第六種實現(xiàn)方式中,所述測試計劃限定了所關(guān)聯(lián)的一個或多個可執(zhí)行腳本的執(zhí)行條件,以符合被測試對象內(nèi)部邏輯所產(chǎn)生的事件流。
結(jié)合第一方面的第六種實現(xiàn)方式,本發(fā)明在第一方面的第七種實現(xiàn)方式中,所述執(zhí)行條件由測試啟動時間參數(shù)、測試啟動條件參數(shù)、腳本執(zhí)行順序列表、腳本執(zhí)行次數(shù)參數(shù)和測試中止條件參數(shù)中的至少一項所限定。
結(jié)合第一方面,本發(fā)明在第一方面的第八種實現(xiàn)方式中,所述測試計劃對所關(guān)聯(lián)的一個或多個可執(zhí)行腳本中的變量進行賦值,以符合被測試對象內(nèi)部邏輯所產(chǎn)生的事件流。
結(jié)合第一方面,本發(fā)明在第一方面的第九種實現(xiàn)方式中,顯示在網(wǎng)頁頁面的測試結(jié)果包括以下至少一項內(nèi)容:
所述測試計劃的每個可執(zhí)行腳本或腳本匯編部件的運行狀態(tài);
所述可執(zhí)行腳本或腳本匯編部件的運行結(jié)果;
對所述運行結(jié)果的統(tǒng)計數(shù)據(jù);
對執(zhí)行失敗的腳本的標注和分析。
結(jié)合第一方面的第九種實現(xiàn)方式,本發(fā)明在第一方面的第十種實現(xiàn)方式中,顯示在網(wǎng)頁頁面的測試結(jié)果還包括從網(wǎng)頁頁面截取并附加標記的圖形文件,所述圖形文件與測試功能點標注列表相關(guān)聯(lián)。
結(jié)合第一方面,本發(fā)明在第一方面的第十一種實現(xiàn)方式中,所述網(wǎng)頁頁面來自具有不同cookies網(wǎng)頁端。
結(jié)合第一方面,本發(fā)明在第一方面的第十二種實現(xiàn)方式中,所述網(wǎng)頁頁面支持使用不同類型的瀏覽器打開。
第二方面,本發(fā)明提供一種自動化測試定制系統(tǒng),其包括
組合模塊,響應(yīng)于用戶在網(wǎng)頁頁面對測試參數(shù)模塊的選取指令,依據(jù)該些選取指令的組合關(guān)系生成可執(zhí)行腳本;
轉(zhuǎn)換模塊,接收用戶在網(wǎng)頁頁面定制的測試計劃,將用戶為所述測試計劃關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本轉(zhuǎn)換為腳本匯編部件;
執(zhí)行模塊,啟動所述測試計劃以便使其按預(yù)定計劃執(zhí)行其相對應(yīng)的腳本匯編部件,并將其執(zhí)行所得的測試結(jié)果輸出到網(wǎng)頁頁面中。
結(jié)合第二方面,本發(fā)明的第一種實現(xiàn)方式中,所述測試參數(shù)模塊根據(jù)被測試對象的內(nèi)部邏輯進行模塊化設(shè)計。
結(jié)合第二方面的第一種實現(xiàn)方式,本發(fā)明的第二種實現(xiàn)方式中,所述組合模塊還包括用于獲取用戶對所述測試參數(shù)模塊的選取的第一輸入單元;所述輸入單元包括多級菜單、命令調(diào)用框和數(shù)據(jù)導(dǎo)入?yún)^(qū)域中的至少一種。
結(jié)合第二方面的第二種實現(xiàn)方式,本發(fā)明的第三種實現(xiàn)方式中,所述數(shù)據(jù)導(dǎo)入?yún)^(qū)域用于導(dǎo)入測試數(shù)據(jù),所述測試數(shù)據(jù)包括由用戶選取不同數(shù)據(jù)庫及其相應(yīng)的數(shù)據(jù)存儲方式后輸入的測試數(shù)據(jù)和/或系統(tǒng)隨機生成的測試數(shù)據(jù)。
結(jié)合第二方面,本發(fā)明的第四種實現(xiàn)方式中,還包括翻譯模塊,用于基于所述選取指令的組合依據(jù)預(yù)設(shè)的規(guī)則自動翻譯所述可執(zhí)行腳本,所述可執(zhí)行腳本控制所述被測試對象執(zhí)行一個或多個運算操作動作。
結(jié)合第二方面,本發(fā)明的第五種實現(xiàn)方式中,還包括存儲模塊,用于將所生成的可執(zhí)行腳本保存起來以備調(diào)用。
結(jié)合第二方面的第五種實現(xiàn)方式,本發(fā)明的第六種實現(xiàn)方式中,所述存儲模塊設(shè)置在云端。
結(jié)合第二方面的第一種實現(xiàn)方式,本發(fā)明的第七種實現(xiàn)方式中,所述組合模塊還包括用于獲取用戶對所述測試計劃定制的第二輸入單元。
結(jié)合第二方面的第七種實現(xiàn)方式,本發(fā)明的第八種實現(xiàn)方式中,所述第二輸入單元用于限定與所述測試計劃關(guān)聯(lián)的一個或多個可執(zhí)行腳本的執(zhí)行條件,以符合被測試對象內(nèi)部邏輯所產(chǎn)生的事件流。
結(jié)合第二方面的第八種實現(xiàn)方式,本發(fā)明的第九種實現(xiàn)方式中,所述第二輸入單元用于輸入限定所述執(zhí)行條件的測試啟動時間參數(shù)、測試啟動條件參數(shù)、腳本執(zhí)行順序列表、腳本執(zhí)行次數(shù)參數(shù)和測試中止條件參數(shù)中的至少一項。
結(jié)合第二方面的第七種實現(xiàn)方式,本發(fā)明的第十種實現(xiàn)方式中,所述第二輸入單元用于對所述測試計劃所關(guān)聯(lián)的一個或多個可執(zhí)行腳本中的變量進行賦值,以符合被測試對象內(nèi)部邏輯所產(chǎn)生的事件流。
結(jié)合第二方面,本發(fā)明的第十一種實現(xiàn)方式中,所述執(zhí)行模塊還包括輸出顯示單元,用于在網(wǎng)頁頁面輸出并顯示以下至少一項測試結(jié)果的內(nèi)容:
所述測試計劃的每個可執(zhí)行腳本或腳本匯編部件的運行狀態(tài);
所述可執(zhí)行腳本或腳本匯編部件的運行結(jié)果;
對所述運行結(jié)果的統(tǒng)計數(shù)據(jù);
對執(zhí)行失敗的腳本的標注和分析。
結(jié)合第二方面的第十一種實現(xiàn)方式,本發(fā)明的第十二種實現(xiàn)方式中,所述執(zhí)行模塊還包括截圖單元,用于從網(wǎng)頁頁面截取并附加標記以形成圖形文件,所述圖形文件與測試功能點標注列表相關(guān)聯(lián)。
結(jié)合第二方面,本發(fā)明的第十三種實現(xiàn)方式中,所述網(wǎng)頁頁面來自具有不同cookies網(wǎng)頁端。
結(jié)合第二方面,本發(fā)明的第十四種實現(xiàn)方式中,所述網(wǎng)頁頁面支持使用不同類型的瀏覽器打開。
與現(xiàn)有技術(shù)相比較,本發(fā)明的優(yōu)勢在于:
(1)本發(fā)明的自動化測試定制方法及定制系統(tǒng),根據(jù)被測試對象的內(nèi)部邏輯對測試參數(shù)進行模塊化劃分,并且在網(wǎng)頁端為用戶提供了包括自然語言在內(nèi)的各種選擇步驟選擇,用戶點擊各個步驟后將各個測試參數(shù)進行組合,在后臺自動翻譯生成可執(zhí)行腳本,簡化了腳本的編寫過程;
(2)本發(fā)明的自動化測試定制方法及定制系統(tǒng),網(wǎng)頁端還可以進行測試計劃的定制,也是通過各種選擇步驟選擇,限定測試過程的執(zhí)行條件和變量,即可形成各個針對特定測試場景的腳本匯編部件,所述腳本匯編部件相當于測試用例;
(3)本發(fā)明的自動化測試定制方法及定制系統(tǒng),所述自動聲場的可執(zhí)行腳本和測試計劃都存儲在云端,便于各個不同的使用人員調(diào)用,或者便于同一個使用人員在不同的網(wǎng)頁頁面進行調(diào)用,減少了自動化測試平臺的對設(shè)備的限制,更便于統(tǒng)一管理和綜合運用;
(4)本發(fā)明的自動化測試定制方法及定制系統(tǒng),增加了動態(tài)抓圖并標注的功能,便于記錄測試功能點,方便使用人員之間的交流,也便于自動化測試平臺開發(fā)或使用的記錄文件的形成。
本發(fā)明提出的上述方案,對現(xiàn)有系統(tǒng)的改動很小,不會影響系統(tǒng)的兼容性,而且實現(xiàn)簡單、高效。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明自動化測試定制方法的流程示意圖。
圖2為被測對象內(nèi)部邏輯的事件流的一實施例示意圖。
圖3為本發(fā)明自動化測試定制系統(tǒng)的組織架構(gòu)示意圖。
圖4為本發(fā)明自動化測試定制系統(tǒng)的一實施例組織架構(gòu)示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計算機或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算機或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運輸、安裝在交通工具(航空、海運和/或陸地)中的,或者適合于和/或配置為在本地運行,和/或以分布形式,運行在地球和/或空間的任何其他位置運行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機頂盒等設(shè)備。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的遠端網(wǎng)絡(luò)設(shè)備,其包括但不限于計算機、網(wǎng)絡(luò)主機、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(Cloud Computing)的大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。本發(fā)明的實施例中,遠端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計算機網(wǎng)絡(luò)通信以及基于藍牙、紅外傳輸標準的近距無線傳輸方式。
本發(fā)明基于B/S架構(gòu)(即瀏覽器和服務(wù)器架構(gòu)),用戶界面通過瀏覽器實現(xiàn)(即網(wǎng)頁頁面),一部分事務(wù)邏輯在前端(即瀏覽器)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端/云端實現(xiàn)。
實施例一
自動化測試定制方法
參考圖1,本發(fā)明的自動化測試定制方法包括如下步驟:
S1:響應(yīng)于用戶在網(wǎng)頁頁面對測試參數(shù)模塊的選取指令,依據(jù)該些選取指令的組合關(guān)系生成可執(zhí)行腳本。
所述可執(zhí)行腳本是批處理文件的延伸,是一種純文本保存的程序,一般來說的計算機腳本程序是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現(xiàn)一定的邏輯分支等,用于控制所述被測試對象執(zhí)行一個或多個運算操作動作。例如:根據(jù)輸入的變量,通過運算輸出一個與所述變量相關(guān)的結(jié)果;或者點擊某個按鈕,執(zhí)行所述按鈕對應(yīng)需要執(zhí)行的動作。各類腳本尤其在網(wǎng)頁設(shè)計中被廣泛地應(yīng)用,腳本不僅可以減小網(wǎng)頁的規(guī)模和提高網(wǎng)頁瀏覽速度,還可以使網(wǎng)頁的功能更豐富,本發(fā)明中,各種定制的可執(zhí)行腳本可以滿足自動化測試中各種測試條件的需要。
所述測試參數(shù)模塊根據(jù)被測對象的內(nèi)部邏輯進行設(shè)計,即基于白盒測試原理對被測對象進行測試,其中被測對象可以是程序或程序中的某一功能模塊,白盒測試又稱結(jié)構(gòu)測試或基于軟件代碼的測試,主要是檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑,白盒測試全面了解程序內(nèi)部邏輯結(jié)構(gòu),對所有邏輯路徑進行測試。
所述測試參數(shù)模塊根據(jù)所述內(nèi)部邏輯進行模塊化設(shè)計,以便于通過可視化的網(wǎng)頁頁面對每個模塊中的各個變量進行選擇選定。例如:將統(tǒng)計銷售量的功能模塊化顯示在網(wǎng)頁頁面中,其中包括銷售期模塊、銷售目標模塊、實際銷售統(tǒng)計模塊等。以所述實際銷售統(tǒng)計模塊為例,該實際銷售統(tǒng)計模塊可以設(shè)置統(tǒng)計分類方式的判斷功能,設(shè)定讀取每一條銷售記錄時,應(yīng)該提取銷售記錄中的什么內(nèi)容進行統(tǒng)計分類的判斷。
若選定交款日和提貨日,測試執(zhí)行時,后臺(或云端)會對每一條銷售記錄的交款日和提貨日的先后進行比較,當判斷交款日早于提貨日,該條銷售記錄劃歸到提貨制銷售統(tǒng)計數(shù)據(jù)中;當判斷交款日遲于提貨日,該條銷售記錄劃歸到送貨制銷售統(tǒng)計數(shù)據(jù)中;當判斷交款日與提貨日在同一天,該條銷售記錄劃歸到現(xiàn)場銷售統(tǒng)計數(shù)據(jù)中。
若選定銷售區(qū)域,測試執(zhí)行時,后臺會對不同銷售區(qū)域的銷售統(tǒng)計數(shù)據(jù)進行整合,最后可能形成區(qū)域銷售統(tǒng)計表/圖,或者結(jié)合其他統(tǒng)計數(shù)據(jù)形成具有針對性的統(tǒng)計表/圖。
進一步地,所述對測試參數(shù)模塊的選取通過以下至少一種方式實現(xiàn):
從網(wǎng)頁頁面所顯示的多級菜單中逐一進行單項選擇和/或多項選擇;如上述銷售記錄的提取內(nèi)容可以通過所述多級菜單的方式進行選擇。
在網(wǎng)頁頁面所顯示的命令調(diào)用框中利用編程語言進行命令編寫;所述編程語言優(yōu)選自然語言,同時支持if選擇方式、for循環(huán)方式、子函數(shù)嵌套、python腳本調(diào)用等。如上述統(tǒng)計銷售量的功能模塊可以通過編程語言增加其他統(tǒng)計內(nèi)容,例如增加統(tǒng)計某一產(chǎn)品的所有型號的銷售量與銷售地區(qū)的關(guān)聯(lián)度。
在網(wǎng)頁頁面所顯示的數(shù)據(jù)導(dǎo)入?yún)^(qū)域?qū)霚y試數(shù)據(jù);所述測試數(shù)據(jù)包括由用戶選取不同數(shù)據(jù)庫及其相應(yīng)的數(shù)據(jù)存儲方式后輸入的測試數(shù)據(jù)和/或系統(tǒng)隨機生成的測試數(shù)據(jù)。例如導(dǎo)入隨機生成的虛擬的或?qū)嶋H的批量銷售記錄,用于測試該統(tǒng)計銷售量的功能模塊的運行情況。所導(dǎo)入的批量數(shù)據(jù)可以用于重復(fù)執(zhí)行同一所述可執(zhí)行腳本,或者用于執(zhí)行不同的所述可執(zhí)行腳本。
所述測試參數(shù)模塊的選取方式不限于上述三種選取方式,本領(lǐng)域技術(shù)人員公知的其他可視化的選取方式都可以予以運用,這不構(gòu)成對本發(fā)明的限制。
進一步地,瀏覽器將用戶對測試參數(shù)的選取操作生成選取指令經(jīng)TCP/IP協(xié)議通過遠程接口發(fā)送至云端服務(wù)器,云端服務(wù)器響應(yīng)于用戶的選取指令,依據(jù)預(yù)設(shè)的規(guī)則將所述測試參數(shù)的組合關(guān)系自動翻譯生成一個或若干個所述可執(zhí)行腳本。再以上述統(tǒng)計銷售量的模塊為例,用戶通過多個步驟的選擇,設(shè)定將每一條銷售記錄中的交款日和提款日進行提取并且進行比對,并增加與貨號和銷售地區(qū)的關(guān)聯(lián)度,最終形成能夠統(tǒng)計分析不同銷售地區(qū)消費偏好的可執(zhí)行腳本。
所述通過云端翻譯生成的可執(zhí)行腳本(如所述統(tǒng)計分析不同銷售地區(qū)消費偏好的可執(zhí)行腳本)將存入到數(shù)據(jù)庫中,形成腳本池,以備調(diào)用。所述數(shù)據(jù)庫優(yōu)選設(shè)置在云端,以支持更多的所述可執(zhí)行腳本的存儲,也可以加快前臺網(wǎng)頁頁面的運行效率。
S2:接收用戶在網(wǎng)頁頁面定制的測試計劃,將用戶為所述測試計劃關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本轉(zhuǎn)換為腳本匯編部件。
所述測試計劃被配置為包括測試相應(yīng)的被測對象內(nèi)部邏輯流程所產(chǎn)生的事件流,所述事件流包括事件基本流和備選流,基本流是測試場景經(jīng)過的最簡單的路徑,每個備選流自基本流開始,之后備選流會在某個特定條件下被執(zhí)行,備選流可能會重新加入基本流中,也可能是另一個備選流的起源,或者終止該測試場景。將被測對象的內(nèi)部邏輯所產(chǎn)生的基本流與備選流經(jīng)過不同組合,覆蓋該被測對象的代碼邏輯中所有可能的路徑。如圖2是一個實施例的被測對象內(nèi)部邏輯的事件流,包括基本流和備選流1、2、3、4,通過基本流與備選流的組合,可確定如下多種場景:
①場景1:基本流;
②場景2:基本流備選流1;
③場景3:基本流備選流1備選流2;
④場景4:基本流備選流3;
⑤場景5:基本流備選流3備選流1:
⑥場景6:基本流備選流3備選流1備選流2;
⑦場景7:基本流備選流4;
⑧場景8:基本流備選流3備選流4。
其中,為方便起見,場景5、6和8只描述了備選流3只循環(huán)執(zhí)行一次的情況,所述多種場景可以覆蓋該被測對象內(nèi)部邏輯中的所有可能的路徑。
本發(fā)明的所述測試計劃將所述一個或多個已經(jīng)存儲在所述數(shù)據(jù)庫中的可執(zhí)行腳本關(guān)聯(lián)起來,并且將在該測試計劃執(zhí)行時,將所關(guān)聯(lián)的所有可執(zhí)行腳本進行重新解析,按照該測試計劃預(yù)定的內(nèi)容轉(zhuǎn)換為一個腳本匯編部件,并且將該腳本匯編部件緩存在后臺的運行池中,以便于該測試計劃流暢地執(zhí)行。所述腳本匯編部件,直接對應(yīng)于當前被執(zhí)行的測試計劃,該腳本匯編部件通過已經(jīng)定制好的可執(zhí)行腳本進行組合,并且在執(zhí)行前進行解析,可以將多個簡單運算或簡單操作整合為復(fù)雜的運算或復(fù)雜的操作,簡化了自動化測試平臺的搭建過程。
具體地,本發(fā)明的所述測試計劃限定了所關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本的執(zhí)行條件,所述執(zhí)行條件可以用于限定某一個或多個所述可執(zhí)行腳本的執(zhí)行啟動時間,例如設(shè)定測試啟動時間參數(shù),將運行級別分為系統(tǒng)級和實時級,第一可執(zhí)行腳本設(shè)定為系統(tǒng)級,即所述第一可執(zhí)行腳本將在運行所述測試計劃之后定時執(zhí)行,第二可執(zhí)行腳本設(shè)定為實時級,即所述第二可執(zhí)行腳本將在運行所述測試計劃之后立刻執(zhí)行。
在另一種可能的實現(xiàn)方式中,所述執(zhí)行條件也可以用于限定某一個或多個所述可執(zhí)行腳本的執(zhí)行啟動條件,例如設(shè)定測試啟動條件參數(shù),設(shè)定所述可執(zhí)行腳本在前一可執(zhí)行腳本運行過程中或運行結(jié)束后所產(chǎn)生的啟動所述可執(zhí)行腳本的觸發(fā)條件,所述觸發(fā)條件可以是一個指定的運行結(jié)果,也可以是一個特定的運行的中間狀態(tài)。
在另一種可能的實現(xiàn)方式中,所述執(zhí)行條件也可以用于限定多個可執(zhí)行腳本的執(zhí)行順序,所述執(zhí)行順序既包括時間順序,也包括邏輯順序,也包括條件選擇順序,本領(lǐng)域技術(shù)人員在具備公知常識的前提下應(yīng)當容易理解。
在另一種可能的實現(xiàn)方式中,所述執(zhí)行條件也可以根據(jù)例如重復(fù)校驗的要求限定某一個或多個可執(zhí)行腳本的執(zhí)行次數(shù)。進一步地,所述執(zhí)行條件還應(yīng)當包括設(shè)定測試中止的情況,以避免自動化測試平臺運行負荷過重,并且可以盡早發(fā)現(xiàn)被測試對象的故障。
進一步地,本發(fā)明的所述測試計劃還對所關(guān)聯(lián)的一個或多個可執(zhí)行腳本中的變量進行賦值,以符合被測試對象內(nèi)部邏輯所產(chǎn)生的事件流。例如,對設(shè)定為系統(tǒng)級的可執(zhí)行腳本的執(zhí)行起始時間和執(zhí)行頻率這兩個變量進行賦值。
所述測試計劃所限定的內(nèi)容的選取也在網(wǎng)頁頁面上進行,選取方式類似于所述測試參數(shù)模塊的選取,例如從網(wǎng)頁頁面所顯示的多級菜單中逐一進行單項選擇和/或多項選擇,以選定所述網(wǎng)頁頁面中已經(jīng)設(shè)定的條件參數(shù);在網(wǎng)頁頁面所顯示的命令調(diào)用框中利用編程語言進行命令編寫,以增加所述網(wǎng)頁頁面中沒有設(shè)定的內(nèi)容,或者改寫所述網(wǎng)頁頁面中備選的內(nèi)容;在網(wǎng)頁頁面所顯示的輸入?yún)^(qū)域輸入部分測試條件參數(shù),主要用于對各項變量進行賦值。
S3:啟動所述測試計劃以便使其按預(yù)定計劃執(zhí)行其相對應(yīng)的腳本匯編部件,并將其執(zhí)行所得的測試結(jié)果輸出到網(wǎng)頁頁面中。
啟動所述測試計劃之后,緩存在所述運行池中的腳本匯編部件會被調(diào)用以執(zhí)行。在后臺,每一個可執(zhí)行腳本和/或腳本匯編部件的執(zhí)行狀態(tài)都會被記錄,執(zhí)行結(jié)果也被記錄,并且所有記錄數(shù)據(jù)隨著所述每個執(zhí)行狀態(tài)的完成或中止被打包發(fā)送到指定的監(jiān)控地址,例如是某個郵箱地址。在前臺,即網(wǎng)頁頁面所顯示的內(nèi)容,包括當前運行的測試計劃的每一個可執(zhí)行腳本和/或腳本匯編部件的執(zhí)行結(jié)果,還包括對多條執(zhí)行結(jié)果的成功/失敗數(shù)據(jù)統(tǒng)計,為了便于對整個測試運行的結(jié)果進行學習和分析,還優(yōu)選對標注的同類失敗的執(zhí)行結(jié)果進行主動標注,減少了人工核查和調(diào)查的成本。
顯示在網(wǎng)頁頁面的測試結(jié)果還包括從網(wǎng)頁頁面截取并附加標記的圖形文件,所述圖形文件與測試功能點標注列表相關(guān)聯(lián)。所述圖形文件有助于測試人員形成關(guān)于測試功能點的直觀的測試記錄,也便于測試人員之間的交流和交接。所述網(wǎng)頁頁面截取的功能,可以通過加載在網(wǎng)頁頁面的插件實現(xiàn),本領(lǐng)域技術(shù)人員應(yīng)當容易理解并實現(xiàn)。
由于本發(fā)明的自動化測試定制方法基于B/S架構(gòu)實現(xiàn),所述網(wǎng)頁頁面不受cookies的限制,也不受瀏覽器類型的限制,在服務(wù)器上一次部署,就可以供同一測試人員多平臺使用,也可以供不同的測試人員共同使用。
實施例二
自動化測試定制系統(tǒng)
為實現(xiàn)所述實施例一所提供的自動化測試定制方法,可以預(yù)先在網(wǎng)頁頁面和服務(wù)器中編制一個自動化測試定制系統(tǒng),以在服務(wù)器中獲得一系列功能性服務(wù)模塊,通過該服務(wù)模塊實現(xiàn)自動化測試定制的功能。
參考圖3,本發(fā)明的一種自動化測試定制系統(tǒng)封裝在服務(wù)器的一個功能插件中,其包括組合模塊100、轉(zhuǎn)換模塊200、執(zhí)行模塊300、翻譯模塊400和存儲模塊500。
具體地,所述組合模塊100響應(yīng)于用戶在網(wǎng)頁頁面對測試參數(shù)模塊的選取指令,依據(jù)該些選取指令的組合關(guān)系生成可執(zhí)行腳本。所述組合模塊100設(shè)置有用于定制各種所述可執(zhí)行腳本的第一輸入單元110;所述第一輸入單元110提供多級菜單111、命令調(diào)用框112和數(shù)據(jù)導(dǎo)入?yún)^(qū)域113中的至少一種來對所述測試參數(shù)中的需要選定的內(nèi)容進行選取或輸入。所述組合模塊100還設(shè)置了用于定制所述測試計劃的第二輸入單元120;所述第二輸入單元120所設(shè)置的輸入界面與所述第一輸入單元110的類似,該第二輸入單元120提供多級菜單、命令調(diào)用框和輸入?yún)^(qū)域的至少一種來對所述測試計劃中需要選定的內(nèi)容進行選取或輸入。所述測試參數(shù)和測試計劃的應(yīng)用場景已在上述實施例一中詳細記載。
所述組合模塊100還需要依賴所述翻譯模塊400和存儲模塊500的配合。顧名思義,所述存儲模塊500提供一物理媒介,用于臨時、短期或長期駐留數(shù)據(jù)。所述翻譯模塊400依據(jù)選取指令的組合關(guān)系,依據(jù)預(yù)設(shè)的規(guī)則將所述測試參數(shù)的組合關(guān)系自動翻譯生成一個或若干個所述可執(zhí)行腳本,并且將所述自動生成的可執(zhí)行腳本存儲到所述存儲模塊500中形成腳本池,所述腳本池將在較長的時間內(nèi)存儲所述可執(zhí)行腳本,以便于其他測試計劃或其他被測對象調(diào)用。
所述轉(zhuǎn)換模塊200接收用戶在網(wǎng)頁頁面定制的測試計劃,將用戶為所述測試計劃關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本轉(zhuǎn)換為腳本匯編部件。所述轉(zhuǎn)換模塊200從所述存儲模塊500的腳本池中獲取一個或多個所述可執(zhí)行腳本并根據(jù)所述測試計劃所限定執(zhí)行條件或?qū)ψ兞康馁x值進行關(guān)聯(lián)。在后續(xù)收到所述執(zhí)行模塊300的啟動指令之后,將所關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本進行重新解釋,按照該測試計劃預(yù)定的內(nèi)容轉(zhuǎn)換為一個腳本匯編部件,并且將該腳本匯編部件緩存在所述存儲模塊500的運行池中,以便于所述執(zhí)行模塊300的調(diào)用。
所述執(zhí)行模塊300啟動所述測試計劃以便使其按預(yù)定計劃執(zhí)行其相對應(yīng)的腳本匯編部件,并將其執(zhí)行所得的測試結(jié)果輸出到網(wǎng)頁頁面中。所述執(zhí)行模塊300包括前臺的顯示單元310和后臺運行單元330。所述顯示單元310相當于具有用戶界面的網(wǎng)頁頁面,其顯示包括但不限于當前運行的測試計劃的每一個可執(zhí)行腳本和/或腳本匯編部件的執(zhí)行結(jié)果,以及對多條執(zhí)行結(jié)果的成功/失敗數(shù)據(jù)統(tǒng)計。所述后臺運行單元330在所述測試計劃啟動后記錄了每一個可執(zhí)行腳本和/或腳本匯編部件的執(zhí)行狀態(tài)和執(zhí)行結(jié)果,并且所有記錄數(shù)據(jù)隨著所述每個執(zhí)行狀態(tài)的完成或中止被打包發(fā)送到指定的監(jiān)控地址,例如通過郵件形式發(fā)送到指定的郵箱地址。所述執(zhí)行模塊300還包括截圖單元320,用于從網(wǎng)頁頁面截取并附加標記以形成圖形文件,所述圖形文件與測試功能點標注列表相關(guān)聯(lián)。
進一步地,由于所述自動化測試定制系統(tǒng)的運行不依賴于本地的信息所限制,因此不受網(wǎng)頁端的cookies的限制,也不受瀏覽器的類型的限制。
此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
實施例三
在一種可能的實現(xiàn)方式中,本發(fā)明的自動化測試定制系統(tǒng)采用如圖4所示的實例系統(tǒng)6的組織形式,通過所述實例系統(tǒng)6進一步詳述本發(fā)明的工作原理。
首先,提供Web端61,所述Web端61作為輸入設(shè)備供測試人員通過所述第一輸入單元110定制各種可執(zhí)行腳本,以及利用所述第二輸入單元120定制至少一個測試計劃,所述Web端61提供了選取各種定制指令的用戶界面,利用網(wǎng)頁設(shè)計可優(yōu)化用戶界面,讓測試人員對各種可執(zhí)行腳本和測試計劃的定制過程更清晰,更簡易。
第二,提供數(shù)據(jù)庫62,相當于所述存儲模塊500,其采用MsSQL作為數(shù)據(jù)庫管理系統(tǒng),將響應(yīng)于在所述Web端61對測試參數(shù)模塊的選取指令并且依據(jù)該些選取指令的組合關(guān)系生成的可執(zhí)行腳本存入所述數(shù)據(jù)庫62中。記錄所述可執(zhí)行腳本的區(qū)域相當于所述腳本池。所述數(shù)據(jù)庫62還提供其他記錄信息存儲場所和起到緩存的作用,在所述實例系統(tǒng)6中提供數(shù)據(jù)的讀寫功能。
第三,設(shè)置了數(shù)據(jù)庫監(jiān)視器63,所述數(shù)據(jù)庫監(jiān)視器63充當所述轉(zhuǎn)換模塊200的功能,一方面,將從所述數(shù)據(jù)庫62的腳本池中提取一個或多個所述可執(zhí)行腳本并根據(jù)通過所述Web端62定制的所述測試計劃進行關(guān)聯(lián);另一方面,在后續(xù)收到執(zhí)行所述測試計劃的指令之后,將所關(guān)聯(lián)的一個或多個所述可執(zhí)行腳本進行重新解釋,轉(zhuǎn)換為一個腳本匯編部件(即步驟生成腳本匯編部件64),并且將該腳本匯編部件緩存在所述數(shù)據(jù)庫62中,緩存所述腳本匯編部件的區(qū)域即為運行池65。
第四,設(shè)置了測試驅(qū)動66,所述測試驅(qū)動66充當所述執(zhí)行模塊300的功能,用于從所述運行池65中調(diào)取與所述測試計劃相對應(yīng)的腳本匯編部件,并將其執(zhí)行所得的測試結(jié)果輸出到網(wǎng)頁頁面中,同時,也將所述測試結(jié)果保存在所述數(shù)據(jù)庫62中。
第五,優(yōu)選地,還設(shè)置了結(jié)果監(jiān)視器67,用于測試人員在所述Web端61或其他終端上查看所述測試計劃的運行結(jié)果,并自動生成測試報告,有利于對測試結(jié)果進行學習。更優(yōu)地,借助于該結(jié)果監(jiān)視器67對同類fail問題進行主動標注,可減少人工調(diào)查的成本。進一步地,所述結(jié)果監(jiān)視器67所獲取的運行結(jié)果可以通過郵件形式發(fā)送到指定的監(jiān)控地址(即步驟發(fā)送郵件68)。
綜上所述,本發(fā)明自動化測試定制方法和自動化測試定制系統(tǒng)簡單易用,避免了大量重復(fù)編寫可執(zhí)行腳本工作,能提高測試效率和節(jié)省測試時間。
以上所述僅是本發(fā)明的部分實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。