麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種網站自動化測試方法及自動化測試系統的制作方法

文檔序號:7987595閱讀:250來源:國知局
一種網站自動化測試方法及自動化測試系統的制作方法
【專利摘要】本發明提供了一種網站自動化測試方法及自動化測試系統,以解決目前自動化測試效率低的問題。其中,一種網站自動化測試方法包括:對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;根據所述中間件變量生成中間件接口;接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。本發明提高了頁面元素的識別效率,進而提高了自動化測試的效率。
【專利說明】一種網站自動化測試方法及自動化測試系統
【技術領域】
[0001]本申請涉及自動化測試技術,特別是涉及一種網站自動化測試方法及自動化測試系統。
【背景技術】
[0002]自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,引入了自動化測試的概念。
[0003]在網站自動化測試中,頁面元素(即頁面中對用戶可見的控件,例如button(按鈕),form(表格)等)的識別是自動化測試的基礎。現有的測試過程中,測試人員通過安裝firebug、iedeveloper等插件,并手動點擊選擇頁面元素來實現對頁面元素的識別。當測試人員手動選擇某個頁面元素時,這些插件可以自動識別出所選的頁面元素,并將識別結果顯示出來,以供測試人員在測試過程中使用。
[0004]上述網站自動化測試方法雖然可以使用插件來識別頁面元素,但還是引入了較多的人工操作,在識別頁面元素的時候需要測試人員對需要識別的元素一個一個進行手動點擊,操作比較繁瑣。而一個網站包含大量的網頁,每個網頁也包含大量的頁面元素,上述需要較多人工操作的識別方法顯然不能滿足自動化測試中的識別需求,而且識別效率低下。由于頁面元素的識別是自動化測試的基礎,因而頁面元素識別的效率低下也帶來了網站自動化測試的效率低下。

【發明內容】

[0005]本申請提供了一種網站自動化測試方法及自動化測試系統,以解決目前自動化測試效率低的問題。
[0006]為了解決上述問題,本申請公開了一種網站自動化測試方法,包括:
[0007]對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0008]根據所述中間件變量生成中間件接口 ;
[0009]接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口 ;
[0010]調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
[0011]可選地,所述對網頁進行解析,并對應網頁中的頁面元素生成中間件變量包括:
[0012]將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點;
[0013]依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0014]可選地,所述頁面元素的屬性信息包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。[0015]可選地,所述根據中間件變量生成中間件接口包括:
[0016]遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;
[0017]依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
[0018]可選地,所述查找與所述待測試的頁面元素信息相匹配的中間件接口包括:
[0019]計算所述待測試的頁面元素信息與各中間件接口的匹配度;
[0020]根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0021]可選地,所述計算所述待測試的頁面元素信息與各中間件接口的匹配度包括:
[0022]獲取所述待測試的頁面元素信息中的頁面元素名稱,并獲取所述中間件接口的名稱;
[0023]將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符轉換為小寫/大寫字符;
[0024]計算所述待測試的頁面元素名稱和所述中間件接口名稱的相同的小寫/大寫字符的個數,記為最長匹配串;
[0025]將所述最長匹配串與所述中間件接口名稱的小寫/大寫字符的個數做除法運算,將所述除法運算的商作為所述待測試的頁面元素信息與所述中間件接口的匹配度。
[0026]可選地,所述根據所述中間件接口的匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口包括:
[0027]判斷所述待測試的頁面元素信息與各中間件接口的匹配度中最大匹配度是否高于或等于預設的閾值;
[0028]當所述最大匹配度高于或等于預設的閾值時,將所述最大匹配度對應的中間件接口作為所述待測試的頁面元素信息匹配得到的中間件接口;
[0029]當所述最大匹配度低于預設的閾值時,匹配失敗。
[0030]可選地,所述調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作包括:
[0031]接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。
[0032]可選地,所述網站自動化測試方法還包括:
[0033]判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是
否一致;
[0034]若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致,則調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作;
[0035]若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致,則根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。
[0036]本申請還提供了一種網站自動化測試系統,包括:[0037]變量生成模塊,用于對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0038]接口生成模塊,用于根據所述中間件變量生成中間件接口 ;
[0039]匹配模塊,用于接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;
[0040]測試模塊,用于調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
[0041 ] 可選地,所述變量生成模塊包括:
[0042]解析子模塊,用于將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點;
[0043]變量子模塊,用于依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0044]可選地,所述頁面元素的屬性信息包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。
[0045]可選地,所述接口生成模塊包括:
[0046]遍歷子模塊,用于遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;
[0047]接口子模塊,用于依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性
息命名。
[0048]可選地,所述匹配模塊包括:
[0049]計算子模塊,用于計算所述待測試的頁面元素信息與各中間件接口的匹配度;
[0050]查找子模塊,用于根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0051]可選地,所述網站自動化測試系統還包括:
[0052]判斷模塊,用于判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致;
[0053]所述測試模塊,還用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致時,調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作;
[0054]修正模塊,用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致時,根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。
[0055]與現有技術相比,本申請包括以下優點:
[0056]本申請實施例提供的測試方法,首先對網頁進行解析,針對網頁元素生成機器能夠直接執行的中間件接口(DSL, Domain Specific Language語言),這些中間件接口可以自動模擬用戶操作來測試網頁元素;在測試過程中,測試人員可以通過查找與待測試頁面元素信息相匹配的中間件接口并調用所述中間件接口來執行自動化測試操作。這種測試方法可以批量調用中間件接口來自動識別頁面元素,不需要測試人員手動選擇頁面元素逐一進行識別,因此提高了頁面元素的識別效率,進而提高了自動化測試的效率。
[0057]而且,本申請實施例在匹配到中間件接口之后,繼續判斷待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集是否一致,若不一致,則根據待測試的頁面元素的屬性信息對匹配到的中間件接口的屬性集進行修正。這個過程可以理解為一個反驗證過程,保證了待測試頁面元素和中間件接口的準確匹配。當頁面元素的布局發生改變的時候,待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集不一致,根據待測試的頁面元素的屬性信息對匹配到的中間件接口的屬性集進行修正,從而使得所匹配的中間件接口的屬性集信息與發生改變后的頁面元素的屬性信息相對應,可以動態適應頁面布局的變化。
[0058]當然,實施本申請的任一產品不一定需要同時達到以上所述的所有優點。
【專利附圖】

