基于建模的web應(yīng)用自動(dòng)化測(cè)試方法
【專利摘要】一種基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,包括:S1、建立瀏覽器,使用該瀏覽器訪問待測(cè)網(wǎng)站頁面,獲取數(shù)據(jù);S2、分析頁面,進(jìn)行頁面建模,并保存至頁面建模數(shù)據(jù)文件;S3、在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面建模數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和測(cè)試用例,模擬用戶操作。本方法通過瀏覽器對(duì)測(cè)試頁面自動(dòng)建模,并通過控制瀏覽器運(yùn)行過程中調(diào)用頁面模型數(shù)據(jù),控制瀏覽器實(shí)現(xiàn)模擬用戶操作,此方法可跨瀏覽器、可跨平臺(tái)、可并行,能實(shí)現(xiàn)自動(dòng)化測(cè)試從開發(fā)、執(zhí)行到維護(hù)的高效。
【專利說明】基于建模的web應(yīng)用自動(dòng)化測(cè)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及web測(cè)試技術(shù),更具體地,涉及基于建模的web應(yīng)用自動(dòng)化測(cè)試方法。【背景技術(shù)】
[0002]互聯(lián)網(wǎng)應(yīng)用正逐步滲透到人們生活的各個(gè)方面,原來需要面對(duì)面處理的事務(wù)通過網(wǎng)絡(luò)即可實(shí)現(xiàn),例如網(wǎng)上繳費(fèi)、購物、更換證件。將來,互聯(lián)網(wǎng)也必然會(huì)有更多的應(yīng)用。因此,各個(gè)網(wǎng)站的頁面會(huì)更新非常頻繁,這也必然導(dǎo)致web應(yīng)用測(cè)試更頻繁。雖然現(xiàn)在已經(jīng)有了 web應(yīng)用的自動(dòng)化測(cè)試,但是由于用戶需求變化快、界面變化頻繁等特點(diǎn),使web應(yīng)用自動(dòng)化測(cè)試的開展都面臨著腳本失敗率高,腳本維護(hù)成本高的困擾。即使是應(yīng)用正式發(fā)布后也會(huì)有新需求源源不斷的加入,這些需求往往伴隨著界面或者控件的屬性隨之改變,導(dǎo)致需要重新設(shè)計(jì)和編寫自動(dòng)測(cè)試方案。
【發(fā)明內(nèi)容】
[0003]針對(duì)上述問題,本發(fā)明提出一種基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,包括:S1、建立瀏覽器,使用該瀏覽器訪問待測(cè)網(wǎng)站頁面,獲取數(shù)據(jù);S2、分析頁面,進(jìn)行頁面建模,并保存至頁面建模數(shù)據(jù)文件;S3、在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面建模數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和測(cè)試用例,模擬用戶操作。
[0004]進(jìn)一步,在SI中,該瀏覽器是可配置的,獲取的數(shù)據(jù)是用戶交互數(shù)據(jù)。
[0005]進(jìn)一步,在S2中,所述頁面建模數(shù)據(jù)文件保存了受測(cè)對(duì)象的屬性以及測(cè)試用例。
[0006]進(jìn)一步,在SI中,通過JEditorPane與JSpider瀏覽器訪問web站點(diǎn)。
[0007]進(jìn)一步,在S2中,通過JSpider爬蟲引擎對(duì)站點(diǎn)待測(cè)試頁面進(jìn)行頁面建模,選擇頁面上相應(yīng)的受測(cè)對(duì)象并將數(shù)據(jù)保存至本地的頁面模型數(shù)據(jù)文件。
[0008]進(jìn)一步,在S3中,使用Webdriver提供的接口啟動(dòng)并控制所述瀏覽器,通過數(shù)據(jù)解析器從頁面建模數(shù)據(jù)文件中獲取頁面的受測(cè)對(duì)象和測(cè)試用例,根據(jù)測(cè)試用例的操作步驟,實(shí)現(xiàn)模擬用戶操作。
[0009]進(jìn)一步,S3還包括:啟動(dòng)所述瀏覽器,通過Jenkins持續(xù)集成平臺(tái)或命令行調(diào)用自動(dòng)化腳本,腳本通過webdriver API調(diào)用所述頁面建模數(shù)據(jù)文件,并在瀏覽器中執(zhí)行腳本中相應(yīng)的操作。
[0010]本方法通過瀏覽器對(duì)測(cè)試頁面自動(dòng)建模,并通過控制瀏覽器運(yùn)行過程中調(diào)用頁面模型數(shù)據(jù),控制瀏覽器實(shí)現(xiàn)模擬用戶操作,此方法可跨瀏覽器、可跨平臺(tái)、可并行,能實(shí)現(xiàn)自動(dòng)化測(cè)試從開發(fā)、執(zhí)行到維護(hù)的高效。
【專利附圖】
【附圖說明】
[0011]圖1為本發(fā)明的方法的一個(gè)實(shí)施例的流程圖;
[0012]圖2為圖1中的頁面建模的流程圖;
[0013]圖3為本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)圖;[0014]圖4為圖3中的自動(dòng)測(cè)試過程的流程圖;
[0015]圖5為一個(gè)應(yīng)用實(shí)例的一個(gè)截圖。
【具體實(shí)施方式】
[0016]在本發(fā)明中,“對(duì)象”指的是用戶期望在頁面中操作的對(duì)象,例如文本框、圖片、按鈕、連接等。“屬性”在html頁面源碼中,用來表示該對(duì)象的性質(zhì)和特性,通常都是以“對(duì)象名”=“值”的形式來表示。“測(cè)試用例”是包含了業(yè)務(wù)邏輯、順序、期望結(jié)果等的數(shù)據(jù)集合,是自動(dòng)化測(cè)試腳本編寫的依據(jù)。
[0017]圖1為本發(fā)明的方法的一個(gè)實(shí)施例的流程圖,所述方法包括:
[0018]步驟S1、建立瀏覽器,使用該瀏覽器訪問待測(cè)頁面,其中該瀏覽器能夠抓取待測(cè)頁面的源碼。
[0019]該瀏覽器是特制的,可以用多種方式實(shí)現(xiàn)。該瀏覽器是可配置的,可展示頁面的html源碼。瀏覽器抓取的數(shù)據(jù)是頁面上的受測(cè)對(duì)象,所述受測(cè)對(duì)象可以是靜態(tài)的(例如圖片),也可以是動(dòng)態(tài)的(例如用戶交互數(shù)據(jù),比如輸入框、搜索按鈕)。
[0020]有利地,所述瀏覽器能夠進(jìn)行輸入、鏈接點(diǎn)擊等操作,還可以模擬復(fù)雜瀏覽器的功能,包括拖拽、截屏、文件上傳與下載的驗(yàn)證等。更有利地,該瀏覽器能夠檢查站點(diǎn)的錯(cuò)誤。
[0021]步驟S2、分析待測(cè)頁面的源碼,進(jìn)行頁面建模,并保存至頁面模型數(shù)據(jù)文件。
[0022]頁面模型,是指自動(dòng)化測(cè)試中會(huì)使用到的對(duì)象所組成的模型。
[0023]圖2顯示了如何進(jìn)行頁面建模。在該步驟S2中,建模針對(duì)的是待測(cè)頁面中需要操作的對(duì)象。具體為,建模的目標(biāo)是頁面中的受測(cè)對(duì)象(選擇哪些受測(cè)對(duì)象可以預(yù)先根據(jù)業(yè)務(wù)規(guī)則配置),每一個(gè)受測(cè)對(duì)象在頁面中具有固定的路徑。因此,受測(cè)對(duì)象-值(KEY-VALUE)就形成了該頁面的模型。將該受測(cè)對(duì)象-值存儲(chǔ)到文件中,形成頁面模型數(shù)據(jù)文件。其中,VALUE保存的是受測(cè)對(duì)象的路徑。在一個(gè)實(shí)施例中,VALUE保存的是XPATH的值。XPATH是XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。XPATH基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力。因此,用XPATH的值可以定位受測(cè)對(duì)象在頁面中的位置。
[0024]其中,如果待測(cè)頁面不涉及用戶操作,可以直接對(duì)頁面進(jìn)行建模,形成頁面模型。
[0025]如果待測(cè)頁面中包括需要用戶操作的對(duì)象,例如某些控件,則通過用戶在頁面中對(duì)對(duì)象的操作,自動(dòng)生成受測(cè)對(duì)象與值。通過用戶在頁面中的操作將需要操作的對(duì)象選取出來,因?yàn)轫撁嫔系膶?duì)象成百上千,但是自動(dòng)化腳本中所使用的只是很小一部分,通過用戶的操作將真正使用的對(duì)象做成頁面模型。通過用戶在頁面中對(duì)控件的操作,獲得受測(cè)對(duì)象與值。
[0026]步驟S3、在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面模型數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和值,進(jìn)行頁面測(cè)試。
[0027]更進(jìn)一步,在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面模型數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和值,用測(cè)試用例模擬用戶操作。
[0028]因此,在本發(fā)明中,邏輯和數(shù)據(jù)不再耦合在一起,本發(fā)明通過進(jìn)行頁面建模,將頁面屬性和頁面數(shù)據(jù)分離開,當(dāng)頁面變更后,只需要對(duì)頁面重新建?;蛘吒聹y(cè)試用例,即可進(jìn)行自動(dòng)測(cè)試。[0029]本方法通過瀏覽器對(duì)測(cè)試頁面自動(dòng)建模,并通過控制瀏覽器運(yùn)行過程中調(diào)用頁面模型數(shù)據(jù),控制瀏覽器實(shí)現(xiàn)模擬用戶操作,此方法可跨瀏覽器、可跨平臺(tái)、可并行,能實(shí)現(xiàn)自動(dòng)化測(cè)試從開發(fā)、執(zhí)行到維護(hù)的高效。
[0030]在現(xiàn)有技術(shù)中,在web自動(dòng)化測(cè)試開展的過程中,腳本開發(fā)難度大與維護(hù)成本高,自動(dòng)化成本高。而在本發(fā)明中,當(dāng)頁面變更引起腳本執(zhí)行失敗時(shí),通過頁面重新建?;蛑苯有薷谋镜?cái)?shù)據(jù)文件,即可自動(dòng)完成頁面數(shù)據(jù)維護(hù)工作。頁面重新建模就是在瀏覽器中重新操作控件,刷新控件對(duì)象的KEY-VALUE值,直接修改本地?cái)?shù)據(jù)文件即直接在本地文件中更新XPATH值。
[0031]在本發(fā)明中,邏輯層單獨(dú)維護(hù),邏輯層即是測(cè)試用例中的用例邏輯,比如點(diǎn)擊某個(gè)按鈕,在某個(gè)指定框輸入文本或者選擇某個(gè)下拉框中的選項(xiàng)。一般來說項(xiàng)目進(jìn)入維護(hù)期后,業(yè)務(wù)邏輯變動(dòng)較小,頁面樣式或元素變更大些,但因?yàn)檫壿嫹蛛x以后,如果頁面元素路徑變了,只需要維護(hù)頁面模型文件中的路徑就可以了,這樣就大大提高自動(dòng)化測(cè)試在web項(xiàng)目中運(yùn)用的靈活性,使web自動(dòng)化測(cè)試后期的維護(hù)與執(zhí)行均無需大量的編碼工作,為web應(yīng)用提供了一套低成本并且簡(jiǎn)單、高效的web自動(dòng)化測(cè)試方法。
[0032]圖3顯示了本發(fā)明的另一個(gè)實(shí)施例的流程圖。
[0033]首先,通過JEditorPane與JSpider瀏覽器訪問web站點(diǎn)。
[0034]然后,通過JSpider爬蟲引擎對(duì)站點(diǎn)待測(cè)試頁面進(jìn)行頁面建模,選擇頁面上相應(yīng)的受測(cè)對(duì)象并將數(shù)據(jù)保存至本地的頁面模型數(shù)據(jù)文件,完成頁面建模。
[0035]最后,建模完成后,使用Webdriver提供的接口啟動(dòng)并控制所述瀏覽器,通過自制數(shù)據(jù)解析器從數(shù)據(jù)文件中獲取頁面的對(duì)象,根據(jù)測(cè)試用例的操作步驟,實(shí)現(xiàn)模擬用戶操作。用例執(zhí)行結(jié)束后,關(guān)閉瀏覽器。通過Jenkins持續(xù)集成平臺(tái)或命令行調(diào)用自動(dòng)化腳本,腳本通過webdriverAPI調(diào)用頁面模型的數(shù)據(jù)文件,實(shí)現(xiàn)了啟動(dòng)并控制瀏覽器,并在瀏覽器中執(zhí)行腳本中相應(yīng)的操作,整個(gè)過程都是可視化的,該方法流程如圖4所示。
[0036]使用此方法當(dāng)頁面發(fā)生變更后,只需要重新執(zhí)行一次建模流程或者直接修改頁面數(shù)據(jù)文件即可完成頁面建模,對(duì)自動(dòng)化測(cè)試執(zhí)行流程不造成任何影響。
[0037]下面以一個(gè)實(shí)例來描述本發(fā)明的實(shí)施過程,如圖5所示。使用特制瀏覽器訪問京東的主頁,操作待測(cè)頁面,進(jìn)行頁面建模,并保存至頁面模型數(shù)據(jù)文件。模擬用戶操作在待測(cè)對(duì)象(圖上方的搜索框)中輸入“戴爾XPS”,獲得受測(cè)對(duì)象與值。將該待測(cè)對(duì)象和值存儲(chǔ)在excel文件中,作為頁面模型數(shù)據(jù)文件。該頁面模型數(shù)據(jù)文件中保持了如下信息:
[0038]受測(cè)對(duì)象:search_Input;值://input [@id=,key,]。
[0039]在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面模型數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和值,模擬用戶操作,進(jìn)行頁面測(cè)試。
[0040]上述實(shí)施例為本發(fā)明的典型的實(shí)施方式,但本發(fā)明并不受上述實(shí)施例的限制,其他任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、替代、組合、簡(jiǎn)化,均為等效的置換方式,包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,包括: 51、建立瀏覽器,使用該瀏覽器訪問待測(cè)網(wǎng)站頁面,獲取數(shù)據(jù); 52、分析頁面,進(jìn)行頁面建模,并保存至頁面建模數(shù)據(jù)文件; 53、在測(cè)試時(shí),啟動(dòng)所述瀏覽器,讀取所述頁面建模數(shù)據(jù)文件,從中獲取頁面的受測(cè)對(duì)象和測(cè)試用例,模擬用戶操作。
2.根據(jù)權(quán)利要求1所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,在SI中,該瀏覽器是可配置的,獲取的數(shù)據(jù)是用戶交互數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,在S2中,所述頁面建模數(shù)據(jù)文件保存了受測(cè)對(duì)象的屬性以及測(cè)試用例。
4.根據(jù)權(quán)利要求1所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,在SI中,通過JEditorPane與JSpider瀏覽器訪問web站點(diǎn)。
5.根據(jù)權(quán)利要求1所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,在S2中,通過JSpider爬蟲引擎對(duì)站點(diǎn)待測(cè)試頁面進(jìn)行頁面建模,選擇頁面上相應(yīng)的受測(cè)對(duì)象并將數(shù)據(jù)保存至本地的頁面模型數(shù)據(jù)文件。
6.根據(jù)權(quán)利要求1所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,在S3中,使用Webdriver提供的接口啟動(dòng)并控制所述瀏覽器,通過數(shù)據(jù)解析器從頁面建模數(shù)據(jù)文件中獲取頁面的受測(cè)對(duì)象和測(cè)試用例,根據(jù)測(cè)試用例的操作步驟,實(shí)現(xiàn)模擬用戶操作。
7.根據(jù)權(quán)利要求6所述的基于建模的web應(yīng)用自動(dòng)化測(cè)試方法,其特征在于,S3還包括:啟動(dòng)所述瀏覽器,通過Jenkins持續(xù)集成平臺(tái)或命令行調(diào)用自動(dòng)化腳本,腳本通過webdriver API調(diào)用所述頁面建模數(shù)據(jù)文件,并在瀏覽器中執(zhí)行腳本中相應(yīng)的操作。
【文檔編號(hào)】G06F11/36GK103678120SQ201310560257
【公開日】2014年3月26日 申請(qǐng)日期:2013年11月12日 優(yōu)先權(quán)日:2013年11月12日
【發(fā)明者】楊瑾 申請(qǐng)人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司