本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,尤其涉及一種動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)。
背景技術(shù):
動(dòng)態(tài)頁面(activewebpage),是網(wǎng)頁前端頁面的主要展現(xiàn)形式。對(duì)動(dòng)態(tài)頁面進(jìn)行自動(dòng)化規(guī)則掃描,可以幫助開發(fā)人員和測試人員及時(shí)發(fā)現(xiàn)動(dòng)態(tài)頁面潛在的軟件缺陷(bug)和安全漏洞,有利于提升用戶體驗(yàn)。
傳統(tǒng)的動(dòng)態(tài)頁面自動(dòng)化掃描工具,是基于電腦版瀏覽器(pcbrowser)的插件機(jī)制實(shí)現(xiàn)的。具體而言,首先通過瀏覽器接口開發(fā)出可以調(diào)用瀏覽器接口的插件,再通過插件向頁面中插入測試代碼,實(shí)現(xiàn)對(duì)動(dòng)態(tài)頁面的自動(dòng)化規(guī)則掃描。
然而,隨著移動(dòng)終端的發(fā)展,基于移動(dòng)終端的動(dòng)態(tài)頁面越來越多,傳統(tǒng)的動(dòng)態(tài)頁面自動(dòng)化掃描工具,過于依賴于瀏覽器類型而導(dǎo)致兼容性差,已不再廣泛適用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì),旨在提高兼容性、同時(shí)提高測試效率。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
一種動(dòng)態(tài)頁面的測試方法,包括:
攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面;
在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目;以及
向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例還提供以下技術(shù)方案:
一種動(dòng)態(tài)頁面的測試裝置,包括:
請(qǐng)求模塊,用于攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面;
測試模塊,用于在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目;以及
收發(fā)模塊,用于向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例還提供以下技術(shù)方案:
一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)上述動(dòng)態(tài)頁面的測試方法的步驟。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì),通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
附圖說明
下面結(jié)合附圖,通過對(duì)本發(fā)明的具體實(shí)施方式詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其它有益效果顯而易見。
圖1是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)的應(yīng)用場景示意圖;
圖2是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的另一流程示意圖;
圖4是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的時(shí)序示意圖;
圖5是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置的模塊示意圖;
圖6是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置的另一模塊示意圖;
圖7是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)的硬件環(huán)境示意圖;
圖8是本發(fā)明實(shí)施例提供的代碼規(guī)則的示意圖;
圖9是本發(fā)明實(shí)施例提供的上報(bào)鏈接的示意圖。
具體實(shí)施方式
請(qǐng)參照?qǐng)D式,其中相同的組件符號(hào)代表相同的組件,本發(fā)明的原理是以實(shí)施在一適當(dāng)?shù)倪\(yùn)算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實(shí)施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
在以下的說明中,本發(fā)明的具體實(shí)施例將參考由一部或多部計(jì)算機(jī)所執(zhí)行的步驟及符號(hào)來說明,除非另有述明。因此,這些步驟及操作將有數(shù)次提到由計(jì)算機(jī)執(zhí)行,本文所指的計(jì)算機(jī)執(zhí)行包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)的電子信號(hào)的計(jì)算機(jī)處理單元的操作。此操作轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計(jì)算機(jī)的內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領(lǐng)域技術(shù)人員所熟知的方式來改變該計(jì)算機(jī)的運(yùn)作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu)為該內(nèi)存的實(shí)體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域技術(shù)人員將可了解到以下所述的多種步驟及操作亦可實(shí)施在硬件當(dāng)中。
本文所使用的術(shù)語「模塊」、「單元」可看做為在該運(yùn)算系統(tǒng)上執(zhí)行的軟件對(duì)象。本文所述的不同組件、模塊、引擎及服務(wù)可看做為在該運(yùn)算系統(tǒng)上的實(shí)施對(duì)象。而本文所述的裝置及方法優(yōu)選的以軟件的方式進(jìn)行實(shí)施,當(dāng)然也可在硬件上進(jìn)行實(shí)施,均在本發(fā)明保護(hù)范圍之內(nèi)。
請(qǐng)參閱圖1,所示為本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)的應(yīng)用場景示意圖。本發(fā)明實(shí)施例中的動(dòng)態(tài)頁面的測試,可廣泛應(yīng)用于各類瀏覽器,比如基于個(gè)人電腦(pc)、或基于移動(dòng)終端設(shè)備,具有兼容性高的優(yōu)點(diǎn)。
所述應(yīng)用場景中包括:終端設(shè)備11、代理12、內(nèi)容服務(wù)器13、和測試服務(wù)器14。
所述終端設(shè)備11可以是電腦、或手機(jī)等移動(dòng)終端。終端設(shè)備11中安裝有瀏覽器111。圖中以手機(jī)為例進(jìn)行說明。首先,瀏覽器111中的網(wǎng)址被觸發(fā)后,發(fā)送網(wǎng)頁訪問請(qǐng)求,其中所述網(wǎng)頁訪問請(qǐng)求包括:被測域名和被測鏈接,可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html;然后,瀏覽器111接收基于所述網(wǎng)頁訪問請(qǐng)求所發(fā)送的測試頁面,對(duì)所述測試頁面進(jìn)行解析,并請(qǐng)求對(duì)應(yīng)的代碼文件,可表達(dá)為:請(qǐng)求http://被測域名/測試腳本;接收代碼文件和測試參數(shù),并執(zhí)行所述代碼文件以生成動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html,并通過所述代理將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
內(nèi)容服務(wù)器13,用于根據(jù)所述網(wǎng)頁訪問請(qǐng)求,提供對(duì)應(yīng)的原始頁面。
測試服務(wù)器14,用于接收所述動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并根據(jù)所述規(guī)則掃描結(jié)果,生成應(yīng)對(duì)策略。
代理12,是一種存在于網(wǎng)絡(luò)中間的實(shí)體。其原理可以理解為:終端設(shè)備11向代理12發(fā)送請(qǐng)求,代理12對(duì)請(qǐng)求進(jìn)行處理和連接,同時(shí)向服務(wù)器13發(fā)送請(qǐng)求,并將接收到的響應(yīng)轉(zhuǎn)發(fā)給終端設(shè)備11。也就是說,對(duì)于終端設(shè)備11來說,代理12扮演的是服務(wù)器13的角色,對(duì)于服務(wù)器13來說,代理12扮演的是終端設(shè)備11的角色。
具體而言,在本發(fā)明的實(shí)施例中,所述代理12用于攔截瀏覽器111的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器13中獲取原始頁面;然后在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目;接下來向所述瀏覽器111發(fā)送所述測試頁面,并攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果;其中當(dāng)所述規(guī)則掃描結(jié)果中包括告警請(qǐng)求時(shí),讀取環(huán)境參數(shù),并將所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)發(fā)送至測試服務(wù)器14。同時(shí),向所述瀏覽器111發(fā)送反饋信息,以結(jié)束對(duì)所述代碼文件的測試。
本發(fā)明實(shí)施例所提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì),主要執(zhí)行于代理12一側(cè),因此,以下實(shí)施例皆從代理12端進(jìn)行交互動(dòng)作的說明。
請(qǐng)參閱圖2,所示為本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的流程示意圖。
所述動(dòng)態(tài)頁面的測試方法,包括如下步驟:
在步驟s201中,攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面。
其中,所述網(wǎng)頁訪問請(qǐng)求中包括:被測域名和被測鏈接,可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html。
在步驟s202中,在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目。
具體而言,本步驟分為:
(1)在原始頁面中插入測試腳本的資源地址,所述測試腳本的資源地址用于指定待測試的代碼文件;比如,通過如下指令:
<scriptdata-flag=”crossorigin”src=”/is/fiddler_test.is”></script></body></html>,用以插入被測腳本,使瀏覽器以src為鏈接去下載并執(zhí)行指定的代碼文件。
(2)將所述插入測試腳本資源地址的頁面發(fā)送至瀏覽器;
(3)接收所述瀏覽器解析后生成的對(duì)代碼文件的請(qǐng)求,所述對(duì)代碼文件的請(qǐng)求包括:被測域名、被測鏈接、和測試腳本,比如:表達(dá)為:請(qǐng)求http://被測域名/被測鏈接/測試腳本;
(4)根據(jù)所述對(duì)代碼文件的請(qǐng)求讀取對(duì)應(yīng)的代碼文件和測試參數(shù)以生成測試頁面,其中,所述測試參數(shù)用于指定所述代碼文件的測試的項(xiàng)目。
在步驟s203中,向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
其中,所述規(guī)則掃描,是在測試過程中,通過預(yù)設(shè)的代碼規(guī)則,進(jìn)行自動(dòng)化檢測軟件缺陷(bug)和安全漏洞,主要是依據(jù)所述測試參數(shù)生成。
如圖8所示,為規(guī)則掃描的一示例圖。其中,所述規(guī)則包括但不限于:檢查cgi資源是否錄入att平臺(tái);檢查是否存在badjs上報(bào);檢查靜態(tài)資源是否壓縮或緩存;檢查異常的http返回碼;檢查異常的cgi返回值;檢查cgi返回?cái)?shù)據(jù)中是否存在qq號(hào)、手機(jī)號(hào)、或身份證號(hào);等等,此處不一一列舉。
所述規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html。
如圖9所示,問上報(bào)信息鏈接的示例圖。其中,至少包括:郵件配置,用于指定收件人或收件團(tuán)隊(duì)、發(fā)件人、和抄送人;以及關(guān)注域名,用于指定被測域名。還可以報(bào)名:項(xiàng)目信息,如項(xiàng)目id、立項(xiàng)目的等;以及系統(tǒng)配置信息。概而言之,用于說明bug的發(fā)現(xiàn)人、通知人、機(jī)型、時(shí)間點(diǎn)、相關(guān)頁面的信息。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法,通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
請(qǐng)參閱圖3,所示是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的另一流程示意圖。
所述動(dòng)態(tài)頁面的測試方法,包括如下步驟:
在步驟s301中,攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求。
其中,所述網(wǎng)頁訪問請(qǐng)求中包括:被測域名和被測鏈接,可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html。
在步驟s302中,將所述網(wǎng)頁訪問請(qǐng)求轉(zhuǎn)發(fā)至內(nèi)容服務(wù)器,并接收所述內(nèi)容服務(wù)器發(fā)送的原始頁面。
在步驟s303中,在所述原始頁面中注入測試腳本的資源地址,其中所述測試腳本的資源地址用于指定待測試的代碼文件。
在步驟s304中,將所述測試腳本的資源地址發(fā)送至所述瀏覽器,并接收所述瀏覽器解析所述資源地址后對(duì)代碼文件的請(qǐng)求。
其中,所述對(duì)代碼文件的請(qǐng)求包括:被測域名、被測鏈接、和測試腳本,比如:可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接/測試腳本。
在步驟s305中,讀取對(duì)應(yīng)的代碼文件和讀取測試參數(shù),并發(fā)送至瀏覽器。
具體而言,本步驟包括:
(1)根據(jù)所述對(duì)代碼文件的請(qǐng)求獲取對(duì)應(yīng)的代碼文件;
(2)獲取測試參數(shù),所述測試參數(shù)用于指定待測試的項(xiàng)目??删唧w執(zhí)行為:根據(jù)所述代碼文件,獲取對(duì)應(yīng)的測試選項(xiàng);響應(yīng)對(duì)所述測試選項(xiàng)的確認(rèn)指令,以生成測試參數(shù)。
在步驟s306中,攔截瀏覽器執(zhí)行所述代碼文件所生成的規(guī)則掃描結(jié)果。
可以理解的是,瀏覽器接收到所述代碼文件和測試參數(shù)后,根據(jù)所述測試測試對(duì)所述代碼文件進(jìn)行規(guī)則掃描,進(jìn)而生成規(guī)則掃描結(jié)果。
其中,所述規(guī)則掃描,是在測試過程中,通過測試參數(shù)對(duì)代碼文件進(jìn)行自動(dòng)化檢測軟件缺陷(bug)和安全漏洞。
如圖8所示,為規(guī)則掃描的一示例圖。其中,所述規(guī)則包括但不限于:檢查cgi資源是否錄入att平臺(tái);檢查是否存在badjs上報(bào);檢查靜態(tài)資源是否壓縮或緩存;檢查異常的http返回碼;檢查異常的cgi返回值;檢查cgi返回?cái)?shù)據(jù)中是否存在qq號(hào)、手機(jī)號(hào)、或身份證號(hào);等等,此處不一一列舉。
其中,所述規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html。
如圖9所示,問上報(bào)信息鏈接的示例圖。其中,至少包括:郵件配置,用于指定收件人或收件團(tuán)隊(duì)、發(fā)件人、和抄送人;以及關(guān)注域名,用于指定被測域名。還可以報(bào)名:項(xiàng)目信息,如項(xiàng)目id、立項(xiàng)目的等;以及系統(tǒng)配置信息。概而言之,用于說明bug的發(fā)現(xiàn)人、通知人、機(jī)型、時(shí)間點(diǎn)、相關(guān)頁面的信息。
在步驟s307中,當(dāng)所述規(guī)則掃描結(jié)果中包括告警請(qǐng)求時(shí),讀取環(huán)境參數(shù)。
在步驟s308中,將所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)發(fā)送至測試服務(wù)器,并由所述測試服務(wù)器生成應(yīng)對(duì)策略。
在步驟s309中,向所述瀏覽器發(fā)送反饋信息,以結(jié)束對(duì)所述代碼文件的測試。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法,通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
此外,通過代理進(jìn)行代碼文件的插入,可以通過在域名下指定對(duì)應(yīng)的測試腳本,進(jìn)而避免跨域問題、客戶端白名單問題、以及http的證書問題等。
請(qǐng)參閱圖4,所示是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法的時(shí)序示意圖。
所述動(dòng)態(tài)頁面的測試方法,由終端設(shè)備中的瀏覽器和代理、內(nèi)容服務(wù)器、和測試服務(wù)器共同執(zhí)行。所述代理包括:傳輸模塊、本地存儲(chǔ)器、和代理層。以下以代理與其他服務(wù)器或終端設(shè)備的互動(dòng)進(jìn)行說明如下:
在步驟a中,代理攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求。所述網(wǎng)頁訪問請(qǐng)求中表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html。
在步驟b中,代理將所述網(wǎng)頁訪問請(qǐng)求轉(zhuǎn)發(fā)至內(nèi)容服務(wù)器。
在步驟c中,代理接收所述內(nèi)容服務(wù)器發(fā)送的原始頁面。
在步驟d中,代理在所述原始頁面中注入測試腳本的資源地址以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件。
在步驟e中,代理將所述測試頁面發(fā)送至所述瀏覽器。
在步驟f中,瀏覽器解析所述測試頁面,并獲取其中對(duì)代碼文件的請(qǐng)求,所述對(duì)代碼文件的請(qǐng)求包括:被測域名、被測鏈接、和測試腳本,可表達(dá)為請(qǐng)求http://被測域名/被測鏈接/測試腳本。
在步驟g中,代理根據(jù)所述對(duì)代碼文件的請(qǐng)求,從本地存儲(chǔ)器中讀取對(duì)應(yīng)的代碼文件以及從代理層讀取測試參數(shù),其中所述測試參數(shù)用于指定待測試的項(xiàng)目。
在步驟h中,代理將所述代碼文件和測試請(qǐng)求發(fā)送至瀏覽器。
在步驟i中,瀏覽器執(zhí)行所述測試頁面中的代碼文件,并對(duì)所述代碼文件中的代碼規(guī)則進(jìn)行規(guī)則掃描以生成規(guī)則掃描結(jié)果。所述規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html。
在步驟j中,代理攔截所述瀏覽器發(fā)送的規(guī)則掃描結(jié)果。
在步驟k中,代理當(dāng)所述規(guī)則掃描結(jié)果中包括告警請(qǐng)求時(shí),讀取環(huán)境參數(shù)。
在步驟l中,代理將所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)發(fā)送至測試服務(wù)器。
在步驟m中,測試服務(wù)器根據(jù)所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)生成應(yīng)對(duì)策略。
在步驟n中,代理向所述瀏覽器發(fā)送反饋信息。
在步驟o中,瀏覽器根據(jù)反饋信息結(jié)束對(duì)所述代碼文件的測試。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法,通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
請(qǐng)參閱圖5,所示為本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置的模塊示意圖。
所述動(dòng)態(tài)頁面的測試裝置500,包括:請(qǐng)求模塊51、測試模塊52、和收發(fā)模塊53。
具體而言,所述請(qǐng)求模塊51用于攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面。
其中,所述網(wǎng)頁訪問請(qǐng)求中包括:被測域名和被測鏈接,可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html。
測試模塊52連接于請(qǐng)求模塊51,用于在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目。
其中,所述測試模塊52包括:本地存儲(chǔ)器521,用于存儲(chǔ)代碼文件;以及代理層522,用于生成測試參數(shù)。
具體而言,首先,所述測試模塊52在原始頁面中插入測試腳本的資源地址,所述測試腳本用于指定待測試的代碼文件;然后,將所述插入腳本的頁面發(fā)送至瀏覽器;接下來,接收所述瀏覽器對(duì)應(yīng)的解析結(jié)果;最后,根據(jù)所述解析結(jié)果中對(duì)代碼文件的請(qǐng)求從本地存儲(chǔ)器521中讀取對(duì)應(yīng)的代碼文件、和從代理層522讀取對(duì)應(yīng)的測試參數(shù)以生成測試頁面。
收發(fā)模塊53連接于測試模塊52,用于向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
其中,所述規(guī)則掃描,是在測試過程中,通過測試參數(shù)對(duì)代碼文件進(jìn)行自動(dòng)化檢測軟件缺陷(bug)和安全漏洞。所述規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置,通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
請(qǐng)參閱圖6,所示是本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置的另一模塊示意圖。
所述動(dòng)態(tài)頁面的測試裝置600,包括:請(qǐng)求模塊61、測試模塊62、和收發(fā)模塊63。
請(qǐng)求模塊61,用于攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面。
其中,所述所述請(qǐng)求模塊包括:網(wǎng)頁攔截單元611、和網(wǎng)頁傳輸單元612。
具體而言,所述網(wǎng)頁攔截單元611,用于攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,所述網(wǎng)頁訪問請(qǐng)求包括:被測域名和被測鏈接。在一具體實(shí)施例中,所述網(wǎng)頁訪問請(qǐng)求可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接.html。
所述網(wǎng)頁傳輸單元612,連接于網(wǎng)頁攔截單元611,用于將所述被測域名和被測鏈接發(fā)送至內(nèi)容服務(wù)器,并接收所述內(nèi)容服務(wù)器發(fā)送的原始頁面。
測試模塊62,連接于請(qǐng)求模塊61,用于在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目。
其中,所述測試模塊62包括:腳本注入單元621、腳本傳輸單元622、文件讀取單元623、測試參數(shù)單元624、和頁面生成單元625。
具體而言,所述腳本注入單元621,用于在所述原始頁面中注入測試腳本的資源地址,其中所述測試腳本的資源地址用于指定待測試的代碼文件。
所述腳本傳輸單元622,連接于腳本注入單元621,用于將所述測試腳本的資源地址發(fā)送至所述瀏覽器,并接收所述瀏覽器解析所述測試腳本后生成的對(duì)代碼文件的請(qǐng)求,所述對(duì)代碼文件的請(qǐng)求包括:被測域名、被測鏈接、和測試腳本。在一具體實(shí)施例中,所述對(duì)代碼文件的請(qǐng)求可表達(dá)為:請(qǐng)求http://被測域名/被測鏈接/測試腳本。
所述文件讀取單元623,連接于腳本傳輸單元622,用于根據(jù)所述被測域名、被測鏈接、和測試腳本,讀取對(duì)應(yīng)的代碼文件。
所述測試參數(shù)單元624,用于讀取測試參數(shù),所述測試參數(shù)用于指定待測試的項(xiàng)目。
所述頁面生成單元625,連接于文件讀取單元623和測試參數(shù)單元624,用于根據(jù)所述代碼文件和測試參數(shù)生成測試頁面。
收發(fā)模塊63,連接于測試模塊62,用于向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
其中,所述收發(fā)模塊63包括:頁面發(fā)送單元631、結(jié)果攔截單元632、參數(shù)讀取單元633、和整合傳輸單元634。
具體而言,所述頁面發(fā)送單元631,用于向所述瀏覽器發(fā)送所述測試頁面,以便所述瀏覽器執(zhí)行所述測試頁面中的代碼文件,并對(duì)所述代碼文件中的代碼規(guī)則進(jìn)行規(guī)則掃描以生成規(guī)則掃描結(jié)果。
其中,所述規(guī)則掃描,是在測試過程中,通過測試參數(shù)對(duì)代碼文件進(jìn)行自動(dòng)化檢測軟件缺陷(bug)和安全漏洞。在一具體實(shí)施例中,所述規(guī)則掃描結(jié)果,可表達(dá)為:請(qǐng)求http://被測域名/上報(bào)信息鏈接.html。
結(jié)果攔截單元632,連接于頁面反饋單元631,用于攔截所述瀏覽器發(fā)送的規(guī)則掃描結(jié)果。
參數(shù)讀取單元633,連接于結(jié)果攔截單元632,用于當(dāng)所述規(guī)則掃描結(jié)果中包括告警請(qǐng)求時(shí),讀取環(huán)境參數(shù)。
整合傳輸單元634,連接于參數(shù)讀取單元633,用于將所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)發(fā)送至測試服務(wù)器,并由所述測試服務(wù)器生成應(yīng)對(duì)策略。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試裝置,通過在代理中存儲(chǔ)代碼文件,并通過測試腳本將所述代碼文件注入到原始頁面中以生成測試頁面,并由瀏覽器執(zhí)行所述測試頁面以生成規(guī)則掃描結(jié)果,不僅可以支持電腦瀏覽器和移動(dòng)終端的瀏覽器,具有兼容性高的優(yōu)點(diǎn)、同時(shí)還提高了測試效率。
此外,通過代理進(jìn)行代碼文件的插入,可以通過在域名下指定對(duì)應(yīng)的測試腳本,進(jìn)而避免跨域問題、客戶端白名單問題、以及http的證書問題等。
相應(yīng)的,本發(fā)明實(shí)施例還提供一種代理服務(wù)器,用于展示本發(fā)明實(shí)施例提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)的硬件環(huán)境。需要說明的是,代理既可以理解為終端設(shè)備、也可以理解為服務(wù)器,在下圖中以服務(wù)器為例,對(duì)其硬件環(huán)境進(jìn)行展示。
如圖7所示,所述代理服務(wù)器用于執(zhí)行圖2-3中的動(dòng)態(tài)頁面的測試方法、或運(yùn)行圖5-6中的動(dòng)態(tài)頁面的測試的測試裝置。所述代理服務(wù)器700包括:一個(gè)或者一個(gè)以上處理核心的處理器701、一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器702、輸入單元703、短距離無線傳輸(wifi)模塊704、顯示屏幕705、以及電源706等部件。
本領(lǐng)域技術(shù)人員可以理解,上述結(jié)構(gòu)并不構(gòu)成對(duì)代理服務(wù)器700的限定,可以包括比上述更多或更少的部件、組合某些部件、或不同的部件布置。其中:
具體在本實(shí)施例中,在代理服務(wù)器700中,處理器701會(huì)按照如下的指令,將一個(gè)或一個(gè)以上的應(yīng)用程序的進(jìn)程對(duì)應(yīng)的可執(zhí)行文件加載到存儲(chǔ)器702中,并由處理器701來運(yùn)行存儲(chǔ)在存儲(chǔ)器702中的應(yīng)用程序,從而實(shí)現(xiàn)各種功能,如下:攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,并根據(jù)所述網(wǎng)頁訪問請(qǐng)求從內(nèi)容服務(wù)器中獲取原始頁面;在所述原始頁面中注入測試腳本的資源地址和測試參數(shù)以生成測試頁面,其中所述測試腳本的資源地址用于指定待測試的代碼文件,所述測試參數(shù)用于指定待測試的項(xiàng)目;向所述瀏覽器發(fā)送所述測試頁面,攔截所述瀏覽器執(zhí)行所述測試頁面中代碼文件所生成的動(dòng)態(tài)頁面的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
優(yōu)選的,所述處理器701還可以用于:攔截瀏覽器的網(wǎng)頁訪問請(qǐng)求,所述網(wǎng)頁訪問請(qǐng)求包括:被測域名和被測鏈接;將所述被測域名和被測鏈接發(fā)送至內(nèi)容服務(wù)器,并接收所述內(nèi)容服務(wù)器發(fā)送的原始頁面。
優(yōu)選的,所述處理器701還可以用于:在所述原始頁面中注入測試腳本的資源地址,其中所述測試腳本的資源地址用于指定待測試的代碼文件;將所述測試腳本的資源地址發(fā)送至所述瀏覽器,并接收所述瀏覽器解析所述資源地址后對(duì)代碼文件的請(qǐng)求,所述對(duì)代碼文件的請(qǐng)求包括:被測域名、被測鏈接、和測試腳本;根據(jù)所述被測域名、被測鏈接、和測試腳本,讀取對(duì)應(yīng)的代碼文件;讀取測試參數(shù),所述測試參數(shù)用于指定待測試的項(xiàng)目;根據(jù)所述代碼文件和測試參數(shù)生成測試頁面。
優(yōu)選的,所述處理器701還可以用于:根據(jù)所述代碼文件,獲取對(duì)應(yīng)的測試選項(xiàng);響應(yīng)對(duì)所述測試選項(xiàng)的確認(rèn)指令,以生成測試參數(shù)。
優(yōu)選的,所述處理器701還可以用于:向所述瀏覽器發(fā)送所述測試頁面,以便所述瀏覽器執(zhí)行所述測試頁面中的代碼文件,并對(duì)所述代碼文件中的代碼規(guī)則進(jìn)行規(guī)則掃描以生成規(guī)則掃描結(jié)果;攔截所述瀏覽器發(fā)送的規(guī)則掃描結(jié)果,并將所述規(guī)則掃描結(jié)果上傳至測試服務(wù)器。
優(yōu)選的,所述處理器701還可以用于:當(dāng)所述規(guī)則掃描結(jié)果中包括告警請(qǐng)求時(shí),讀取環(huán)境參數(shù);將所述規(guī)則掃描結(jié)果和所述環(huán)境參數(shù)發(fā)送至測試服務(wù)器,并由所述測試服務(wù)器生成應(yīng)對(duì)策略。
優(yōu)選的,所述處理器701還可以用于:向所述瀏覽器發(fā)送反饋信息,以結(jié)束對(duì)所述代碼文件的測試。
本發(fā)明實(shí)施例提供的所述代理服務(wù)器,與上文實(shí)施例中的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)屬于同一構(gòu)思。
需要說明的是,對(duì)本發(fā)明所述動(dòng)態(tài)頁面的測試方法而言,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)本發(fā)明實(shí)施例中的全部或部分流程,是可以通過計(jì)算機(jī)程序來控制相關(guān)的硬件來完成,所述計(jì)算機(jī)程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如存儲(chǔ)在代理服務(wù)器的存儲(chǔ)器中,并被該代理服務(wù)器內(nèi)的至少一個(gè)處理器執(zhí)行,在執(zhí)行過程中可包括如所述信息分享方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)器(rom,readonlymemory)、隨機(jī)存取記憶體(ram,randomaccessmemory)等。
對(duì)本發(fā)明實(shí)施例的所述動(dòng)態(tài)頁面的測試裝置而言,其各功能模塊可以集成在一個(gè)處理芯片中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述存儲(chǔ)介質(zhì)譬如為只讀存儲(chǔ)器,磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的動(dòng)態(tài)頁面的測試方法、測試裝置及存儲(chǔ)介質(zhì)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。