專利名稱:網(wǎng)站自動化測試方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)站測試領(lǐng)域,更具體地說,涉及采用網(wǎng)頁驗證碼鎖定進行網(wǎng)站自動 化測試的方法和系統(tǒng)。
背景技術(shù):
目前網(wǎng)頁中的驗證碼在終端用戶顯示時,會采用各種方式進行保護,如點擊刷新, 定時刷新等,以做到需要用戶手眼并用,才能進行操作的程度。當(dāng)前自動化中解決這個問題的技術(shù)途徑主要是在獲取驗證碼圖片的焦點后,使用 后臺程序獲取驗證碼圖片流,識別程序進行識別,然后在焦點處填寫驗證碼。不少網(wǎng)站在用戶登錄、用戶提交信息等登錄和輸入的頁面上使用了驗證碼技術(shù)。 驗證碼技術(shù)可以有效防止惡意用戶對網(wǎng)站的濫用,使得網(wǎng)站可以有效避免用戶信息失竊、 廣告垃圾等問題。但與此同時,驗證碼技術(shù)的使用卻使得WEB自動化測試面臨了較大的困 難——由于驗證碼的存在,傳統(tǒng)的“錄制”-“回放”工具由于不能識別驗證碼而失效。在各 大軟件測試的論壇中,經(jīng)常能看到測試工程師在焦急地發(fā)問“自動化測試時如何處理頁面 上的驗證碼?”,可見,該問題確實嚴重困擾著相當(dāng)多的測試工程師。當(dāng)前自動測試中WEB驗證碼處理的方法主要如下從技術(shù)的角度來看,有兩種不同的方法來實現(xiàn)自動測試工具對驗證碼的處理完 全從客戶端角度考慮,靠模式識別的方法識別出驗證碼圖片對應(yīng)的字符串;從服務(wù)端角度 考慮,如果自動測試工具可以獲取Session中存儲的隨機數(shù),也就能正確處理驗證碼了。這 兩種方法是解決自動化測試中驗證碼問題的主要方法,我們分別稱其為識別法和服務(wù)端插 入法。這兩種方法在實現(xiàn)方法上側(cè)重點不同,適用的場合也不同。識別法完全不用考慮服 務(wù)端應(yīng)用的實現(xiàn),通過各種技術(shù)方法對顯示的驗證碼圖片進行“破譯”,這樣,即使完全不能 接觸到服務(wù)端代碼,也能讓自動化測試在有驗證碼的情況下進行下去;但這種方法當(dāng)然也 有其致命的缺點只能對簡單的驗證碼進行識別,對復(fù)雜的驗證碼,根本就無法識別。有時 候無法通過文件流方式獲取驗證碼圖片,即使能夠獲取相關(guān)圖片流,過程也非常復(fù)制,要求 較高,從而導(dǎo)致必須從已經(jīng)顯示網(wǎng)頁中獲取。當(dāng)自動化通過所見即所得的方式獲取后,在回 填驗證的過程中,驗證碼又會發(fā)生變化。導(dǎo)致驗證碼失效。目前使用IE或者不同瀏覽器插 件開發(fā),可以完成相關(guān)圖片獲取,但是插件開發(fā)復(fù)雜,而且不同瀏覽器必須開發(fā)不同插件。而服務(wù)端插入法則從服務(wù)端入手,通過提供一個額外的客戶端接口,向客戶端只 需要知道該接口的調(diào)用方法,就能通過該接口來獲取該頁面的驗證碼圖片對應(yīng)的驗證碼。 但是這樣的話需要服務(wù)器提供額外的接口,對于服務(wù)器來說是不安全而且不方便。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述網(wǎng)站自動測試中出現(xiàn)的為了 處理頁面上的驗證碼開發(fā)復(fù)雜的瀏覽器插件或在服務(wù)器上設(shè)置額外的客戶端接口導(dǎo)致服 務(wù)器不安全的缺陷。構(gòu)造一種實現(xiàn)成本低,不需要服務(wù)器提供任何接口的自動化測試方法和系統(tǒng)。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種網(wǎng)站自動化測試方法,其 中包括步驟S1、獲取網(wǎng)頁的驗證碼焦點;S2、基于瀏覽器的DOM樹屏蔽驗證碼刷新事件; S3、根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;S4、登錄網(wǎng)站后進行自動化 測試。在本發(fā)明所述的網(wǎng)站自動化測試方法中,所述步驟S2包括S21、激活驗證碼所在 窗體,獲取瀏覽器的頂級窗體;S22、根據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取與 驗證碼相應(yīng)的窗體;S23、根據(jù)所述驗證碼相應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;S24、 將所述文檔對象中與時間相關(guān)的事件屏蔽。 在本發(fā)明所述的網(wǎng)站自動化測試方法中,所述步驟S21為通過JAVASCRIPT激活驗 證碼所在窗體,通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體。在本發(fā)明所述的網(wǎng)站自動化測試方法中,所述步驟S22為根據(jù)所述瀏覽器的頂級 窗口和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用方式,通過HTML源碼分析所 述與驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的窗體。在本發(fā)明所述的網(wǎng)站自動化測試方法中,所述步驟SM為將所述文檔對象中與時 間相關(guān)的事件設(shè)置成null的格式。本發(fā)明還構(gòu)造一種網(wǎng)站自動化測試系統(tǒng),其中包括定位模塊用于獲取網(wǎng)頁的 驗證碼焦點;屏蔽模塊用于基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;登錄模塊用于根 據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;以及測試模塊用于登錄網(wǎng)站后 進行自動化測試。在本發(fā)明所述的網(wǎng)站自動化測試系統(tǒng)中,所述屏蔽模塊包括激活單元用于激 活驗證碼所在窗體,獲取瀏覽器的頂級窗體;第一獲取單元用于根據(jù)所述瀏覽器的頂級 窗體和所述驗證碼焦點獲取與驗證碼相應(yīng)的窗體;第二獲取單元用于根據(jù)所述驗證碼相 應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;屏蔽單元用于將所述文檔對象中與時間相關(guān)的 事件屏蔽。在本發(fā)明所述的網(wǎng)站自動化測試系統(tǒng)中,所述激活單元通過JAVASCRIPT激活驗 證碼所在窗體,通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體。在本發(fā)明所述的網(wǎng)站自動化測試系統(tǒng)中,所述第一獲取單元用于根據(jù)所述瀏覽器 的頂級窗體和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用方式,通過HTML源碼 分析所述與驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的窗體。在本發(fā)明所述的網(wǎng)站自動化測試系統(tǒng)中,所述屏蔽單元用于將所述文檔對象中與 時間相關(guān)的事件設(shè)置成null的格式。實施本發(fā)明的網(wǎng)站自動化測試方法和系統(tǒng),具有以下有益效果從第三個角度去 獲取驗證碼,屏蔽相關(guān)保護,使自動化測試工作達到如何模仿人手眼并用的能力。程序控制 使瀏覽器內(nèi)部相關(guān)事件發(fā)生改變,屏蔽相關(guān)動態(tài)刷新功能。不改變原有程序服務(wù)器端任何 功能,不需要服務(wù)器提供任何接口,上述自動化測試過程,全部實現(xiàn)程序控制和流程控制。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中
圖1是本發(fā)明的網(wǎng)站自動化測試方法的第一優(yōu)選實施例的流程圖;圖2是本發(fā)明的網(wǎng)站自動化測試方法的第二優(yōu)選實施例的流程圖;圖3是本發(fā)明的網(wǎng)站自動化測試系統(tǒng)的第一優(yōu)選實施例的結(jié)構(gòu)示意圖;圖4是本發(fā)明的網(wǎng)站自動化測試系統(tǒng)的第二優(yōu)選實施例的結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。在圖1所示的本發(fā)明的網(wǎng)站自動化測試方法的第一優(yōu)選實施例的流程圖中,所述 網(wǎng)站自動化測試方法開始于步驟100,步驟100之后進行到步驟101,獲取網(wǎng)頁的驗證碼焦 點;隨后,到下一步驟102,基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;隨后,到下一步驟 103,根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;隨后,到下一步驟104,登 錄網(wǎng)站后進行自動化測試;最后該方法結(jié)束于步驟105。采用本網(wǎng)站自動化測試方法時,使 用技術(shù)框架工具,編寫程序,讓網(wǎng)頁自動打開后,自動獲取驗證碼焦點,等待驗證碼圖片顯 示后,通過程序控制,改寫瀏覽器DOM (Document Object Model 文檔對象模型)樹,屏蔽驗 證碼刷新各種事件,然后通過程序控制移動焦點,獲取圖片,進行圖片識別后,然后重新獲 取驗證碼焦點,進行驗證碼回填。本網(wǎng)站自動化測試方法使用自主研發(fā)框架,作為瀏覽端語 言執(zhí)行平臺,通過瀏覽端語言相關(guān)對象,把相應(yīng)事件進行屏蔽。本網(wǎng)站自動化測試方法從第 三個角度去獲取驗證碼,屏蔽相關(guān)保護,使自動化測試工作達到如何模仿人手眼并用的能 力。程序控制使瀏覽器內(nèi)部相關(guān)事件發(fā)生改變,屏蔽相關(guān)動態(tài)刷新功能。不改變原有程序 服務(wù)器端任何功能,不需要服務(wù)器提供任何接口。在圖2所示的本發(fā)明的網(wǎng)站自動化測試方法的第二優(yōu)選實施例的流程圖中,所述 網(wǎng)站自動化測試方法開始于步驟200,步驟200之后進行到步驟201,獲取網(wǎng)頁的驗證碼焦 點;隨后,到下一步驟202,激活驗證碼所在窗體,獲取瀏覽器的頂級窗體;隨后,到下一步 驟203,根據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取與驗證碼相應(yīng)的窗體;隨后,到 下一步驟204,根據(jù)所述驗證碼相應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;隨后,到下一步 驟205,將所述文檔對象中與時間相關(guān)的事件屏蔽;隨后,到下一步驟206,根據(jù)所述驗證碼 焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;隨后,到下一步驟207,登錄網(wǎng)站后進行自動化 測試;最后該方法結(jié)束于步驟208。其中步驟202為通過JAVASCRIPT激活驗證碼所在窗體, 通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體,步驟203為根據(jù)所述瀏覽器的頂級窗體 和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用方式,通過HTML源碼分析所述與 驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的窗體,步驟205為將所述文檔對象 中與時間相關(guān)的事件設(shè)置成null的格式。通過使用JAVASCRIPT激活驗證碼所在窗體,類 似人手工點擊相應(yīng)的驗證碼輸入框;通過使用JAVASCRIPT對象,獲取瀏覽器的頂級窗體; 通過瀏覽器的頂級窗體和所述驗證碼焦點(即驗證碼元素的所在位置)獲取驗證碼相應(yīng) 的子窗體的引用方式;通過閱讀HTML源碼分析,或者借助工具從驗證碼相應(yīng)的子窗體的引 用方式中獲取驗證碼輸入框所在窗體;通過獲取的窗體,獲取瀏覽器中相應(yīng)的文檔對象,最 后顯示在瀏覽器中的文檔對象;對文檔對象中與時間相關(guān)的事件進行屏蔽,如onselect事件,把這些事件設(shè)置成null的格式,或者改寫相關(guān)事件;使用外界程序獲取驗證碼圖片,交 給驗證碼識別程序進行識別;對識別后的驗證碼程序進行回填;最后使用工具進行網(wǎng)站的 自動化測試。本發(fā)明還構(gòu)造一種網(wǎng)站自動化測試系統(tǒng),如圖3所示的本發(fā)明的網(wǎng)站自動化測試 系統(tǒng)的第一優(yōu)選實施例的結(jié)構(gòu)示意圖中,所述網(wǎng)站自動化測試系統(tǒng)包括定位模塊1、屏蔽模 塊2、登錄模塊3以及測試模塊4。定位模塊1用于獲取網(wǎng)頁的驗證碼焦點;屏蔽模塊2用 于基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;登錄模塊3用于根據(jù)所述驗證碼焦點,獲取、 識別及回填驗證碼,登錄網(wǎng)站;測試模塊4用于登錄網(wǎng)站后進行自動化測試。采用本網(wǎng)站自 動化測試系統(tǒng)時,使用技術(shù)框架工具,編寫程序,讓網(wǎng)頁自動打開后,定位模塊1自動獲取 驗證碼焦點,等待驗證碼圖片顯示后,通過程序控制,屏蔽模塊2改寫瀏覽器DOM(Document Object Model 文檔對象模型)樹,屏蔽驗證碼刷新各種事件,然后登錄模塊3通過程序控 制移動焦點,獲取圖片,進行圖片識別后,然后重新獲取驗證碼焦點,進行驗證碼回填;最后 系統(tǒng)啟動測試模塊4進行自動化測試。本網(wǎng)站自動化測試方法使用開源框架,作為瀏覽端 語言執(zhí)行平臺,通過瀏覽端語言相關(guān)對象,把相應(yīng)事件進行屏蔽。本網(wǎng)站自動化測試方法從 第三個角度去獲取驗證碼,屏蔽相關(guān)保護,使自動化測試工作達到如何模仿人手眼并用的 能力。程序控制使瀏覽器內(nèi)部相關(guān)事件發(fā)生改變,屏蔽相關(guān)動態(tài)刷新功能。不改變原有程 序服務(wù)器端任何功能,不需要服務(wù)器提供任何接口。如圖4所示的本發(fā)明的網(wǎng)站自動化測試系統(tǒng)的第二優(yōu)選實施例的結(jié)構(gòu)示意圖中, 屏蔽模塊2包括激活單元21、第一獲取單元22、第二獲取單元23以及屏蔽單元M。激活 單元21用于激活驗證碼所在窗體,獲取所述瀏覽器的頂級窗體;第一獲取單元22用于根 據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取與驗證碼相應(yīng)的窗體;第二獲取單元23 用于根據(jù)所述驗證碼相應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;屏蔽單元M用于將所述 文檔對象中與時間相關(guān)的事件屏蔽。其中激活單元21通過JAVASCRIPT激活驗證碼所在 窗體,通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體。第一獲取單元22用于根據(jù)所述 瀏覽器的頂級窗體和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用方式,通過HTML 源碼分析所述與驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的窗體。屏蔽單元 24用于將所述文檔對象中與時間相關(guān)的事件設(shè)置成null的格式。激活單元21通過使用 JAVASCRIPT激活響應(yīng)的驗證碼所在窗體,類似人手工點擊相應(yīng)的驗證碼輸入框;同時激活 單元21通過使用JAVASCRIPT對象,獲取瀏覽器的頂級窗體;第一獲取單元22通過瀏覽器 的頂級窗體和驗證碼焦點獲取驗證碼相應(yīng)的子窗體的引用方式;通過閱讀HT ML源碼分 析,或者借助工具從驗證碼相應(yīng)的子窗體的引用方式中獲取驗證碼輸入框所在窗體;第二 獲取單元23通過獲取的窗體,獲取瀏覽器中相應(yīng)的文檔對象,最后顯示在瀏覽器中的文檔 對象;屏蔽單元M對文檔對象中與時間相關(guān)的事件進行屏蔽,如onselect事件,把這些事 件設(shè)置成null的格式,或者改寫相關(guān)事件;登錄模塊3使用外界程序獲取驗證碼圖片,交給 驗證碼識別程序進行識別;對識別后的驗證碼程序進行回填;最后測試模塊4使用工具進 行網(wǎng)站的自動化測試。以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均 同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種網(wǎng)站自動化測試方法,其特征在于,包括步驟51、獲取網(wǎng)頁的驗證碼焦點;52、基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;53、根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;54、登錄網(wǎng)站后進行自動化測試。
2.根據(jù)權(quán)利要求1所述的網(wǎng)站自動化測試方法,其特征在于,所述步驟S2包括521、激活驗證碼所在窗體,獲取瀏覽器的頂級窗體;522、根據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取與驗證碼相應(yīng)的窗體;523、根據(jù)所述驗證碼相應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;524、將所述文檔對象中與時間相關(guān)的事件屏蔽。
3.根據(jù)權(quán)利要求2所述的網(wǎng)站自動化測試方法,其特征在于,所述步驟S21為通過 JAVASCRIPT激活驗證碼所在窗體,通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體。
4.根據(jù)權(quán)利要求2所述的網(wǎng)站自動化測試方法,其特征在于,所述步驟S22為根據(jù)所述 瀏覽器的頂級窗口和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用方式,通過HTML 源碼分析所述與驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的窗體。
5.根據(jù)權(quán)利要求2所述的網(wǎng)站自動化測試方法,其特征在于,所述步驟SM為將所述文 檔對象中與時間相關(guān)的事件設(shè)置成null的格式。
6.一種網(wǎng)站自動化測試系統(tǒng),其特征在于,包括定位模塊(1)用于獲取網(wǎng)頁的驗證碼焦點;屏蔽模塊O)用于基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;登錄模塊(3)用于根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;以及測試模塊用于登錄網(wǎng)站后進行自動化測試。
7.根據(jù)權(quán)利要求6所述的網(wǎng)站自動化測試系統(tǒng),其特征在于,所述屏蔽模塊(2)包括激活單元用于激活驗證碼所在窗體,獲取瀏覽器的頂級窗體;第一獲取單元0 用于根據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取與驗證 碼相應(yīng)的窗體;第二獲取單元用于根據(jù)所述驗證碼相應(yīng)的窗體獲取瀏覽器中相應(yīng)的文檔對象;屏蔽單元04)用于將所述文檔對象中與時間相關(guān)的事件屏蔽。
8.根據(jù)權(quán)利要求7所述的網(wǎng)站自動化測試系統(tǒng),其特征在于,所述激活單元通過 JAVASCRIPT激活驗證碼所在窗體,通過JAVASCRIPT對象獲取所述瀏覽器的頂級窗體。
9.根據(jù)權(quán)利要求7所述的網(wǎng)站自動化測試系統(tǒng),其特征在于,所述第一獲取單元02) 用于根據(jù)所述瀏覽器的頂級窗體和所述驗證碼焦點獲取所述與驗證碼相應(yīng)的窗體的引用 方式,通過HTML源碼分析所述與驗證碼相應(yīng)的窗體的引用方式獲取所述與驗證碼相應(yīng)的 窗體。
10.根據(jù)權(quán)利要求7所述的網(wǎng)站自動化測試系統(tǒng),其特征在于,所述屏蔽單元04)用于 將所述文檔對象中與時間相關(guān)的事件設(shè)置成null的格式。
全文摘要
本發(fā)明涉及一種網(wǎng)站自動化測試方法,其中包括步驟S1、獲取網(wǎng)頁的驗證碼焦點;S2、基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;S3、根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;S4、登錄網(wǎng)站后進行自動化測試。本發(fā)明還涉及一種網(wǎng)站自動化測試系統(tǒng),其中包括定位模塊用于獲取網(wǎng)頁的驗證碼焦點;屏蔽模塊用于基于瀏覽器的DOM樹屏蔽驗證碼刷新事件;登錄模塊用于根據(jù)所述驗證碼焦點,獲取、識別及回填驗證碼,登錄網(wǎng)站;以及測試模塊用于登錄網(wǎng)站后進行自動化測試。本發(fā)明實現(xiàn)成本低,不需要服務(wù)器提供任何接口,避免了開發(fā)復(fù)雜的瀏覽器插件或在服務(wù)器上設(shè)置額外的客戶端接口導(dǎo)致服務(wù)器不安全的缺陷。
文檔編號H04L12/26GK102143016SQ20101055935
公開日2011年8月3日 申請日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者劉建, 曹良帥, 李莉, 涂昀, 潘芳蕊, 舒敏根, 蒙琳, 趙賢敬, 鄭明忠, 郭利江 申請人:中國移動(深圳)有限公司