一種web自動化可測性的檢測方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及測試技術(shù)領(lǐng)域,特別是涉及一種頁面自動化可測性的檢測方法和系統(tǒng)。
【背景技術(shù)】
[0002]頁面自動化測試是保證頁面質(zhì)量的重要手段,然而,頁面在設(shè)計的時候,通常主要考慮的是頁面是否能滿足預(yù)期的設(shè)計需要,很少甚至不會考慮頁面能否支持自動化測試,進而導(dǎo)致設(shè)計完成的頁面只有20%?60%的部分能做自動化測試。
[0003]目前,對頁面的自動化可測性進行檢查通常采用的方法是:首先,本領(lǐng)域技術(shù)人員需要通過人工判斷,確定當前頁面中可以進行自動化測試的部分和不可以進行自動化測試的部分。然后,根據(jù)當前頁面中可進行自動化測試部分和不可進行自動化測試部分分別進行設(shè)計,開發(fā)滿足當前頁面的自動化測試系統(tǒng)。
[0004]然而,上述頁面自動化可測性檢測方法存在的問題是:由于頁面設(shè)計過程中很少甚至不會考慮頁面能否支持自動化測試,因此頁面中大部分內(nèi)容屬于不可進行自動化測試部分。又由于不可進行自動化測試部分不能使用常規(guī)的頁面自動化測試手段,因此需要花費大量的時間和成本重新開發(fā)測試程序,才可以實現(xiàn)對不可進行自動化測試部分的測試。延長了測試周期,測試效率低,且測試的開發(fā)維護成本高。
[0005]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:如何提高頁面中可進行自動化測試部分的覆蓋面積,提高測試效率,降低測試的開發(fā)和維護成本。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,提出了本申請以便提供一種克服上述問題或者至少部分地解決上述問題的一種頁面自動化可測性的檢測方法和相應(yīng)的一種頁面自動化可測性的檢測系統(tǒng)。
[0007]為了解決上述問題,本申請公開了一種頁面自動化可測性的檢測方法,包括:
[0008]獲取頁面的文件對象模型D0M ;
[0009]根據(jù)所述文件對象模型D0M解析所述頁面的D0M結(jié)構(gòu),獲取所述D0M下的元素;并,從所述D0M中提取與所述元素相對應(yīng)的、具有表現(xiàn)和行為的屬性信息;
[0010]將提取的屬性信息關(guān)聯(lián)至相對應(yīng)的元素中,得到具有表現(xiàn)和行為屬性的待測試節(jié)占.
[0011]按照預(yù)定的規(guī)則對所述待測試節(jié)點進行判斷,以確定所述頁面是否具有自動化可測性。
[0012]相應(yīng)地,本申請還公開了一種頁面自動化可測性的檢測系統(tǒng),包括:
[0013]獲取模塊,用于獲取頁面的文件對象模型D0M ;
[0014]屬性信息獲取模塊,用于根據(jù)所述文件對象模型D0M解析所述頁面的D0M結(jié)構(gòu),獲取所述D0M下的元素;并,從所述D0M中提取與所述元素相對應(yīng)的、具有表現(xiàn)和行為的屬性信息;
[0015]待測試節(jié)點生成模塊,用于將提取的屬性信息關(guān)聯(lián)至相對應(yīng)的元素中,得到具有表現(xiàn)和行為屬性的待測試節(jié)點;
[0016]判斷模塊,用于按照預(yù)定的規(guī)則對所述待測試節(jié)點進行判斷,以確定所述頁面是否具有自動化可測性。
[0017]與現(xiàn)有技術(shù)相比,本申請實施例包括以下優(yōu)點:
[0018]本申請實施例公開的頁面自動化可測性的檢測方案,在頁面開發(fā)設(shè)計階段,通過解析頁面的D0M結(jié)構(gòu)得到具有表現(xiàn)和行為屬性的待測試節(jié)點,并根據(jù)所述待測試節(jié)點判斷頁面是否滿足自動化可測性。本領(lǐng)域技術(shù)人員可以根據(jù)判斷結(jié)果在頁面開發(fā)設(shè)計階段針對頁面中不可進行自動化測試部分進行調(diào)整,使其滿足自動化測試需要,提高頁面中可進行自動化測試部分的覆蓋面積(如,將頁面中可做自動化測試的部分由之前的占頁面的50%提高到了 90% );同時,針對可自動化測試部分,則直接進行可自動化測試,降低了測試的開發(fā)維護成本,縮短了測試周期,提高了測試效率。
[0019]進一步地,本申請實施例公開的頁面自動化可測性的檢測方案可以完全自動化執(zhí)行,避免了人工判斷操作過程和其它額外的開發(fā)成本,提高了測試效率,節(jié)約了開發(fā)成本。
【附圖說明】
[0020]圖1是本申請一種實施例的頁面自動化可測性的檢測方法步驟流程圖;
[0021]圖2是本申請另一種實施例的頁面自動化可測性的檢測方法步驟流程圖;
[0022]圖3是本申請另一種實施例的頁面自動化可測性的檢測方法步驟流程圖;
[0023]圖4是圖3所示實施例中一種判斷待測試節(jié)點狀態(tài)可獲取性的方法步驟流程圖;
[0024]圖5是圖3所示實施例中一種判斷待測試節(jié)點狀態(tài)可預(yù)期性的方法步驟流程圖;
[0025]圖6是圖3所示實施例中一種判斷待測試節(jié)點動作可模擬性的方法步驟流程圖;
[0026]圖7是本申請另一種實施例的頁面自動化可測性的檢測系統(tǒng)的結(jié)構(gòu)框圖;
[0027]圖8是本申請另一種實施例的頁面自動化可測性的檢測系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0028]為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0029]參照圖1,示出了本申請一種實施例的頁面自動化可測性的檢測方法步驟流程圖,具體可以包括如下步驟:
[0030]步驟102,獲取頁面的文件對象模型DOM (Document Object Model,文件對象模型)。
[0031 ] 步驟104,根據(jù)所述文件對象模型D0M解析所述頁面的D0M結(jié)構(gòu),獲取所述D0M下的元素;并,從所述D0M中提取與所述元素相對應(yīng)的、具有表現(xiàn)和行為的屬性信息。
[0032]按照特定的Web標準(例如,可擴展標記語言或超文本標記語言)編寫的網(wǎng)頁頁面通常有三個要素:結(jié)構(gòu)層、表現(xiàn)層和行為層。其中,
[0033]結(jié)構(gòu)層:網(wǎng)頁中的內(nèi)容(如,文字、圖像、聲音、視頻等信息)是包含語義的,通過語義的分析,可以對其劃分結(jié)構(gòu)。具有了結(jié)構(gòu)的內(nèi)容將更容易閱讀。結(jié)構(gòu)層是Web標準中網(wǎng)頁的第一項。
[0034]表現(xiàn)層:網(wǎng)頁中的內(nèi)容需要以特定的格式(或,樣式)顯示。表現(xiàn)層的功能目標是使網(wǎng)頁能在視覺上正確地表達出內(nèi)容的結(jié)構(gòu)性,并且能與相關(guān)的顯示設(shè)備相匹配,達到最佳的顯示效果。在Web標準中,表現(xiàn)層主要通過CSS(CSS即級聯(lián)樣式表,是一種用來表現(xiàn)超文本標記語言HTML或可擴展標記語言XML等文件樣式的計算機語言)來實現(xiàn)。
[0035]行為層:行為層使網(wǎng)頁能表現(xiàn)出動態(tài)效果,這里的動態(tài)是指網(wǎng)頁構(gòu)成的元素本身可以動態(tài)地發(fā)生變化,使得網(wǎng)頁的交互性得以實現(xiàn),如,用戶對網(wǎng)頁進行操作時(如,鍵盤輸入數(shù)據(jù)、鼠標在網(wǎng)頁上的點擊、拖拽等操作),網(wǎng)頁可以做出響應(yīng)性的變化。
[0036]在本實施例中,通過解析頁面的D0M結(jié)構(gòu),獲取與元素對應(yīng)的指示表現(xiàn)層屬性的表現(xiàn)屬性信息,以及,與元素對應(yīng)的指示行為層屬性的行為屬性信息。
[0037]步驟106,將提取的屬性信息關(guān)聯(lián)至相對應(yīng)的元素中,得到具有表現(xiàn)和行為屬性的待測試節(jié)點。
[0038]步驟108,按照預(yù)定的規(guī)則對所述待測試節(jié)點進行判斷,以確定所述頁面是否具有自動化可測性。
[0039]綜上所述,在本實施例中,所述頁面自動化可測性的檢測方法,在頁面開發(fā)設(shè)計階段,通過解析頁面的D0M結(jié)構(gòu)得到具有表現(xiàn)和行為屬性的待測試節(jié)點,并根據(jù)所述待測試節(jié)點判斷頁面是否滿足自動化可測性。本領(lǐng)域技術(shù)人員可以根據(jù)判斷結(jié)果在頁面開發(fā)設(shè)計階段針對頁面中不可進行自動化測試部分進行調(diào)整,使其滿足自動化測試需要,提高頁面中可進行自動化測試部分的覆蓋面積;同時,針對可自動化測試部分,則直接進行可自動化測試,降低了測試的開發(fā)維護成本,縮短了測試周期,提高了測試效率。
[0040]進一步地,本申請實施例公開的頁面自動化可測性的檢測方案可以完全自動化執(zhí)行,避免了人工判斷操作過程和其它額外的開發(fā)成本,提高了測試效率,節(jié)約了開發(fā)成本。
[0041]參照圖2,示出了本申請另一實施例的頁面自動化可測性的檢測方法步驟流程圖,具體可以包括如下步驟:
[0042]步驟202,獲取頁面的文件對象模型D0M。
[0043]步驟204,根據(jù)所述文件對象模型D0M解析所述頁面的D0M結(jié)構(gòu),獲取所述D0M下的元素;并,從所述D0M中提取與所述元素相對應(yīng)的、具有表現(xiàn)和行為的屬性信息。
[0044]在本實施例中,所述具有表現(xiàn)和行為的屬性信息包括:具有綁定事件的腳本語言JS (JS即javascript,是一種基于對象的動態(tài)類型的客戶端腳本語言)、和級聯(lián)樣式表CSS、以及,開始標簽和結(jié)束標簽之間的字符串。
[0045]步驟206,將提取的屬性信息關(guān)聯(lián)至相對應(yīng)的元素中,得到具有表現(xiàn)和行為屬性的待測試節(jié)點。
[0046]在本實施例中,所述步驟206可以包括:
[0047]子步驟2062,將所述具有綁定事件的JS賦值給相對應(yīng)的元素,以使所述待測試節(jié)點具有行為屬性。
[0048]例如,在JS腳本里邊有聲明綁定事件的特定語句(如:bind或event之類的語句),通過解析所述特定語句獲取到對應(yīng)具有綁定事件的JS代碼,并將獲取的JS代碼賦值給相應(yīng)的元素。
[0049]子步驟2064,將所述CSS與相對應(yīng)的元素進行關(guān)聯(lián),并,將所述字符串賦值給相對應(yīng)的元素,以使所述待測試節(jié)點具有表現(xiàn)屬性。
[0050]較佳地,可以將獲取的CSS作為一個屬性維度存儲在相對應(yīng)的元素中,以實現(xiàn)CSS與元素的關(guān)聯(lián)。
[0051]將獲取的字符串,如,將innerHTML(innerHTML,用來獲取HTML當前標簽的起始和結(jié)束里面的內(nèi)容)賦值給相對應(yīng)的元素,以使所述待測試節(jié)點具有表現(xiàn)屬性。
[0052]步驟208,根據(jù)所述待測試節(jié)點的表現(xiàn)和行為屬性判斷所述待測試節(jié)點是否滿足元素可定位性、狀態(tài)可獲取性、狀態(tài)可預(yù)期性和動作可模擬性。
[0053]在本實施例中,所述步驟208可以包括子步驟2082、子步驟2084、子步驟2086和子步驟2088。
[0054]子步驟2082,根據(jù)所述待測試節(jié)點的身份標識ID信息判斷所述待測試節(jié)點是否滿足元素可定位性。
[0055]較佳地,所述根據(jù)所述待測試節(jié)點的身份標識ID (identificat1n)信息判斷所述待測試節(jié)點是否滿足元素可定位性,包括:根據(jù)所述ID信息計算所述待測試節(jié)點的元素可定位分值;當計算得到的元素可定位分值大于等于第一設(shè)定閾值時,確定所述待測試節(jié)點滿足元素可定位性,而當計算得到的元素可定位分