欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種控件屬性解析系統(tǒng)及方法_2

文檔序號(hào):9667256閱讀:來(lái)源:國(guó)知局
HTML 源中的格式為:〈inputid = 〃lanApply〃class = 〃button〃type =〃submit"value = 〃保存">。HTML雖作為松散的結(jié)構(gòu),但較之普通文本,有很多特點(diǎn)可供解析。類似這種控件很容易使用正則表達(dá)式進(jìn)行匹配,輸出符合控件定位要求的屬性。如果控件本身不帶有文本標(biāo)識(shí),則可以使用相鄰控件的文本標(biāo)識(shí)作為參照,并通過(guò)解析單元4來(lái)實(shí)現(xiàn)通過(guò)相鄰控件的文本標(biāo)識(shí)來(lái)找到自身的屬性。
[0047]對(duì)于控件屬性存放的變量名的格式為:頁(yè)面標(biāo)識(shí)_控件類型標(biāo)識(shí)_功能標(biāo)識(shí)。頁(yè)面標(biāo)識(shí)用于表示同一頁(yè)面的控件屬性存放的變量名共用同一個(gè)頁(yè)面標(biāo)識(shí)頭部,便于組織頁(yè)面結(jié)構(gòu)及區(qū)分不同頁(yè)面下具有相同文本標(biāo)識(shí)的控件??丶愋涂捎糜谳o助匹配。對(duì)于某些特殊的控件類型,如采用控件類型標(biāo)識(shí),可在解析單元4中采用特殊方法。功能標(biāo)識(shí)為區(qū)別同一頁(yè)面下不同控件。按照此結(jié)構(gòu),一個(gè)頁(yè)面的保存按鈕就可以被抽象為["保存",〃所處頁(yè)面名_Button_Save〃]。這樣每個(gè)網(wǎng)頁(yè)都是一個(gè)二維的列表。每個(gè)控件都是二維列表中的一個(gè)列表對(duì)象。這種抽象工作只需要完成一次,就可以在軟件開(kāi)發(fā)的周期中維護(hù)并使用。
[0048]如圖2所示,在優(yōu)選的實(shí)施例中,解析單元4包括:
[0049]—第一判斷模塊41,用以判斷每個(gè)子列表中的文本標(biāo)識(shí)是否唯一,并輸出判斷結(jié)果;
[0050]一匹配模塊44,連接第一判斷模塊41,當(dāng)文本標(biāo)識(shí)為唯一時(shí),匹配模塊44用以根據(jù)預(yù)設(shè)模式將列表中的每個(gè)子列表中的文本標(biāo)識(shí)與源代碼中的文本進(jìn)行匹配,以獲取相應(yīng)的控件屬性,根據(jù)控件屬性獲取相應(yīng)的屬性定位文件,并輸出;
[0051]—第二判斷模塊42,連接第一判斷模塊41,當(dāng)文本標(biāo)識(shí)不是唯一時(shí),第二判斷模塊42用以判斷文本標(biāo)識(shí)對(duì)應(yīng)的代碼塊是否為JavaScript動(dòng)態(tài)選擇代碼塊,并輸出判斷結(jié)果;
[0052]—分離模塊45,分別連接第二判斷模塊42和匹配模塊44,當(dāng)文本標(biāo)識(shí)對(duì)應(yīng)的代碼塊為JavaScript動(dòng)態(tài)選擇代碼塊時(shí),分離模塊45用以根據(jù)預(yù)設(shè)解析庫(kù)分離文本標(biāo)識(shí)對(duì)應(yīng)的代碼段;
[0053]—模糊匹配模塊43,連接第二判斷模塊42,當(dāng)文本標(biāo)識(shí)對(duì)應(yīng)的代碼塊不是JavaScript動(dòng)態(tài)選擇代碼塊時(shí),模糊匹配模塊43用以根據(jù)字符串相似度算法(Levenshtein)對(duì)文本標(biāo)識(shí)的字符串相似度進(jìn)行比對(duì),將達(dá)到預(yù)設(shè)標(biāo)準(zhǔn)的文本標(biāo)識(shí)對(duì)應(yīng)的控件屬性輸出,并將未達(dá)到預(yù)設(shè)標(biāo)準(zhǔn)的文本標(biāo)識(shí)進(jìn)行標(biāo)記并保存。
[0054]在本實(shí)施例中,解析單元4用來(lái)接收網(wǎng)頁(yè)抽象體和網(wǎng)頁(yè)本身源代碼,輸出面向測(cè)試工具的頁(yè)面控件定位符文件?;诳丶橄蟪鰜?lái)的文本標(biāo)識(shí)來(lái)匹配源碼中的文本,取出需要的控件屬性,依據(jù)控件定位的方法,如by id, by name, by css, by xpath等,輸出能夠被自動(dòng)化測(cè)試工具識(shí)別并操作的控件定位符文件。
[0055]具體地,解析單元4接收的輸入為網(wǎng)頁(yè)的抽象體和網(wǎng)頁(yè)的源代碼。解析單元4能夠依據(jù)控件文本標(biāo)識(shí)解析松散HTML源代碼獲得控件屬性值,再根據(jù)辨識(shí)出來(lái)的控件類型自動(dòng)生成可供底層API調(diào)用的控件定位符。在進(jìn)行這一過(guò)程之前需采用第一判斷模塊41判斷文本標(biāo)識(shí)符是否唯一,如果唯一,則采用匹配模塊44或者對(duì)于特殊控件的解析方法,將需要的控件定位符解析出來(lái)。如果文本標(biāo)識(shí)符經(jīng)過(guò)過(guò)濾處理后仍不唯一,使用預(yù)設(shè)解析庫(kù)分離出對(duì)應(yīng)的代碼塊,通過(guò)腳本計(jì)算出高頻字符串(如果是表格格式則直接選取表頭文本)作為代碼塊的key,將每段代碼塊的key值與控件定位符變量名的功能標(biāo)識(shí)文本進(jìn)行相似度對(duì)比,選出最相似的key所對(duì)應(yīng)的代碼塊。再進(jìn)行次級(jí)模式的匹配,獲得并輸出定位符。
[0056]自動(dòng)化測(cè)試工具在回歸測(cè)試中,Setup階段運(yùn)行上述腳本,更新底層API調(diào)用的控件定位符,再運(yùn)行對(duì)應(yīng)的測(cè)試步驟,即可得出測(cè)試結(jié)果。
[0057]當(dāng)同一頁(yè)面出現(xiàn)多個(gè)不同控件,但文本標(biāo)識(shí)一致時(shí),利用模糊匹配模塊43使用字符串相似度算法進(jìn)行字符串相似度對(duì)比。這種方法是基于標(biāo)準(zhǔn)的用戶界面控件開(kāi)發(fā)的,控件的屬性name, value或id的字符串通常都帶有一定的含義。在控件文本標(biāo)識(shí)一致的情況下,可以使用控件定位符的變量名和解析出來(lái)的屬性字符串進(jìn)行相似度對(duì)比,在字符串相似度對(duì)比的方法上采用Levenshtein距離算法。經(jīng)過(guò)控件變量名和屬性字符串的Levenshtein算法計(jì)算,cost值較低的屬性字符串即可以認(rèn)為是需要獲取的對(duì)象。另外,如果某文本為中文,則將中文字符串映射至英字符串集合中,即可進(jìn)行相似度算法比較。映射舉例:中文字符串“密碼”可以映射為:[’ password’ , ’ pwd’ , ’ psw’ , ’ passwd’ ]。通過(guò)分別對(duì)比’ password’,‘pwd’,‘psw’獲得各自的cost值,選取最小的cost值與中文字符‘密碼’的相似度值??梢栽谀_本中建立一個(gè)中英文映射庫(kù),這一映射庫(kù)隨著軟件開(kāi)發(fā)的周期而逐漸成熟。同時(shí)經(jīng)過(guò)Levenshtein優(yōu)選出來(lái)的屬性值,可以記錄其不確定標(biāo)簽,以方便后期定位問(wèn)題。
[0058]在優(yōu)選的實(shí)施例中,預(yù)設(shè)模式為根據(jù)預(yù)設(shè)的優(yōu)先級(jí)匹配模式將列表中的每個(gè)子列表中的文本標(biāo)識(shí)與源代碼中的文本進(jìn)行匹配,以獲取相應(yīng)的控件屬性。
[0059]進(jìn)一步地,預(yù)設(shè)的優(yōu)先級(jí)匹配模式依次遞減的順序依次為:輸入(input)同行匹配模式、輸入(input)多行匹配模式、選擇(select)多行匹配模式、前向同行匹配模式、前向多行匹配模式。
[0060]在本實(shí)施例中,匹配模塊44的預(yù)設(shè)模式可以是一組帶有優(yōu)先級(jí)的字符串模式,結(jié)合正則表達(dá)式可以從HTML文本中取出對(duì)應(yīng)控件的屬性。本實(shí)施例中的預(yù)設(shè)的優(yōu)先級(jí)匹配模式為:input同行匹配模式,input N行匹配模式,select N行匹配模式,前向同行匹配模式,前向N行匹配模式,優(yōu)先級(jí)依次遞減。在進(jìn)行匹配尋找控件屬性時(shí),首先會(huì)嘗試采用input同行匹配模式,如果找到了對(duì)應(yīng)的字符串,則利用正則表達(dá)式分組的方法,提取出需要的屬性。例如某頁(yè)面保存按鈕按照〈input標(biāo)簽開(kāi)頭,以value = 〃保存〃結(jié)尾即可進(jìn)行匹配。如果未找到對(duì)應(yīng)的字符串,則使用次優(yōu)先級(jí)的input N行匹配模式,以此類推。少數(shù)情況下,控件的文本標(biāo)識(shí)字符串在HTML中位于屬性字符串前面,這種情況下使用一般的input或select匹配無(wú)法匹配出來(lái),經(jīng)過(guò)輪詢到前向匹配模式,可以將屬性匹配出來(lái)。
[0061]Input同行匹配模式:
[0062]” (input.* (name | id) = \" (.+ ? ) \".* ? > % s) 〃
[0063]Input N行匹配模式,N為4:
[0064]" (input.* (name | id) = \" (.+ ? ) \" (.*\n) {0, 4}.*>% s)"
[0065]Select N行匹配模式,N為10:
[0066]".*(〈 (select I SELECT).* (name I id) = \" (.+ ? ) \" (.*\n) {0,10} ?.*>\s ? %s).
[0067]前向同行匹配模式:
[0068]"(>\s? % s.*\n ?.* (name I id) = \" (.+ ? ) \")"
[0069]前向N行匹配模式:
[0070]’ (>\s ? % s (.*\n) {0, 4} ?.* (name | id) = (\" | \,)(.+ ? ) (\" | \,)),
[0071]對(duì)于本身不帶文本字符標(biāo)識(shí)的頁(yè)面控件,這類控件很特殊,一般是輸入框(Editbox),這種情況可以借助上下文的文本標(biāo)識(shí)。同時(shí)控件定位符變量名的控件類型中可以辨識(shí)該種控件,一旦在控件定位符變量名中包含有特殊控件的控件名,則在進(jìn)行匹配時(shí),通過(guò)在匹配模式中加入該種控件的特殊屬性來(lái)保證匹配的準(zhǔn)確性。如autocomplete, maxlength等屬性字符串。另外一種特殊的控件類型:button類型,絕多數(shù)情況下不需要進(jìn)行匹配,就可以用xpath的依據(jù)value值的方法直接輸出定位符。
[0072]在優(yōu)選的實(shí)施例中,預(yù)設(shè)模式為采用分級(jí)匹配模式將列表中的每個(gè)子列表中的文本標(biāo)識(shí)與源代碼中的文本進(jìn)行匹配,以獲取相應(yīng)的控件屬性。
[0073]進(jìn)一步地,分級(jí)匹配模式包括兩個(gè)階段:
[0074]第一階段為根據(jù)文本標(biāo)識(shí)定位出文本段落;
[0075]第二階段為采用次級(jí)匹配模式獲取文本段落的屬性條目,以獲取相應(yīng)的控件屬性。
[0076]在本實(shí)施例中,分級(jí)匹配模式是將匹配的過(guò)程分為兩個(gè)步驟:1.根據(jù)提供的文本標(biāo)識(shí)符匹配出大概的文本段落;2.從文本段落中使用次級(jí)匹配,找出控件的主要屬性。在優(yōu)先級(jí)匹配模式中,使用了正則表達(dá)式分組的方法一步獲取需要的控件屬性。但是匹配效率低下。分級(jí)匹配的第一步忽略了頁(yè)面控件的主要屬性文本,只是依據(jù)文本標(biāo)識(shí)定位出需要的文本段落。第二步中使用次級(jí)匹配模式,可以精準(zhǔn)獲取所要的屬性條目。次級(jí)匹配又可以依據(jù)需要的控件屬性寫成不同的匹配語(yǔ)句,如value類型,name類型,id類型等。如下為次級(jí)匹配的模式的幾種語(yǔ)句:
[0077]type 屬性:
[0078]Sub_Patt_TYPE0 = 〃 (input.*type = \" (.+ ? ) \")"
[0079]type屬性變體:
[0080]Sub_Patt_TYPEl = "(input.*type
當(dāng)前第2頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
华坪县| 白城市| 高陵县| 大城县| 清水河县| 仁布县| 河间市| 武汉市| 越西县| 南投县| 尖扎县| 永寿县| 德安县| 深州市| 漯河市| 墨江| 芦溪县| 桃园市| 特克斯县| 禹城市| 中方县| 德保县| 织金县| 泸溪县| 厦门市| 横峰县| 嘉定区| 金湖县| 平昌县| 云和县| 延边| 色达县| 敖汉旗| 永德县| 农安县| 大悟县| 凤凰县| 石家庄市| 通榆县| 宜良县| 友谊县|