【附圖說明】
[0059]圖1是本申請實施例所述一種網站自動化測試方法的流程圖;
[0060]圖2是本申請實施例所述另一種網站自動化測試方法的流程圖;
[0061]圖3是本申請實施例所述一種網站自動化測試系統的結構框圖;
[0062]圖4是本申請實施例所述另一種網站自動化測系統的結構框圖。
【具體實施方式】
[0063]為使本申請的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0064]下面通過實施例對本申請所述方法的實現流程進行詳細說明。
[0065]參照圖1,其示出了本申請實施例所述一種網站自動化測試方法的流程圖。本實施例具體可以包括以下步驟:
[0066]步驟100,對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0067]本實施例中上述對網頁進行解析,并對應網頁中的頁面元素生成中間件變量具體可以包括以下子步驟:
[0068]子步驟1001,將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點;
[0069]HTML DOM樹可以理解為網頁的應用程序編程接口,HTML DOM樹將網頁中的各個元素都看作一個個對象,從而使網頁中的元素也可以被計算機語言獲取或編輯。
[0070]子步驟1002,依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0071]具體地,HTML DOM樹的一個節點對應一個頁面元素,一個頁面元素對應生成一個中間件變量。
[0072]本實施例中所述頁面元素的屬性信息具體可以包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值,以及DOM樹中該頁面元素的其它屬性。例如,所在網頁的地址信息(如URL)可以為Alibaba,com、baidu.com或163.com ;頁面元素的類別可以為text (文本)、button (按鈕)或form(表格);頁面兀素的名稱可以為 e_alibaba_searchbar、e_alibaba_search_button或 e_alibaba_search_result ;頁面兀素的 id 可以為 SearchTextldx > searchsubmit、list—form。
[0073]由于將所述頁面元素的屬性信息作為所述中間件變量的屬性集,相對應的,所述中間件變量的屬性集同樣可以包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。
[0074]本實施例中可以根據所述中間件變量的屬性集來定義中間件變量,例如,對于有id的頁面元素,可以根據該頁面元素的類別和該頁面元素的id來定義,定義為e_#{pagename}_#{頁面元素的類別}_{頁面元素的id},可以表示為e_# {pagename}_# {type}_{id};對于有名稱的頁面元素,可以根據該頁面元素的類別和該頁面元素的名稱來定義,定義為e_# {pagename}_#{頁面元素的類別} {頁面元素的名稱},可以表不為 e_# {pagename} _# {type} _ {name}。
[0075]例如,對于搜索框,就可以生成以下三個中間件變量,分別為搜索(searchbar)中間件變量,按鈕(button)中間件變量和結果(result)中間件變量:
[0076]e_alibaba_searchbar = {urI = > Alibaba.com, text_field,(:1d, " SearchText I dx〃),(value,,,,,),(: class, xpath, parent, sibling}
[0077]e_alibaba_search_button = {urI = > Alibaba.com, button,(:1d, " searchSubmit " ), (: type, " button " ), (:hidefocus, " true ")(:value, " Search" )}
[0078]e_a I i b ab a_s e ar ch_r e su 11 = {ur I = > Alibaba.com, form,(:1d, " list-form" ),(value,,,,,),(: class,,,images-lazyload”),(:name,,,form”),xpath}
[0079]下面以上述搜索中間件變量進行說明,在搜索中間件變量中,url => Alibaba,com為所在網頁的地址,text_field為頁面元素的類別,:id, " SearchTextIdx"表示頁面兀素的 id 為 “SearchTextldx”。
[0080]本實施例中還可以所述中間件變量的名稱為關鍵字,并以所述中間件變量的屬性集作為關鍵字對應的哈希值,創建哈希表,這樣就建立了中間件變量的名稱和中間件變量的屬性集的映射。
[0081]例如,對于某個中間件變量創建一個哈希表,包含以下屬性:
[0082]URL:當前頁面的url ;
[0083]Type:控件的類別;
[0084]其他屬性:頁面元素在html代碼里具有的其他屬性,如id、name等等。
[0085]步驟102,根據所述中間件變量生成中間件接口(DSL, Domain SpecificLanguage語目);
[0086]本實施例中所述根據中間件變量生成中間件接口具體可以包括以下子步驟:
[0087]子步驟1021,遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;
[0088]例如,將中間件變量屬性集中具有相同頁面元素類別(即相同Type)的中間件變量歸為一個哈希表,以所述頁面元素的類別命名,可以命名為Type。具體地,假設網頁上有多個按鈕(button)中間件變量,如 search_button、input_button 和 output_button,則將這些中間件變量歸為一個哈希表,命名為Button,同時將search_button、input_button和output_button歸為哈希表Button的成員。而且,具體變量的方法可以用“.”運算符加屬性值直接獲取到,如Button, id可以直接獲取到id屬性值。
[0089]子步驟1022,依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
[0090]例如,當e_alibaba_searchbar 和 e_alibaba_search_button 同屬一個父節點對應的頁面兀素 e_alibaba_Search 時,將 e_alibaba_searchbar 和 e_alibaba_search_button 生成一個中間件接口,命名為 e_albaba_search。這樣,通過 e_alibaba_search.searchbar 就可以訪問到上述 e_alibaba_searchbar。
[0091]需要說明的是本實施例中也可以其他規則來生成中間件接口,本實施例對此不做限制。
[0092]需要說明的是,本步驟102中上述將所述屬性集中相同屬性的中間件變量歸為一個“哈希表”,此處的哈希表與步驟100提到的以所述中間件變量的名稱為關鍵字,并以所述中間件變量的屬性集作為關鍵字對應的哈希值,創建“哈希表”,這兩個哈希表并不相同,步驟100中的哈希表的每個哈希是與HTML DOM樹的節點——對應的,而本步驟是將所述屬性及中相同屬性的中間變量重新生成一個哈希表,與HTML DOM樹的節點沒有一一對應的關系O
[0093]步驟104,接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;
[0094]頁面元素信息的表示方法有很多,可以用頁面元素的名稱來標識,例如Alibaba,search ;也可以用頁面元素的id來表示,只要可以標識頁面元素的屬性都可以作為頁面元素信息,本實施例對此不作限制。
[0095]查找與所述待測試的頁面元素信息相匹配的中間件接口的方法有很多,本實施例以通過計算所述待測試的頁面元素信息與各中間件接口的匹配度為例進行說明。所述查找與所述待測試的頁面元素信息相匹配的中間件接口具體可以包括以下子步驟:
[0096]子步驟1041,計算所述待測試的頁面元素信息與各中間件接口的匹配度;
[0097]所述計算所述待測試的頁面元素信息與各中間件接口的匹配度可以通過以下步驟來實現:
[0098]步驟一,獲取所述待測試的頁面元素信息中的頁面元素名稱,并獲取所述中間件接口的名稱;
[0099]例如,待測試的頁面元素信息中頁面元素的名稱為search_bar,中間件接口的名稱分別為:Search、click 和 input。
[0100]步驟二,將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符轉換為小與/大與字符;
[0101]需要說明的是,本實施例中所述“小寫/大寫字符”,意思是小寫字符或者大寫字符。具體地,將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符都轉換為小寫字符,或者,將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符都轉換為大寫字符。下面的步驟三和步驟四中也為此意。
[0102]以轉換為小寫字符為例進行說明,待測試的頁面元素名稱為searchjDar,中間件接口的名稱分別為:search、click和input。
[0103]步驟三,計算所述待測試的頁面元素名稱和所述中間件接口名稱的相同的小寫/大寫字符的個數,記為最長匹配串;
[0104]同樣以計算相同小寫字符為例進行說明,search_bar與search的相同小寫字符個數為6個,search_bar與click的相同小寫字符個數為I個,search_bar與input的相同小寫字符個數為O個。
[0105]最長匹配串即為具有相同的小寫字符的最多個數,在本實施例中為6個,也就說,6為最長匹配串。
[0106]步驟四,將所述最長匹配串與所述中間件接口名稱的小寫/大寫字符的個數做除法運算,將所述除法運算的商作為所述待測試的頁面元素信息與所述中間件接口的匹配度。
[0107]將最長匹配串6和對應的中間件接口名稱Search_bar的小寫字符search_bar的個數9做除法運算,商為I作為待測試的頁面元素search_bar與中間件接口 Search_bar的匹配度。
[0108]子步驟1042,根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0109]本實施例中所述根據所述中間件接口的匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口具體可以通過以下步驟來實現:
[0110]判斷所述待測試的頁面元素信息與各中間件接口的匹配度中最大匹配度是否高于或等于預設的閾值;
[0111]例如,預設的閾值可以為0.3,當然也可以設置為其他數值,只要小于I即可。
[0112]當所述最大匹配度高于或等于預設的閾值時,將所述最大匹配度對應的中間件接口作為所述待測試的頁面元素信息匹配得到的中間件接口 ;當所述最大匹配度低于預設的閾值時,匹配失敗。
[0113]本實施例中上述待測試的頁面元素search_bar與中間件接口 Searchr的匹配度為f,大于預設的閾值0.3,因此與待測試的頁面元素searchjDar相匹配的中間件接口為Search0
[0114]步驟106,調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
[0115]本實施例可以通過以下方式執行測試操作:
[0116]接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。
[0117]可以結合下面“搜索框”的例子理解上述測試操作的執行:
[0118]首先,匹配到的中間件接口調用對應的搜索中間件,并將所述頁面元素信息的測試參數傳遞給所述搜索中間件;[0119]中間件接口 Search將待測試頁面元素信息的測試參數mp3傳遞給對應的搜索中間件e_alibaba_searchbar,所述搜索中間件e_alibaba_searchbar自動執行的操作為模擬用戶在搜索框中輸入測試參數mp3。
[0120]其次,所述搜索中間件接收所述待測試的頁面元素的測試參數后,調用所述按鈕中間件;
[0121]本實施例中按鈕中間件為e_alibaba_search_button,自動執行的操作為模擬用戶點擊按鈕控件。
[0122]再次,所述按鈕中間件執行點擊按鈕操作,并將所述待測試的頁面元素對應的搜索結果發送至結果中間件;
[0123]按鈕中間件e_alibaba_search_button執行點擊按鈕操作,將搜索結果飯送至結果中間件 e_alibaba_search_result。
[0124]最后,所述結果中間件顯示所述搜索結果。
[0125]結果中間件e_alibaba_search_result自動執行顯示搜索結果的操作。
[0126]由上述例子可以看出,本實施例可以調用生成的中間件接口 Search自動執行測試操作,中間件接口 Search首先在e_alibaba_searchbar中輸入要搜索的詞“mp3”,然后調用e_alibaba_search_button自動執行點擊按鈕的操作,最后通過e_alibaba_search_result接收搜索結果,這一系列測試過程都是自動執行的,實現了自動化測試而且不需要大量人工操作,提高了網站自動化測試的效率。
[0127]綜上所述,本申請實施例提供的測試方法,首先對網頁進行解析,針對網頁元素生成機器能夠直接執行的中間件接口(DSL,Domain SpecificLanguage語言),這些中間件接口可以自動模擬用戶操作來測試網頁元素;在測試過程中,測試人員可以通過查找與待測試頁面元素信息相匹配的中間件接口并調用所述中間件接口來執行自動化測試操作。這種測試方法可以批量調用中間件接口來自動識別頁面元素,不需要測試人員手動選擇頁面元素逐一進行識別,因此提高了頁面元素的識別效率,進而提高了自動化測試的效率。
[0128]參照圖2,其示出了本申請實施例所述一種網站自動化測試方法的流程圖。本實施例具體可以包括以下步驟:
[0129]步驟200,對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0130]本實施例中具體可以首先將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點,其中HTML DOM樹可以理解為網頁的應用程序編程接口,HTMLD0M樹將網頁中的各個元素都看作一個個對象,從而使網頁中的元素也可以被計算機語言獲取或編輯。
[0131]然后依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0132]具體生成中間件變量的過程可以參照圖1所示的實施例的相關內容,本實施例在此不做贅述。
[0133]步驟202,根據所述中間件變量生成中間件接口 ;
[0134]本實施例中可以首先遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;然后,依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
[0135]具體根據中間件變了生成中間件接口的例子可以參照圖1實施例所述的相關內容,本實施例在此不做贅述。
[0136]需要說明的是本實施例中也可以其他規則來生成中間件接口,本實施例對此不做限制。
[0137]步驟204,接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;
[0138]查找與所述待測試的頁面元素信息相匹配的中間件接口的方法有很多,例如可以通過計算所述待測試的頁面元素信息與各中間件接口的匹配度,然后根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0139]子步驟2041,計算所述待測試的頁面元素信息與各中間件接口的匹配度;
[0140]所述計算所述待測試的頁面元素信息與各中間件接口的匹配度可以通過以下步驟來實現:
[0141]步驟一,獲取所述待測試的頁面元素信息中的頁面元素名稱,并獲取所述中間件接口的名稱;
[0142]例如,待測試的頁面元素信息中頁面元素的名稱為search_bar,中間件接口的名稱分別為:Search、click 和 input。
[0143]步驟二,將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符轉換為小與/大與字符;
[0144]以轉換為小寫字符為例進行說明,待測試的頁面元素名稱為searchjDar,中間件接口的名稱分別為:search、click和input。
[0145]步驟三,計算所述待測試的頁面元素名稱和所述中間件接口名稱的相同的小寫/大寫字符的個數,記為最長匹配串;
[0146]同樣以計算相同小寫字符為例進行說明,search_bar與search的相同小寫字符個數為6個,search_bar與click的相同小寫字符個數為I個,search_bar與input的相同小寫字符個數為O個。
[0147]最長匹配串即為具有相同的小寫字符的最多個數,在本實施例中為6個,也就說,6為最長匹配串。
[0148]步驟四,將所述最長匹配串與所述中間件接口名稱的小寫/大寫字符的個數做除法運算,將所述除法運算的商作為所述待測試的頁面元素信息與所述中間件接口的匹配度。
[0149]將最長匹配串6和對應的中間件接口名稱Search_bar的小寫字符search_bar的個數9做除法運算,商為*作為待測試的頁面元素search_bar與中間件接口 Search_bar的匹配度。
[0150]子步驟2042,根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0151]本實施例中所述根據所述中間件接口的匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口具體可以通過以下步驟來實現:
[0152]判斷所述待測試的頁面元素信息與各中間件接口的匹配度中最大匹配度是否高于或等于預設的閾值;
[0153]例如,預設的閾值可以為0.3,當然也可以設置為其他數值,只要小于I即可。
[0154]當所述最大匹配度高于或等于預設的閾值時,將所述最大匹配度對應的中間件接口作為所述待測試的頁面元素信息匹配得到的中間件接口 ;當所述最大匹配度低于預設的閾值時,匹配失敗。
[0155]本實施例中上述待測試的頁面元素search_bar與中間件接口 Searchr的匹配度
為I,大于預設的閾值0.3,因此與待測試的頁面元素searchjDar相匹配的中間件接口為 3
Search0
[0156]步驟206,判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的
屬性集是否一致;
[0157]若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致,則調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作;
[0158]若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致,則根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。
[0159]需要說明的是,只有當待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集完全一致時,才判定為一致,只要待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集中有一個屬性不一致時,都判定為不一致。例如,待測試的頁面的屬性信息為{頁面元素的名稱name = e_alibaba_search,所在網頁的地址信息url = Alibaba, com,頁面元素的類別type = teXt_field},所匹配到的中間件接口的屬性集為{頁面元素的名稱name = e_alibaba_search,所在網頁的地址信息url = Alibaba, com,頁面元素的類別type = button},上述待測試的頁面的屬性信息和所匹配到的中間件接口的屬性集中,頁面元素的名稱、所在網頁的地址信息一致,但是頁面元素的類別不一致,此時仍判定為不一致,需要將所匹配到的中間件接口的屬性集中的頁面元素的類別修改為與待測試的頁面的屬性信息中的頁面元素的類別一致,即將“頁面元素的類別type = button”修改為“type=text_field,,。
[0160]本步驟是為了防止網頁布局發生變化時,中間件接口對應的屬性信息沒有及時修改,而出現錯誤匹配中間件接口的情況發生。在匹配到中間件接口之后,繼續判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致,可以理解為一個反驗證過程,來保證所匹配到的中間件接口準確對應所述待測試的頁面元素。
[0161]步驟208,當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致時,調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
[0162]本實施例可以通過以下方式執行測試操作:
[0163]接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。[0164]綜上所述,上述加入反驗證過程的實施例,不僅可以自動識別頁面元素,提高了識別頁面元素和自動化測試的效率。而且,在匹配到中間件接口之后,繼續判斷待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集是否一致,若不一致,則根據待測試的頁面元素的屬性信息對匹配到的中間件接口的屬性集進行修正,保證了待測試頁面元素和中間件接口的準確匹配。進一步地,當頁面元素的布局發生改變的時候,待測試的頁面元素的屬性信息與匹配到的中間件接口的屬性集不一致,根據待測試的頁面元素的屬性信息對匹配到的中間件接口的屬性集進行修正,從而使得所匹配的中間件接口的屬性集信息與發生改變后的頁面元素的屬性信息相對應,可以動態適應頁面布局的變化。
[0165]需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作并不一定是本申請所必需的。
[0166]基于上述方法實施例的說明,本申請還提供了相應的網站自動化測試的系統實施例,來實現上述方法實施例所述的內容。
[0167]參照圖3,其示出了本申請實施例所述一種網站自動化測試系統的結構框圖,本實施例具體可以包括以下模塊:
[0168]變量生成模塊11、接口生成模塊12、匹配模塊13和測試模塊14,其中:
[0169]變量生成模塊11,用于對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0170]本實施例中變量生成模塊11具體可以包括以下子模塊:
[0171]解析子模塊111,用于將網頁解析成HTML DOM樹并遍歷所述HTMLD0M樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點;
[0172]HTML DOM樹可以理解為網頁的應用程序編程接口,HTML DOM樹將網頁中的各個元素都看作一個個對象,從而使網頁中的元素也可以被計算機語言獲取或編輯。
[0173]變量子模塊112,用于依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0174]本實施例中所述頁面元素的屬性信息具體可以包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。例如,所在網頁的地址信息可以為Alibaba, com、baidu.com或163.com ;頁面兀素的類別可以為 text、button 或 form ;頁面兀素的名稱可以為 e_alibaba_searchbar、e_alibaba_search_button 或 e_alibaba_search_result ;頁面兀素的 id 可以為 SearchTextldx、searchsubmit、list-form。
[0175]由于將所述頁面元素的屬性信息作為所述中間件變量的屬性集,相對應的,所述中間件變量的屬性集同樣可以包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。
[0176]接口生成模塊12,用于根據所述中間件變量生成中間件接口 ;
[0177]本實施例中接口生成模塊12具體可以包括以下子模塊:
[0178]遍歷子模塊121,用于遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;
[0179]例如,遍歷子模塊121可以將中間件變量屬性集中具有相同頁面元素類別的中間件變量歸為一個哈希表,以所述頁面元素的類別命名,可以命名為Type。具體地,假設網頁上有多個按鈕(button)中間件變量,如 search_button、input_button 和 output_button,則將這些中間件變量歸為一個哈希表,命名為Button,同時將search_button、input_button和output_button歸為哈希表的成員。
[0180]接口子模塊122,用于依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
[0181]例如,當e_alibaba_searchbar 和 e_alibaba_search_button 同屬一個父節點對應的頁面兀素e_alibaba_Search時,接口子模塊122將e_alibaba_searchbar和e_alibaba_search_button 生成一個中間件接口,命名為 e_albaba_search。這樣,通過 e_alibaba_search.searchbar 就可以訪問至[I上述 e_alibaba_searchbar。
[0182]匹配模塊13,用于接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;
[0183]本實施例中匹配模塊13具體可以包括以下子模塊:
[0184]計算子模塊131,用于計算所述待測試的頁面元素信息與各中間件接口的匹配度;
[0185]具體地,計算子模塊131首先獲取所述待測試的頁面元素信息中的頁面元素名稱,并獲取所述中間件接口的名稱;
[0186]例如,待測試的頁面元素信息中頁面元素的名稱為search_bar,中間件接口的名稱分別為:Search、click 和 input 。
[0187]計算子模塊131其次將所述待測試的頁面元素名稱和所述中間件接口名稱的所
有字符轉換為小寫/大寫字符;
[0188]以轉換為小寫字符為例進行說明,待測試的頁面元素名稱為searchjDar,中間件接口的名稱分別為:search、click和input。
[0189]計算子模塊131計算所述待測試的頁面元素名稱和所述中間件接口名稱的相同的小寫/大寫字符的個數,記為最長匹配串;
[0190]同樣以計算相同小寫字符為例進行說明,search_bar與search的相同小寫字符個數為6個,search_bar與click的相同小寫字符個數為I個,search_bar與input的相同小寫字符個數為O個。
[0191]最長匹配串即為具有相同的小寫字符的最多個數,在本實施例中為6個,也就說,6為最長匹配串。
[0192]計算子模塊131將所述最長匹配串與所述中間件接口名稱的小寫/大寫字符的個數做除法運算,將所述除法運算的商作為所述待測試的頁面元素信息與所述中間件接口的匹配度。
[0193]計算子模塊13將最長匹配串6和對應的中間件接口名稱Search_bar的小寫字符search_bar的個數9做除法運算,商為?作為待測試的頁面元素search_bar與中間件接口Search_bar的匹配度。
[0194]查找子模塊132,用于根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
[0195]具體地,查找子模塊132判斷所述待測試的頁面元素信息與各中間件接口的匹配度中最大匹配度是否高于或等于預設的閾值;
[0196]例如,預設的閾值可以為0.3,當然也可以設置為其他數值,只要小于I即可。
[0197]當所述最大匹配度高于或等于預設的閾值時,查找子模塊132將所述最大匹配度對應的中間件接口作為所述待測試的頁面元素信息匹配得到的中間件接口 ;當所述最大匹配度低于預設的閾值時,匹配失敗。
[0198]本實施例中上述待測試的頁面元素search_bar與中間件接口 Searchr的匹配度為*,大于預設的閾值0.3,因此與待測試的頁面元素search_bar相匹配的中間件接口為Search0
[0199]測試模塊14,用于調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
[0200]具體地,測試模塊14可以用于接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。
[0201]本實施例中變量生成模塊通過解析網頁來識別頁面元素,不需要手動識別,而且變量生成模塊根據網頁中的頁面元素自動生成中間件變量,然后接口生成模塊根據中間件變量自動生成中間件接口,然后匹配模塊通過查找與待測試頁面元素西信息相匹配的中間件接口,測試模塊調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。因此,上述網站自動化測試系統可以自動識別頁面元素,不需要測試人員手動選擇頁面元素逐一進行識別,因此提高了頁面元素的識別效率,進而提高了自動化測試的效率。
[0202]對于上述網站自動化測試的系統實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見圖1所示方法實施例的部分說明即可。
[0203]參照圖4,其示出了本申請實施例所述一種網站自動化測試系統的結構框圖,本實施例具體可以包括以下模塊:
[0204]變量生成模塊21、接口生成模塊22、匹配模塊23、判斷模塊24、測試模塊25和修正模塊26,其中:
[0205]變量生成模塊21,用于對網頁進行解析,并對應網頁中的頁面元素生成中間件變量;
[0206]本實施例中變量生成模塊21具體可以將網頁解析成HTML DOM樹并遍歷所述HTMLDOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點,其中HTML DOM樹可以理解為網頁的應用程序編程接口,HTML DOM樹將網頁中的各個元素都看作一個個對象,從而使網頁中的元素也可以被計算機語言獲取或編輯。
[0207]變量生成模塊21還可以依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
[0208]變量生成模塊21具體生成中間件變量的過程可以參照圖3所示的實施例的相關內容,本實施例在此不做贅述。
[0209]接口生成模塊22,用于根據所述中間件變量生成中間件接口 ;
[0210]本實施例中接口生成模塊22可以首先遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員;然后,接口生成模塊22依據所述HTMLDOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
[0211]接口生成模塊22具體根據中間件變了生成中間件接口的例子可以參照圖3實施例所述的相關內容,本實施例在此不做贅述。
[0212]需要說明的是本實施例中接口生成模塊22也可以其他規則來生成中間件接口,本實施例對此不做限制。
[0213]匹配模塊23,用于接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口;
[0214]本實施例中匹配模塊23可以用于計算所述待測試的頁面元素信息與各中間件接口的匹配度,然后根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接□。
[0215]判斷模塊24,用于判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致;
[0216]判斷模塊24是為了防止網頁布局發生變化時,中間件接口對應的屬性信息沒有及時修改,而出現錯誤匹配中間件接口的情況發生。匹配模塊23在匹配到中間件接口之后,判斷模塊24繼續判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致,可以理解為一個反驗證過程,來保證所匹配到的中間件接口準確對應所述待測試的頁面元素。
[0217]測試模塊25,用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致時,調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作;
[0218]測試模塊25具體可以用于接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。
[0219]修正模塊26,用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致時,根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。
[0220]具體地,當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致時,修正模塊26將所述匹配到的中間件接口的屬性集依據待測試的頁面元素的屬性信息進行修正,保證匹配到的中間件接口的屬性集與所述待測試的頁面元素的屬性信
息一致。
[0221]本實施例通過變量生成模塊解析網頁來識別頁面元素,不需要手動識別,而且變量生成模塊根據網頁中的頁面元素自動生成中間件變量,然后接口生成模塊根據中間件變量自動生成中間件接口,最后可以通過匹配模塊查找與待測試頁面元素西信息相匹配的中間件接口,測試模塊調用所述匹配到的中間件接口來執行測試操作。上述網站自動化測試系統可以自動識別頁面元素,不需要測試人員手動選擇頁面元素逐一進行識別,因此提高了頁面元素的識別效率,進而提高了自動化測試的效率。而且,本實施例加入了修正模塊,保證了所述待測試頁面元素和所述中間件接口的準確匹配,還可以動態適應頁面布局的變化。
[0222]對于上述網站自動化測試的系統實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見圖2所示方法實施例的部分說明即可。
[0223]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0224]本領域技術人員易于想到的是:上述各個實施例的任意組合應用都是可行的,故上述各個實施例之間的任意組合都是本申請的實施方案,但是由于篇幅限制,本說明書在此就不一一詳述了。
[0225]本領域內的技術人員應明白,本申請的實施例可提供為方法、系統、或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
[0226]本申請是參照根據本申請實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0227]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0228]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0229]盡管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請范圍的所有變更和修改。
[0230]以上對本申請所提供的一種網站自動化測試方法及自動化測試系統,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
【權利要求】
1.一種網站自動化測試方法,其特征在于,包括: 對網頁進行解析,并對應網頁中的頁面元素生成中間件變量; 根據所述中間件變量生成中間件接口; 接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接Π ; 調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
2.根據權利要求1所述的方法,其特征在于,所述對網頁進行解析,并對應網頁中的頁面元素生成中間件變量包括: 將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點; 依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
3.根據權利要求2所述的方法,其特征在于,所述頁面元素的屬性信息包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。
4.根據權利要求2所述的方法,其特征在于,所述根據中間件變量生成中間件接口包括:` 遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員; 依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
5.根據權利要求1所述的方法,其特征在于,所述查找與所述待測試的頁面元素信息相匹配的中間件接口包括: 計算所述待測試的頁面元素信息與各中間件接口的匹配度; 根據所述匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
6.根據權利要求5所述的方法,其特征在于,所述計算所述待測試的頁面元素信息與各中間件接口的匹配度包括: 獲取所述待測試的頁面元素信息中的頁面元素名稱,并獲取所述中間件接口的名稱;將所述待測試的頁面元素名稱和所述中間件接口名稱的所有字符轉換為小寫/大寫字符; 計算所述待測試的頁面元素名稱和所述中間件接口名稱的相同的小寫/大寫字符的個數,記為最長匹配串; 將所述最長匹配串與所述中間件接口名稱的小寫/大寫字符的個數做除法運算,將所述除法運算的商作為所述待測試的頁面元素信息與所述中間件接口的匹配度。
7.根據權利要求6所述的方法,其特征在于,所述根據所述中間件接口的匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口包括: 判斷所述待測試的頁面元素信息與各中間件接口的匹配度中最大匹配度是否高于或等于預設的閾值;當所述最大匹配度高于或等于預設的閾值時,將所述最大匹配度對應的中間件接口作為所述待測試的頁面元素信息匹配得到的中間件接口; 當所述最大匹配度低于預設的閾值時,匹配失敗。
8.根據權利要求1所述的方法,其特征在于,所述調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作包括: 接收針對所述待測試的頁面元素信息的測試參數,將所述測試參數傳入所述匹配到的中間件接口,所述匹配到的中間件接口通過調用對應的中間件變量對所述待測試的頁面元素執行測試操作。
9.根據權利要求2所述的方法,其特征在于,還包括: 判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致; 若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致,則調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作; 若所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致,則根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。
10.一種網站自動化測試系統,其特征在于,包括: 變量生成模塊,用于對網頁進行解析,并對應網頁中的頁面元素生成中間件變量; 接口生成模塊,用于根據所述中間件變量生成中間件接口 ; 匹配模塊,用于接收待測試的頁面元素信息,并查找與所述待測試的頁面元素信息相匹配的中間件接口; 測試模塊,用于調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作。
11.根據權利要求10所述的系統,其特征在于,所述變量生成模塊包括: 解析子模塊,用于將網頁解析成HTML DOM樹并遍歷所述HTML DOM樹,所述網頁的一個頁面元素對應所述HTML DOM樹的一個節點; 變量子模塊,用于依據所述HTML DOM樹的節點對應的頁面元素生成中間件變量,其中,所述頁面元素的屬性信息作為所述中間件變量的屬性集。
12.根據權利要求11所述的系統,其特征在于,所述頁面元素的屬性信息包括以下任意一項或幾項:所在網頁的地址信息、頁面元素的類別、頁面元素的名稱,頁面元素的id和頁面元素的值。
13.根據權利要求11所述的系統,其特征在于,所述接口生成模塊包括: 遍歷子模塊,用于遍歷所述各中間件變量的屬性集,將所述屬性集中相同屬性的中間件變量歸為一個哈希表,并以所述相同屬性對該哈希表命名,將所述相同屬性的中間件變量歸為該哈希表的成員; 接口子模塊,用于依據所述HTML DOM樹的層級關系,將所述哈希表中具有相同父節點的哈希表生成一個中間件接口,所述中間件接口以父節點對應的頁面元素的任一屬性信息命名。
14.根據權利要求10所述的系統,其特征在于,所述匹配模塊包括: 計算子模塊,用于計算所述待測試的頁面元素信息與各中間件接口的匹配度; 查找子模塊,用于根據所述 匹配度查找與所述待測試的頁面元素信息相匹配的中間件接口。
15.根據權利要求11所述的系統,其特征在于,還包括: 判斷模塊,用于判斷所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集是否一致; 所述測試模塊,還用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集一致時,調用匹配到的中間件接口對所述待測試的頁面元素執行測試操作; 修正模塊,用于當所述待測試的頁面元素的屬性信息與所述匹配到的中間件接口的屬性集不一致時,根據所述待測試的頁面元素的屬性信息對所述匹配到的中間件接口的屬性集進行修正。`
【文檔編號】H04L12/26GK103873318SQ201210553732
【公開日】2014年6月18日 申請日期:2012年12月18日 優先權日:2012年12月18日
【發明者】栗志果 申請人:阿里巴巴集團控股有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 漠河县| 防城港市| 尼勒克县| 修水县| 灵山县| 汝州市| 沭阳县| 托克逊县| 朝阳市| 禹州市| 寻乌县| 吉木萨尔县| 刚察县| 石台县| 上栗县| 普安县| 长海县| 延安市| 西乌珠穆沁旗| 两当县| 宁安市| 镇平县| 临沧市| 徐汇区| 鄄城县| 岚皋县| 阜宁县| 江山市| 贵港市| 丹江口市| 日喀则市| 和龙市| 巫溪县| 安宁市| 大城县| 洛阳市| 确山县| 弥勒县| 莎车县| 客服| 盐城市|