• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于主題判定的網(wǎng)頁元素XPath定位器生成方法

    2019-05-05 06:29:50高建華
    小型微型計算機系統(tǒng) 2019年4期
    關(guān)鍵詞:特征詞定位器網(wǎng)頁

    張 弛,高建華

    (上海師范大學(xué) 計算機科學(xué)與技術(shù)系,上海 200234)

    1 引 言

    在Web開發(fā)過程中,為了保證Web應(yīng)用的質(zhì)量,Web應(yīng)用必須進(jìn)行相應(yīng)的測試.G.J.Myers[1]有一條著名的經(jīng)驗總結(jié),在軟件項目中,軟件測試大約占用項目時間的50%和總成本的50%以上.即便已經(jīng)出現(xiàn)了大量的自動化測試工具與框架,這個結(jié)論依然成立.

    目前,Web自動化測試工具和框架已經(jīng)很大程度上實現(xiàn)了自動化,代替了人工測試.在Web測試腳本的生成中,最耗時的和最脆弱的,就是Web網(wǎng)頁元素定位[2].雖然目前已經(jīng)存在一些提供自動化生成測試腳本的工具,如Watir、Selenium IDE的錄制與回放[3],但是生成的測試腳本中不少還存在著網(wǎng)頁元素定位器失效的問題.另外,在回歸測試中,由于細(xì)微的Web結(jié)構(gòu)改變或者網(wǎng)頁元素屬性值的變化,網(wǎng)頁元素定位器可能會失效,從而導(dǎo)致Web測試腳本的失效,這時Web測試腳本需要修復(fù)或重新生成.

    在Web測試腳本修復(fù)方面,多種針對網(wǎng)頁元素定位器失效的方法[4-6]被提出,具有不錯的效果,但是若能有效地提高Web測試腳本的魯棒性,Web測試效率將進(jìn)一步提升.

    目前已實際應(yīng)用的字符串匹配方法,通過輸入框的id屬性值來確定輸入框的主題,提高了網(wǎng)頁元素定位的魯棒性,但是僅依靠id屬性進(jìn)行定位,定位能力較差.Lin等人[7]提出了應(yīng)用于基于網(wǎng)頁爬取Web應(yīng)用測試的語義相關(guān)性方法,可以在一定程度上實現(xiàn)網(wǎng)頁元素的主題確定,能夠很好地幫助網(wǎng)頁元素進(jìn)行定位,但是標(biāo)簽中屬性值復(fù)雜,直接獲取到的屬性值不一定具備相應(yīng)的語義.M.Leotta等人[8-10]提出了多種方法來提高XPath定位魯棒性,使得XPath定位器在回歸測試時細(xì)微的Web結(jié)構(gòu)變化情況下能保持較好的魯棒性,但是在網(wǎng)頁元素屬性值和網(wǎng)頁結(jié)構(gòu)同時發(fā)生變化時,卻難以繼續(xù)保持良好的魯棒性.

    網(wǎng)頁元素定位方法中,XPath 定位方法一般優(yōu)于其它方法.因為網(wǎng)頁元素不一定具備id,name,class等屬性,使得基于這些屬性的定位方法無法定位網(wǎng)頁元素,故而有時XPath定位方法成為唯一的選擇.此外,網(wǎng)頁爬取技術(shù)的發(fā)展使得網(wǎng)頁元素定位器的自動生成變成可能[11].

    本文主要針對靜態(tài)網(wǎng)頁表單中的網(wǎng)頁元素,采用網(wǎng)頁爬取技術(shù)來獲取網(wǎng)頁DOM,通過“網(wǎng)頁元素”-“特征詞”-“主題”的轉(zhuǎn)換,確定待測網(wǎng)頁元素的主題,篩選得到所需主題的網(wǎng)頁元素,并根據(jù)網(wǎng)頁元素自動生成對應(yīng)的XPath絕對路徑,實現(xiàn)對網(wǎng)頁元素的準(zhǔn)確定位.經(jīng)測試,該方法能夠有效地確定網(wǎng)頁元素的主題,自動生成的XPath定位器在回歸測試中有較好的魯棒性.

    本文第2節(jié)定義了與網(wǎng)頁元素相關(guān)的術(shù)語;第3節(jié)介紹了網(wǎng)頁元素的主題關(guān)鍵詞集合和主題特征詞詞頻;第4節(jié)詳細(xì)地闡述了基于主題判定的網(wǎng)頁元素XPath定位器生成方法;第5節(jié)對本文提出的方法進(jìn)行了實驗和數(shù)據(jù)分析;第6節(jié)對本文內(nèi)容進(jìn)行了總結(jié).

    2 相關(guān)術(shù)語

    定義1.網(wǎng)頁元素主題:在Web測試中往往是對網(wǎng)頁元素進(jìn)行操作,而一個網(wǎng)頁元素往往對應(yīng)一個邏輯名稱,如:用戶名輸入框、注冊按鈕等,在本文中將此定義為網(wǎng)頁元素的主題.引入網(wǎng)頁元素主題可以到達(dá)識別網(wǎng)頁元素的目的,幫助網(wǎng)頁元素定位.

    定義2.主題集合:在一個Web頁面中通常含有多個網(wǎng)頁元素,因此對應(yīng)的主題也有多個,將這些主題構(gòu)成一個網(wǎng)頁元素主題的集合,稱為主題集合,記為T.

    T={主題t1,主題t2,…}

    定義3.主題關(guān)鍵詞:從網(wǎng)頁元素與主題相關(guān)的屬性值中獲取與某個網(wǎng)頁元素主題相關(guān)的關(guān)鍵詞,主題與其對應(yīng)的關(guān)鍵詞構(gòu)成主題關(guān)鍵詞對應(yīng)關(guān)系.

    主題t1:{關(guān)鍵詞k11,關(guān)鍵詞k12,…}

    定義4.主題關(guān)鍵詞集合:由于一個Web頁面中對應(yīng)一個主題集合,因而與該主題集合相關(guān)的關(guān)鍵詞應(yīng)該為主題集合中所有主題對應(yīng)的關(guān)鍵詞集合,這被稱為主題關(guān)鍵詞集合.

    {主題t1,主題t2,…,主題tn}:{關(guān)鍵詞k11,關(guān)鍵詞k12,…,
    關(guān)鍵詞k21,關(guān)鍵詞k22,…,關(guān)鍵詞kn1,關(guān)鍵詞kn2,…}

    由于集合內(nèi)元素的互異性,主題關(guān)鍵詞集合中的元素互不相同.

    定義5.網(wǎng)頁元素特征詞:首先提取網(wǎng)頁元素的重要屬性值,而后從網(wǎng)頁元素與主題相關(guān)的屬性值中提取主題關(guān)鍵詞集合中的詞,這兩部分提取到的詞作為網(wǎng)頁元素特征詞,其全體記為F.

    F=(重要屬性值s1,重要屬性值s2,…,
    關(guān)鍵詞k1,關(guān)鍵詞k2,…)

    網(wǎng)頁元素的重要屬性值,一般是指能幫助區(qū)分網(wǎng)頁元素的類型和確定網(wǎng)頁元素的主題的網(wǎng)頁元素屬性值.網(wǎng)頁元素的標(biāo)簽名一般是網(wǎng)頁元素的其中一個重要屬性值,并基于標(biāo)簽名來確定網(wǎng)頁元素的重要屬性值,如網(wǎng)頁元素標(biāo)簽名為input時,則type屬性值應(yīng)為該網(wǎng)頁元素的重要屬性值.靜態(tài)網(wǎng)頁表單中網(wǎng)頁元素的類型一般有文本、輸入框、按鈕、圖片、超鏈接等等.

    3 主題詞庫

    主題詞庫是主題集合中所有主題特征詞的集合,主題詞庫主要是為了實現(xiàn)網(wǎng)頁元素主題的確定.其中,主題特征詞是屬于該主題下的所有網(wǎng)頁元素樣本特征詞的集合.在Web開發(fā)過程中,一般都有相應(yīng)的前端開發(fā)代碼規(guī)范,使得開發(fā)者在開發(fā)過程中須遵循相應(yīng)的命名和賦值規(guī)范.因此,網(wǎng)頁元素的屬性值中一般也會有相應(yīng)的關(guān)鍵詞來代表對應(yīng)的主題,這使得網(wǎng)頁元素的主題確定能夠?qū)崿F(xiàn).

    3.1 主題關(guān)鍵詞集合

    選取Web測試中將要進(jìn)行測試的主題,如:用戶名輸入框,密碼輸入框等主題,收集足夠的網(wǎng)頁元素樣本.根據(jù)命名與賦值規(guī)范,從這些網(wǎng)頁元素樣本中,找出與對應(yīng)主題相關(guān)的關(guān)鍵詞,并組成相應(yīng)的主題關(guān)鍵詞.主題關(guān)鍵詞可以不斷擴(kuò)充和重復(fù)使用,也可以專門為特定的網(wǎng)頁制定合適的主題和相應(yīng)的關(guān)鍵詞用于Web回歸測試.主題關(guān)鍵詞基于特定的主題集合將組成主題關(guān)鍵詞集合,主題關(guān)鍵詞集合的作用是在特定的主題集合場景下建立了網(wǎng)頁元素主題與關(guān)鍵詞之間的聯(lián)系.

    3.2 提取特征詞

    提取網(wǎng)頁元素特征詞主要是從網(wǎng)頁元素與主題相關(guān)的屬性值中提取主題關(guān)鍵詞集合中的詞以及網(wǎng)頁元素的重要屬性值.

    算法1.特征詞提取算法

    輸入:網(wǎng)頁元素e

    主題關(guān)鍵詞集合F

    網(wǎng)頁元素的重要屬性列表IL

    與主題相關(guān)的屬性列表AL

    輸出:網(wǎng)頁元素e的特征詞W

    1.W←[],S←[]

    2.ForeachimpAttr∈ILDo

    3.W←W∪Format(e.impAttr.value)

    4.Endfor

    5.Foreachattr∈ALDo

    6.Ife.attr.value≠NULLThen

    7.S←S∪Format(e.attr.value)

    8.Endif

    9.Endfor

    10.FSorted←SortByLength(F)

    11.Foreachs∈SDo

    12.Foreachf∈FSortedDo

    13.Ifs.substring=fandSatisfyCons(s)Then

    14.W←W∪f

    15.Endif

    16.Endfor

    17.Endfor

    算法1中,Format函數(shù)是將字符串中字母轉(zhuǎn)化為小寫、特殊字符轉(zhuǎn)化為空格以便于關(guān)鍵詞提取.SatisfyCons函數(shù)是避免出現(xiàn)重復(fù)提取和錯誤提取,防止干擾主題確定.其中,第2行至第4行是提取網(wǎng)頁元素的重要屬性值;第5行至第9行是提取與主題相關(guān)屬性的值;第10行至第17行是從與主題相關(guān)的屬性值中提取主題關(guān)鍵詞集合中的詞.

    主題特征詞是由該主題下的所有網(wǎng)頁元素樣本特征詞構(gòu)成的集合,形成了主題與特征詞的對應(yīng)關(guān)系.因此僅針對單個主題下提取網(wǎng)頁元素樣本特征詞時,主題集合中僅有一個主題且主題關(guān)鍵詞集合與該主題關(guān)鍵詞相同.

    3.3 主題特征詞頻次

    主題特征詞頻次是指主題特征詞在該主題下平均每個網(wǎng)頁元素樣本特征詞中的出現(xiàn)頻次.

    (1)

    其中,topic代表主題,feature代表特征詞,nfeature代表特征詞在該主題下出現(xiàn)的次數(shù),Ntopic代表該主題下的網(wǎng)頁元素樣本數(shù).

    4 基于主題判定的網(wǎng)頁元素XPath定位器生成方法

    基于主題判定的網(wǎng)頁元素XPath定位器生成方法是通過確定待測網(wǎng)頁元素的主題并自動生成網(wǎng)頁元素的XPath定位器.方法如圖1所示,步驟如下:

    1)確定Web網(wǎng)頁中的待測網(wǎng)頁元素屬于哪些主題,即確定主題集合,而后確定主題關(guān)鍵詞集合,并計算主題特征詞頻次.

    圖1 方法的概圖Fig.1 Overview of the proposed approach

    2)結(jié)合主題關(guān)鍵詞集合,從待測網(wǎng)頁中提取網(wǎng)頁元素特征詞,而后計算待測網(wǎng)頁元素中對應(yīng)特征詞的頻率.

    3)依據(jù)主題特征詞頻次,計算提取到的網(wǎng)頁元素特征詞屬于各主題的概率.

    4)結(jié)合待測網(wǎng)頁元素中對應(yīng)特征詞的頻率和網(wǎng)頁元素中對應(yīng)特征詞的頻率,得到待測網(wǎng)頁元素屬于各主題的概率,依此確定待測網(wǎng)頁元素的主題.

    5)基于待測網(wǎng)頁元素的主題生成XPath定位器.

    4.1 確定網(wǎng)頁元素主題

    待測網(wǎng)頁元素是進(jìn)行Web測試時能夠被操作的網(wǎng)頁元素.對于Web頁面而言,測試人員可以確定待測頁面有哪些主題的待測網(wǎng)頁元素,從而確定主題集合.主題集合確定后,可以進(jìn)一步確定主題關(guān)鍵詞集合.本方法通過爬取待測網(wǎng)頁,篩選得到待測網(wǎng)頁元素,并通過算法1從待測網(wǎng)頁元素中提取待測網(wǎng)頁元素特征詞.

    網(wǎng)頁元素e中特征詞w出現(xiàn)的頻率pe(w|e).

    (2)

    其中,nw代表網(wǎng)頁元素e中特征詞w的出現(xiàn)次數(shù),ne代表網(wǎng)頁元素e中所有特征詞出現(xiàn)的總次數(shù).

    而后通過第3節(jié)所獲得的主題與特征詞關(guān)系,計算待測網(wǎng)頁元素e中特征詞w屬于主題t的概率pw(t|w).

    (3)

    其中,T是指主題集合.

    由于網(wǎng)頁元素各屬性值之間不屬于上下文關(guān)系,將網(wǎng)頁元素的主題約束于主題集合后,可以通過網(wǎng)頁元素中特征詞的頻率與特征詞屬于某主題的概率,計算得到該網(wǎng)頁元素屬于主題集合中某主題的概率,從而實現(xiàn)“網(wǎng)頁元素”-“特征詞”-“主題”的轉(zhuǎn)換,達(dá)到確定網(wǎng)頁元素主題的目的.

    網(wǎng)頁元素e屬于主題t的概率pt(t|e).

    pt(t|e)=∑w∈Wpw(t|w)·pe(w|e)

    (4)

    其中,W代表所有待測網(wǎng)頁元素的特征詞.本方法中將網(wǎng)頁元素對應(yīng)概率最高的主題作為該網(wǎng)頁元素的主題.

    一般情況下,待測網(wǎng)頁元素的主題是該網(wǎng)頁元素對應(yīng)概率最高的主題,但是存在少數(shù)網(wǎng)頁元素的主題并不是網(wǎng)頁元素對應(yīng)概率最高的主題,存在這種情況一般是因為部分主題的網(wǎng)頁元素樣本數(shù)少、待測網(wǎng)頁元素屬性值命名不規(guī)范或者待測網(wǎng)頁元素屬性值中存在較多干擾主題確定的詞.同時由于一些非待測網(wǎng)頁元素在該方法下也會有一個對應(yīng)的主題,這些非待測網(wǎng)頁元素存在對應(yīng)主題后可能將影響Web測試,因而需要設(shè)定閾值來減少非待測網(wǎng)頁元素的干擾.本文通過實驗發(fā)現(xiàn)如果將閾值設(shè)置在合理區(qū)間,即網(wǎng)頁元素對應(yīng)認(rèn)定主題的概率要大于閾值才認(rèn)為該網(wǎng)頁元素屬于該主題,能消除大多數(shù)非待測網(wǎng)頁元素的影響,也盡可能地不影響待測網(wǎng)頁元素的主題確定.

    4.2 網(wǎng)頁元素XPath路徑生成

    本文采用深度優(yōu)先搜索(DFS)與DOM樹結(jié)合的網(wǎng)頁元素XPath路徑生成算法,來實現(xiàn)網(wǎng)頁元素XPath路徑的自動生成.

    算法2.網(wǎng)頁元素XPath路徑生成算法

    輸入:網(wǎng)頁DOM

    給定的網(wǎng)頁元素e

    輸出:網(wǎng)頁元素e的XPath路徑eXpath

    1. root←DOM.body

    2. startXpath←“/html/body”

    3. call WebElementDFS(root,startXpath) //深度優(yōu)先搜索

    4.

    5.FunctionWebElementDFS(DOMnode,XPathxpath)

    6. tagnameList←[]

    7.Foreachchild∈node.childrenDo

    8.tag_name←child.tag_name

    9.position←0

    10.tagnameList←tagnameList∪tag_name

    11.Foreachn∈tagnameListDo

    12.Ifn =tag_nameThen

    13.position←position+1

    14.Endif

    15.Endfor

    16.Ifchild = eThen

    17.eXpath←xpath+″/″+tag_name+″[″+position+″]″

    18. StopDFS()

    19.Else

    20. WebElementDFS(child,xpath+″/″+tag_name+″[″+position+″]″)

    21.Endif

    22.Endfor

    23.Endfunction

    在算法2中,從Body節(jié)點開始遍歷所有子節(jié)點,第7行記錄了子節(jié)點的標(biāo)簽名;第8行至第14行計算了XPath路徑的位置值.如果該子節(jié)點為輸入的目標(biāo)網(wǎng)頁元素e,則生成XPath路徑并停止DFS搜索,如第17行至第18行所示;否則繼續(xù)進(jìn)行DFS搜索,如第20行所示.

    5 實驗分析

    為了驗證基于主題判定的網(wǎng)頁元素XPath定位器生成方法的有效性,本文在實際網(wǎng)站中應(yīng)用本文所提方法.實驗主要尋求以下幾個問題的解答:

    Q1:相對于廣泛使用的字符串匹配方法,使用本文所提方法是否可以提升網(wǎng)頁元素定位的能力?

    Q2:使用本文所提方法是否可以在回歸測試中提高網(wǎng)頁元素定位器的魯棒性?

    Q3:在Web測試時,本文所提方法是否可以提升測試效率?

    5.1 實驗設(shè)置

    實驗1.待測網(wǎng)頁集合有82個頁面,由注冊頁面和登陸頁面組成,針對“用戶名”、“密碼”、“郵箱”、“名”和“姓”等5個主題的輸入框進(jìn)行相應(yīng)實驗,共260個待測網(wǎng)頁元素,分別采用本文提出的方法和字符串匹配方法進(jìn)行待測網(wǎng)頁元素的主題確定與定位.

    圖2 Web應(yīng)用的兩個版本Fig.2 Two versions of a Web application

    實驗2.將本文提出的方法應(yīng)用于一個簡單Web應(yīng)用的兩個版本中,Web應(yīng)用如圖2所示,與文獻(xiàn)[8]所提及的5種方法作比較,驗證使用本文所提方法是否可以在回歸測試中提高網(wǎng)頁元素定位器的魯棒性和提高測試效率.

    5.2 網(wǎng)頁元素定位能力

    目前廣泛采用的字符串匹配方法,是基于特征詞字符串匹配規(guī)則來確定網(wǎng)頁元素的主題.例如,若要對一個主題為“密碼”的輸入框中賦值“Pwd123”.

    第1步,基于特征詞字符串匹配規(guī)則來確定網(wǎng)頁元素的主題:

    DOM.tag=input∩DOM.id.substrings

    ∈{″password″}

    ?password(DOM)istrue

    其中,{″password″}代表的是“密碼”主題下特征詞的集合.

    第2步,對相應(yīng)主題的網(wǎng)頁元素賦值:

    password(DOM)istrue?DOM.value=″Pwd123″

    若從{″password″}集合中選出一個元素″password″,則這種網(wǎng)頁元素定位方式等同于XPath定位器:

    “//input[contains(@id,′password′)]”

    除了字符串匹配方法還可以通過id直接定位來實現(xiàn)對輸入框的賦值,如對id屬性值為″userpassword″的網(wǎng)頁元素實現(xiàn)相應(yīng)操作:

    DOM.tag=input∩DOM.id=″userpassword″

    ?DOM.value=″Pwd123″

    這種網(wǎng)頁元素定位方式等同于XPath定位器:

    “//input[@id=′userpassword′]”

    提取字符串匹配方法相對于直接通過id定位,增強了網(wǎng)頁元素定位的魯棒性,減少了對網(wǎng)頁元素id屬性具體屬性值的關(guān)注,提高了生成和修改測試用例的效率.

    本文提出的基于主題判定的網(wǎng)頁元素XPath定位器生成方法實現(xiàn)該操作的步驟如下:

    首先,確定待測網(wǎng)頁元素中有哪些主題,并通過本文所述方法確定這些待測網(wǎng)頁元素的主題.

    其次,對相應(yīng)主題的網(wǎng)頁元素賦值:

    DOM.topic=password?DOM.value=″Pwd123″

    字符串匹配方法中主要依靠網(wǎng)頁元素的單一屬性值來判斷網(wǎng)頁元素的主題,往往會出現(xiàn)一個待測網(wǎng)頁元素對應(yīng)多個主題或不屬于任何主題的現(xiàn)象.例如,網(wǎng)頁元素id屬性值為“usernamereg-lastName”,按照字符串匹配方法,該網(wǎng)頁元素至少將對應(yīng)兩個主題,分別是“用戶名”和“姓”.在實驗1中,我們約定當(dāng)id屬性值對應(yīng)多個主題時,將該網(wǎng)頁元素按照“用戶名”、“密碼”、“郵箱”、“名”、“姓”的順序,對應(yīng)的最后一個主題作為它的主題.同樣,為了避免非待測網(wǎng)頁元素的影響,實驗1中,本文所提方法中待測網(wǎng)頁元素的主題確定時,僅當(dāng)網(wǎng)頁元素屬于對應(yīng)概率最高的主題的概率大于0.31時,才認(rèn)為該網(wǎng)頁元素屬于這一主題.實驗1結(jié)果如表1所示.

    表1 實驗1結(jié)果
    Table 1 Result of Exp.1

    方法是否可定位是否確定主題主題正確性數(shù)量比例基于主題的網(wǎng)頁元素定位方法 可定位的 確定主題 主題正確97.3%主題錯誤1.1%未確定主題-1.6%字符串匹配方法可定位的 確定主題 主題正確74.2%主題錯誤1.5%未確定主題-3.1%不可定位的--21.2%

    本文通過對不同規(guī)模(120、260、390、580個網(wǎng)頁元素)的測試樣本進(jìn)行實驗得到的結(jié)果均如圖3所示.其中,非待測網(wǎng)

    圖3 閾值選擇的影響Fig.3 Influence of threshold selection

    頁元素的干擾是指非待測網(wǎng)頁元素有對應(yīng)主題的占非待測網(wǎng)頁元素總體數(shù)量的比重.當(dāng)閾值較小時,非待測網(wǎng)頁元素影響較為明顯.但是當(dāng)閾值超過某一特定值時,非待測網(wǎng)頁元素影響較小但是將影響網(wǎng)頁元素主題的確定.本文發(fā)現(xiàn)所提方法的閾值一般設(shè)置在區(qū)間[0.30-0.33]中時表現(xiàn)良好,故本文實驗部分選取閾值為0.31.

    5.3 網(wǎng)頁元素定位器的魯棒性

    常用的網(wǎng)頁元素定位主要是通過網(wǎng)頁元素屬性值定位,XPath定位器實現(xiàn)的,通過id、name等屬性值來定位網(wǎng)頁元素準(zhǔn)確高效,但是在實際中,讓開發(fā)人員為每一個網(wǎng)頁元素都添加id或者name屬性并不現(xiàn)實.如果沒有id或者name屬性對應(yīng)的定位方法就無法定位到相應(yīng)的網(wǎng)頁元素,更無法生成,而XPath定位器幾乎可以定位到所有網(wǎng)頁元素.因此,XPath定位器成為自動生成網(wǎng)頁元素定位器方法的最好選擇.

    目前,廣泛用于Web測試中的Selenium IDE可以通過模擬用戶操作,錄制并回放產(chǎn)生測試用例腳本,但是這樣生成的腳本,其穩(wěn)定性和可靠性有限,往往會導(dǎo)致失效,需要測試人員進(jìn)行修正才能使得其可以正常運行,而其中73.62%的失效是由于網(wǎng)頁元素定位器失效[2].另外,通過SeleniumIDE生成的腳本部分是通過XPath定位器進(jìn)行網(wǎng)頁元素定位的,在回歸測試中,網(wǎng)頁元素或者網(wǎng)頁結(jié)構(gòu)的細(xì)微變化就可能會導(dǎo)致測試失敗,這時就需要測試人員對腳本進(jìn)行修復(fù)或者重新生成.因此,提高網(wǎng)頁元素定位器在回歸測試中的魯棒性成為了關(guān)鍵.

    在圖2中版本(2)較版本(1)而言,既存在網(wǎng)頁結(jié)構(gòu)變化也存在網(wǎng)頁元素屬性值變化.在回歸測試中,網(wǎng)頁元素XPath定位器往往在三種場景下失效:a)網(wǎng)頁結(jié)構(gòu)變化;b)網(wǎng)頁元素屬性值變化;c)網(wǎng)頁結(jié)構(gòu)與網(wǎng)頁元素屬性值同時變化.本文所設(shè)計的這一Web應(yīng)用的兩個版本中囊括了這三種場景,場景(a)對應(yīng)姓輸入框的變化;場景(b)對應(yīng)用戶名輸入框的變化;場景(c)對應(yīng)電子郵箱輸入框的變化.實驗2結(jié)果如表2所示.

    5.4 實驗數(shù)據(jù)分析

    根據(jù)試驗結(jié)果,可以逐一回答前文所提的Q1-Q3問題.

    Q1:網(wǎng)頁元素定位能力方面,從表1中可見,相對于字符串匹配方法,本文所提方法使得可定位的網(wǎng)頁元素增加了21.2%,網(wǎng)頁元素主題確定正確率提高了23.1%.使用字符串匹配方法,如果網(wǎng)頁元素中不包含id屬性,則無法進(jìn)行字符串匹配,更無法采用網(wǎng)頁元素的id屬性來進(jìn)行網(wǎng)頁元素定位.這是導(dǎo)致字符串匹配方法無法定位部分網(wǎng)頁元素的原因.

    在實驗1中,出現(xiàn)了對部分非待測網(wǎng)頁元素主題確定的錯誤,這會使得Web測試出現(xiàn)錯誤.為減小由于非待測網(wǎng)頁元素主題確定的錯誤而導(dǎo)致Web測試錯誤,實驗1設(shè)置了主題確定概率閾值為0.31,但是在極小部分Web測試中由于非待測網(wǎng)頁元素主題確定的錯誤而導(dǎo)致的Web測試錯誤依舊存在.

    另外,對于待測網(wǎng)頁元素的類型是按鈕時,本文提出的網(wǎng)頁元素定位存在一定難度,雖然能夠較好地確定該網(wǎng)頁元素的主題,但是許多網(wǎng)頁存在多個同主題的按鈕,無法辨別所要點擊的按鈕.這些困難也存在于字符串匹配方法中.因此,本文所提方法目前對按鈕類的待測網(wǎng)頁元素還有待改進(jìn).

    在文獻(xiàn)[7]中提出通過語義相關(guān)性來判斷網(wǎng)頁元素主題的方法,在一定程度上提高了對網(wǎng)頁元素主題確定的正確率,也有助于網(wǎng)頁元素的定位,但是從網(wǎng)頁元素的type、id、name、maxlength等屬性中直接提取到的屬性值作為特征詞,往往不具備相應(yīng)的語義.

    基于主題判定的網(wǎng)頁元素XPath定位器生成方法改進(jìn)了基于網(wǎng)頁元素單一屬性來判斷主題的方法,綜合考慮了網(wǎng)頁元素中與主題相關(guān)的多個屬性,來進(jìn)行網(wǎng)頁元素主題的確定,擯棄了基于單一屬性進(jìn)行網(wǎng)頁元素定位的策略,提出了根據(jù)網(wǎng)頁元素自動生成XPath定位器的方法.實驗表明本文所提方法增強了網(wǎng)頁元素的定位能力.

    表2 實驗2結(jié)果
    Table 2 Result of Exp.2

    場景方法類型版本(1)版本(2)有效性正確性aFirePath Abs絕對/html/body/table/tbody/tr[3]/td[2]/input/html/body/table/tbody/tr[3]/td[2]/input有效錯誤FirePath Rel相對//?[@id=′Registration′]/tbody/tr[3]/td[2]/input//?[@id=′Registration′]/tbody/tr[3]/td[2]/input有效錯誤Selenium IDE相對//input[@name=′Last Name′]//input[@name=′Last Name′]有效正確Montoto[12]相對//input[@name=′Last Name′]//input[@name=′Last Name′]有效正確Robula+[10]相對//?[contains(@name,′Last Name′)]//?[contains(@name,′Last Name′)]有效正確本文所提方法絕對/html/body/table[1]/tr[3]/td[2]/input[1]/html/body/table[1]/tr[4]/td[2]/input[1]有效正確bFirePath Abs絕對/html/body/table/tbody/tr[1]/td[2]/input/html/body/table/tbody/tr[1]/td[2]/input有效正確FirePath Rel相對//?[@id=′Registration′]/tbody/tr[1]/td[2]/input//?[@id=′Registration′]/tbody/tr[1]/td[2]/input有效正確Selenium IDE相對//input[@name=′User Name′]//input[@name=′User Name′]無效Montoto[12]相對//input[@name=′User Name′]//input[@name=′User Name′]無效Robula+[10]相對//?[contains(@name,′User Name′)]//?[contains(@name,′User Name′)]無效本文所提方法絕對/html/body/table[1]/tr[1]/td[2]/input[1]/html/body/table[1]/tr[1]/td[2]/input[1]有效正確cFirePath Abs絕對/html/body/table/tbody/tr[4]/td[2]/input/html/body/table/tbody/tr[4]/td[2]/input有效錯誤FirePath Rel相對//?[@id=′Registration′]/tbody/tr[4]/td[2]/input//?[@id=′Registration′]/tbody/tr[4]/td[2]/input有效錯誤Selenium IDE相對//input[@name=′Email′]//input[@name=′Email′]無效Montoto[12]相對//input[@name=′Email′]//input[@name=′Email′]無效Robula+[10]相對//?[contains(@name,′Email′)]//?[contains(@name,′Email′)]無效本文所提方法絕對/html/body/table[1]/tr[4]/td[2]/input[1]/html/body/table[1]/tr[5]/td[2]/input[1]有效正確

    Q2:在表2中,有效性指XPath定位器指向的目標(biāo)是否存在,而正確性是指XPath定位器指向的目標(biāo)是否正確.

    從表2中可見,就網(wǎng)頁元素定位器的魯棒性方面而言,在文獻(xiàn)[8]中提到的5種生成XPath定位器的方法在實驗2的場景(c)中都失效了,而本文提出的基于主題判定的網(wǎng)頁元素XPath定位器生成方法所自動生成的XPath定位器,卻能在回歸測試中自動生成有效并且正確的XPath定位器.在場景(a)和場景(b)中,本文所提方法依然表現(xiàn)良好,而其他方法在場景(a)或場景(b)可能會出現(xiàn)失效或錯誤.實驗表明,在回歸測試中本文所提方法對網(wǎng)頁元素定位的魯棒性得到提高.

    在文獻(xiàn)[9]和文獻(xiàn)[10]中提出的方法增強了XPath定位器在一些場景下的魯棒性,但是XPath定位器在回歸測試中始終是固定的,這使得XPath定位器依舊脆弱.

    Q3:測試效率提高方面,在實驗1中,在已有主題詞庫情況下,由于測試人員僅需提供主題集合即可生成網(wǎng)頁元素定位器,測試變得更加簡單,即使不是專業(yè)測試人員,也能對照測試用例,進(jìn)行相應(yīng)的Web自動化測試.而在實驗2中,簡單Web應(yīng)用的回歸測試時,由于待測網(wǎng)頁元素的定位依靠自動生成的XPath定位器,所以僅需將“密碼”主題添加到主題集合中即可,避免了人工重新生成定位器的工作.相較于修復(fù)網(wǎng)頁元素定位器和重新修改測試腳本,本方法節(jié)省了較多時間.本方法在主題詞庫確定后可以較大程度的提高測試效率,但是方法在網(wǎng)頁元素樣本收集和主題關(guān)鍵詞選擇上比較耗時,這是需要改進(jìn)的.另外,對部分主題難以收集到足夠網(wǎng)頁元素樣本的Web測試,由于主題確定的準(zhǔn)確率不高,難以直接使用本方法進(jìn)行網(wǎng)頁元素定位,這種情況下本方法需要結(jié)合手動生成的網(wǎng)頁元素定位器進(jìn)行Web測試.實驗表明,基于主題判定的網(wǎng)頁元素XPath定位器生成方法能在一定程度上提高Web測試的效率.

    6 總 結(jié)

    基于主題判定的網(wǎng)頁元素XPath定位器生成方法通過確定待測網(wǎng)頁元素的主題,并根據(jù)網(wǎng)頁元素自動生成對應(yīng)的XPath絕對路徑,實現(xiàn)對網(wǎng)頁元素的定位,能夠在一定程度上提高測試效率.未來研究的方向是應(yīng)用機器學(xué)習(xí)相關(guān)算法,通過語義分析來實現(xiàn)網(wǎng)頁元素主題的確定;通過動態(tài)推導(dǎo)Web狀態(tài)流程圖,實現(xiàn)動態(tài)Web應(yīng)用的網(wǎng)頁元素XPath定位器自動生成,進(jìn)一步提高Web測試效率.

    猜你喜歡
    特征詞定位器網(wǎng)頁
    定位器故障分析及控制措施
    壓接類定位器壓接工藝設(shè)備改進(jìn)方案
    基于改進(jìn)TFIDF算法的郵件分類技術(shù)
    基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
    電子制作(2018年10期)2018-08-04 03:24:38
    產(chǎn)品評論文本中特征詞提取及其關(guān)聯(lián)模型構(gòu)建與應(yīng)用
    基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
    電子制作(2017年2期)2017-05-17 03:54:56
    基于圖像處理的定位器坡度計算
    電氣化鐵道(2016年4期)2016-04-16 05:59:46
    網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
    電子測試(2015年18期)2016-01-14 01:22:58
    面向文本分類的特征詞選取方法研究與改進(jìn)
    10個必知的網(wǎng)頁設(shè)計術(shù)語
    麦盖提县| 新民市| 福州市| 巴林左旗| 西峡县| 宝兴县| 东阳市| 晋城| 呼伦贝尔市| 灯塔市| 洛浦县| 桂平市| 永福县| 隆回县| 奉化市| 河东区| 长沙县| 泌阳县| 马公市| 阿合奇县| 抚松县| 万安县| 静宁县| 南召县| 班玛县| 泗洪县| 彭州市| 天祝| 祁阳县| 恩施市| 邯郸市| 南投市| 阿拉善右旗| 琼中| 游戏| 曲水县| 赤水市| 大冶市| 贺州市| 沂水县| 法库县|