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

控件元素的識(shí)別方法和裝置的制造方法_2

文檔序號(hào):9471298閱讀:來(lái)源:國(guó)知局
控件元素屬性。例如,控件元素的控件元素屬性通??梢园↖D、Name、ClassName、Xpath、LinkText、TagName 等屬性值。
[0080]目前,在識(shí)別控件元素時(shí),通常基于單一的識(shí)別策略進(jìn)行識(shí)別。測(cè)試人員在設(shè)置識(shí)別屬性時(shí),可以從被測(cè)試頁(yè)面中需要識(shí)別的控件元素的控件元素屬性中指定一個(gè)具有唯一性的控件元素屬性作為識(shí)別屬性,然后該識(shí)別屬性預(yù)先存儲(chǔ)到excel,數(shù)據(jù)庫(kù)或者腳本中,供運(yùn)行測(cè)試用例識(shí)別控件元素時(shí)使用。
[0081]然而,在實(shí)際的測(cè)試過(guò)程中,當(dāng)被測(cè)試頁(yè)面的頁(yè)面布局發(fā)生改變,被測(cè)試頁(yè)面中的控件元素屬性也會(huì)相應(yīng)的發(fā)生變化,當(dāng)發(fā)生變化的控件元素屬性是預(yù)先存儲(chǔ)的由測(cè)試人員指定的作為識(shí)別屬性的控件元素屬性時(shí),此時(shí)測(cè)試用例不能夠及時(shí)的了解到當(dāng)前的識(shí)別屬性已經(jīng)發(fā)生變化,當(dāng)運(yùn)行測(cè)試用例對(duì)被測(cè)試頁(yè)面中的控件元素進(jìn)行識(shí)別時(shí),就會(huì)出現(xiàn)識(shí)別異常,從而導(dǎo)致測(cè)試用例執(zhí)行失敗。在這種情況下,通常需要測(cè)試人員重新進(jìn)行調(diào)試,因而會(huì)導(dǎo)致測(cè)試時(shí)間增長(zhǎng),人工維護(hù)的時(shí)間成本增加。
[0082]為解決以上問(wèn)題,本公開(kāi)提出一種控件元素的識(shí)別方法,通過(guò)讀取目標(biāo)控件元素的識(shí)別屬性;所述識(shí)別屬性包括多個(gè)用于在測(cè)試頁(yè)面中識(shí)別所述目標(biāo)控件元素的控件元素屬性;并檢查所述目標(biāo)控件元素的識(shí)別屬性是否發(fā)生變化;當(dāng)所述目標(biāo)控件元素的識(shí)別屬性發(fā)生變化時(shí),對(duì)所述識(shí)別屬性中發(fā)生變化的控件元素屬性進(jìn)行更新,然后基于預(yù)設(shè)識(shí)別策略使用更新后的所述識(shí)別屬性在所述測(cè)試頁(yè)面中識(shí)別所述目標(biāo)控件元素,可以實(shí)現(xiàn)當(dāng)測(cè)試頁(yè)面中的控件元素屬性發(fā)生變化時(shí),自動(dòng)的對(duì)發(fā)生變化的控件元素屬性自動(dòng)進(jìn)行更新,從而在對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試時(shí),即使測(cè)試頁(yè)面中的控件元素屬性發(fā)生變化,仍然能夠?qū)y(cè)試頁(yè)面中的控件元素進(jìn)行正常識(shí)別,可以提高測(cè)試的成功率,降低測(cè)試成本。
[0083]如圖1所示,圖1是根據(jù)一示例性實(shí)施例示出的一種控件元素的識(shí)別方法,該控件元素的識(shí)別方法用于測(cè)試終端中,包括以下步驟:
[0084]在步驟101中,讀取目標(biāo)控件元素的識(shí)別屬性;所述識(shí)別屬性包括多個(gè)用于在測(cè)試頁(yè)面中識(shí)別所述目標(biāo)控件元素的控件元素屬性;
[0085]在步驟102中,檢查所述目標(biāo)控件元素的識(shí)別屬性是否發(fā)生變化;
[0086]在步驟103中,當(dāng)所述目標(biāo)控件元素的識(shí)別屬性發(fā)生變化時(shí),對(duì)所述識(shí)別屬性中發(fā)生變化的控件元素屬性進(jìn)行更新;
[0087]在步驟104中,基于預(yù)設(shè)識(shí)別策略使用更新后的所述識(shí)別屬性在所述測(cè)試頁(yè)面中識(shí)別所述目標(biāo)控件元素。
[0088]上述測(cè)試終端可以包括用于對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試的終端設(shè)備。其中,該終端設(shè)備可以是移動(dòng)終端設(shè)備,也可以服務(wù)器。例如,該測(cè)試終端可以是測(cè)試人員用于對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試的PC終端,或者是用于對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試的測(cè)試服務(wù)器。當(dāng)然,在實(shí)際的應(yīng)用中,上述測(cè)試終端也可以是其它類型的專用測(cè)試設(shè)備,在本公開(kāi)中不進(jìn)行特別限定。
[0089]在本實(shí)施例中,測(cè)試人員在對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試之前,可以預(yù)先編輯用于對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試的測(cè)試用例,并為測(cè)試頁(yè)面中的控件元素分別設(shè)置對(duì)應(yīng)的識(shí)別屬性。
[0090]其中,該識(shí)別屬性中可以包括多個(gè)用于在測(cè)試頁(yè)面中識(shí)別該控件元素的控件元素屬性。例如,測(cè)試人員在設(shè)置識(shí)別屬性時(shí),可以從被測(cè)試頁(yè)面中需要識(shí)別的控件元素的控件元素屬性中,指定多個(gè)控件元素屬性作為識(shí)別屬性,然后將該識(shí)別屬性預(yù)先存儲(chǔ)到第一數(shù)據(jù)庫(kù)中。
[0091]其中,該第一數(shù)據(jù)庫(kù)用于存儲(chǔ)識(shí)別屬性。在第一數(shù)據(jù)庫(kù)中可以保存多個(gè)控件元素的識(shí)別屬性。當(dāng)然,在實(shí)現(xiàn)時(shí),識(shí)別屬性也可以通過(guò)其他方式進(jìn)行存儲(chǔ),比如保存到excel、腳本或者其它可以存儲(chǔ)的設(shè)備中,在本實(shí)施例中不進(jìn)行特別限定。
[0092]當(dāng)測(cè)試終端開(kāi)始對(duì)測(cè)試頁(yè)面進(jìn)行測(cè)試時(shí),可以運(yùn)行測(cè)試人員預(yù)先編輯完成的測(cè)試用例,讀取第一數(shù)據(jù)庫(kù)中存儲(chǔ)的識(shí)別屬性,來(lái)識(shí)別測(cè)試頁(yè)面中的控件元素,然后針對(duì)識(shí)別出的控件元素逐個(gè)進(jìn)行測(cè)試。
[0093]然而,在實(shí)際應(yīng)用中,測(cè)試頁(yè)面中的控件元素的控件元素屬性可能會(huì)發(fā)生變化,一旦第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素屬性發(fā)生變化,測(cè)試終端在運(yùn)行測(cè)試用例,對(duì)測(cè)試頁(yè)面進(jìn)行控件元素識(shí)別時(shí),就可能會(huì)造成元素?zé)o法識(shí)別而導(dǎo)致測(cè)試用例執(zhí)行失敗的情況。
[0094]為避免出現(xiàn)這種情況,本公開(kāi)引入一種識(shí)別屬性的自動(dòng)更新機(jī)制,測(cè)試終端可以對(duì)識(shí)別屬性中的控件元素進(jìn)行周期性的檢查,一旦測(cè)試終端檢查出出識(shí)別屬性發(fā)生變化,可以立即對(duì)識(shí)別屬性中已經(jīng)發(fā)生變化的控件元素進(jìn)行更新,從而可以避免由于控件元素?zé)o法識(shí)別而導(dǎo)致的測(cè)試用例執(zhí)行失敗的情況。
[0095]以下對(duì)上述識(shí)別屬性的自動(dòng)更新機(jī)制進(jìn)行詳細(xì)描述。
[0096]在本實(shí)施例中,對(duì)于第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素屬性,可以由測(cè)試終端進(jìn)行檢查,來(lái)確定第一數(shù)據(jù)中存儲(chǔ)的控件元素屬性是否發(fā)生變化。
[0097]其中,測(cè)試終端在確定第一數(shù)據(jù)中存儲(chǔ)的控件元素屬性是否發(fā)生變化時(shí),可以通過(guò)可以周期性的采集測(cè)試頁(yè)面的控件元素屬性,并將第一數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性與采集到的該測(cè)試頁(yè)面的控件元素屬性進(jìn)行匹配來(lái)實(shí)現(xiàn)。
[0098]例如,在實(shí)現(xiàn)時(shí),測(cè)試終端可以運(yùn)行“爬蟲(chóng)”等網(wǎng)頁(yè)內(nèi)容抓取工具來(lái)周期性的抓取測(cè)試頁(yè)面的源代碼,比如,可以設(shè)置一個(gè)抓取的間隔時(shí)長(zhǎng),并基于該間隔時(shí)長(zhǎng)定時(shí)的進(jìn)行抓取。對(duì)于抓取到的源代碼,測(cè)試終端可以從中獲取該測(cè)試頁(yè)面中的dom節(jié)點(diǎn),然后遍歷獲取到的dom節(jié)點(diǎn),并臨時(shí)保存每個(gè)dom節(jié)點(diǎn)的控件元素屬性。比如,測(cè)試終端臨時(shí)保存的控件元素屬性可以包括 ID、Name、ClassName、Xpath、LinkText、TagName 等屬性值。
[0099]對(duì)于臨時(shí)保存的控件元素屬性,測(cè)試終端可以將其存儲(chǔ)到第二數(shù)據(jù)庫(kù)中。其中,第二數(shù)據(jù)庫(kù)中用于存儲(chǔ)臨時(shí)保存的控件元素屬性,即當(dāng)前測(cè)試頁(yè)面的控件元素屬性。
[0100]當(dāng)將臨時(shí)保存的控件元素屬性存儲(chǔ)到第二數(shù)據(jù)庫(kù)中后,此時(shí)測(cè)試終端可以將第一數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性與第二數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性進(jìn)行匹配,來(lái)確定第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素屬性是否已經(jīng)發(fā)生了變化。
[0101]當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性均能夠在第二數(shù)據(jù)庫(kù)中匹配到對(duì)應(yīng)的控件元素屬性時(shí),則可以確定第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素未發(fā)生變化。等同的,當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中存儲(chǔ)的部分控件元素屬性均無(wú)法在第二數(shù)據(jù)庫(kù)中匹配到對(duì)應(yīng)的控件元素屬性時(shí),則可以確定第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素已經(jīng)發(fā)生變化。
[0102]例如,在實(shí)現(xiàn)時(shí),測(cè)試終端可以從第一數(shù)據(jù)庫(kù)中讀出一個(gè)控件元素屬性,然后將讀出的該控件元素屬性在第二數(shù)據(jù)庫(kù)中進(jìn)行查找,如果在第二數(shù)據(jù)庫(kù)中查找到了唯一對(duì)應(yīng)的一個(gè)控件元素屬性,則表明該控件元素屬性并未發(fā)生變化。相反,如果未查找到對(duì)應(yīng)的控件元素屬性,則表明測(cè)試頁(yè)面可能已經(jīng)發(fā)生更新,該控件元素屬性也可能已經(jīng)發(fā)生了變化,此時(shí)將該控件元素屬性作為識(shí)別屬性已無(wú)法識(shí)別出對(duì)應(yīng)的控件元素。當(dāng)該控件元素屬性查找完成后,測(cè)試終端可以繼續(xù)讀取下一個(gè)控件元素屬性,并按照上述方式繼續(xù)在第二數(shù)據(jù)庫(kù)中進(jìn)行查找,直到將第一數(shù)據(jù)庫(kù)中的控件元素屬性在第二數(shù)據(jù)庫(kù)中查找完成。
[0103]當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中的所有控件元素屬性在第二數(shù)據(jù)庫(kù)中均查找完成后,如果第一數(shù)據(jù)庫(kù)中的部分控件元素屬性,無(wú)法在第二數(shù)據(jù)庫(kù)中匹配到對(duì)應(yīng)的控件元素屬性,則可以確定第一數(shù)據(jù)庫(kù)中存儲(chǔ)的識(shí)別屬性已經(jīng)發(fā)生變化。當(dāng)然,如果第一數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性均能在第二數(shù)據(jù)庫(kù)中查找到唯一對(duì)應(yīng)的控件元素屬性,則可以確定第一數(shù)據(jù)庫(kù)中存儲(chǔ)的識(shí)別屬性未發(fā)生變化。
[0104]其中,值得說(shuō)明的是,測(cè)試終端在將從第一數(shù)據(jù)庫(kù)中讀出的控件元素屬性在第二數(shù)據(jù)庫(kù)中進(jìn)行查找時(shí),有可能出現(xiàn)查找到多個(gè)對(duì)應(yīng)的控件元素屬性的情況。
[0105]例如,對(duì)于第一數(shù)據(jù)庫(kù)中存儲(chǔ)的不具有唯一性的控件元素屬性,比如ClassName,其通常用于指示控件元素的類別,不同的控件元素的ClassName有可能相同,因此當(dāng)測(cè)試終端將從第一數(shù)據(jù)庫(kù)中讀取出的ClassName在第二數(shù)據(jù)庫(kù)中進(jìn)行查找時(shí),可能會(huì)查找到多個(gè)對(duì)應(yīng)的ClassName,此時(shí)雖然查找到的ClassName的取值均相同,然而卻隸屬于不同的控件元素。
[0106]對(duì)于這種情況,測(cè)試終端可以將與該控件元素屬性相關(guān)的控件元素屬性均提取出來(lái),然后做整體匹配,來(lái)確定該控件元素屬性是否發(fā)生變化。其中,與該控件元素屬性相關(guān)的控件元素屬性,可以是與該控件元素隸屬于同一個(gè)控件元素的其它控件元素屬性。
[0107]值得說(shuō)明的是,網(wǎng)頁(yè)的源代碼通常采用基于dom結(jié)構(gòu)的樹(shù)狀分層結(jié)構(gòu),同一個(gè)控件元素的控件元素屬性通常隸屬于該樹(shù)狀結(jié)構(gòu)中的同一個(gè)對(duì)象,或者同一個(gè)分層,即同一個(gè)控件元素的控件元素屬性之間通常存在一定的相關(guān)性,因此在提取與某個(gè)控件元素屬性相關(guān)的控件元素屬性時(shí),可以查找該控件元素所在的對(duì)象或者分層(此時(shí)該對(duì)象或者分層中的其它控件元素屬性即為與該控件元素相同相關(guān)的控件元素屬性),然后提取該對(duì)象或者分層中的其它控件元素屬性即可。
[0108]例如,仍以ClassName為例,雖然不同的控件元素可能具有相同的ClassName,通過(guò)單一的匹配ClassName并不能區(qū)分出不同的控件元素,然而在實(shí)現(xiàn)時(shí),可以將與從第一數(shù)據(jù)庫(kù)中讀出的ClassName,以及與在第二數(shù)據(jù)庫(kù)中查找到的多個(gè)ClassName隸屬于同一個(gè)控件元素的其它控件元素屬性均提取出來(lái),然后進(jìn)行整體匹配,則可以區(qū)分出不同的控件元素。如果通過(guò)整體匹配發(fā)現(xiàn),在第二數(shù)據(jù)庫(kù)中查找的該多個(gè)ClassName與從第一數(shù)據(jù)庫(kù)中讀取到的ClassName隸屬于不同的控件元素,此時(shí)可以確定在第二數(shù)據(jù)庫(kù)中未查找到對(duì)應(yīng)的ClassName,該ClassName可能已經(jīng)發(fā)生了變化??梢?jiàn),通過(guò)這種方式,即使在第二數(shù)據(jù)庫(kù)中查找到了多個(gè)對(duì)應(yīng)的控件元素屬性,仍然能夠正常的確定該控件元素屬性是否已經(jīng)發(fā)生了變化。
[0109]在本實(shí)施例中,當(dāng)測(cè)試終端通過(guò)將第一數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性與第二數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性進(jìn)行匹配,確定出第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的部分控件元素發(fā)生變化后,可以基于第二數(shù)據(jù)庫(kù)中存儲(chǔ)的控件元素屬性對(duì)第一數(shù)據(jù)庫(kù)中存儲(chǔ)的這部分已經(jīng)發(fā)生變化的控件元素屬性進(jìn)行更新。
[0110]如前所述,由于隸屬于同一個(gè)控件元素的控件元素之間存在一定的相關(guān)性,對(duì)于第一數(shù)據(jù)庫(kù)中存儲(chǔ)的任一控件元素的識(shí)別屬性來(lái)說(shuō),該識(shí)別屬性中的控件元素屬性,通常在測(cè)試頁(yè)面的源代碼中會(huì)隸屬于同一個(gè)對(duì)象或者同一個(gè)分層。
[0111]可見(jiàn),如果識(shí)別屬性中的部分控件元素屬性發(fā)生變化,測(cè)試終端可以基于該識(shí)別屬性中未發(fā)生變化的控件元素屬性,反向查找該控件元素所隸屬的對(duì)象或者分層,此時(shí)該對(duì)象或者分層中的控件元素屬性為發(fā)生變化后的控件元素屬性。在這種情況下,測(cè)試終端可以獲取該對(duì)象或者分層中的控件元素屬性,對(duì)第一數(shù)據(jù)庫(kù)中存儲(chǔ)的作為識(shí)別屬性的控件元素屬性進(jìn)行相應(yīng)的更新。
[0112]例如,假設(shè)第一數(shù)據(jù)庫(kù)中存儲(chǔ)的某一控件元素的識(shí)別屬性包括ID,Name,ClassName, Xpath,如果測(cè)試頁(yè)面中該控件元素的ClassName和Xpath屬性發(fā)生了變化,此時(shí)第一數(shù)據(jù)庫(kù)中存儲(chǔ)的該控件元素的ClassName和Xpath均無(wú)法在第二數(shù)據(jù)庫(kù)中查找到。對(duì)于這種情況,由于該控件元素的ID和Name均未發(fā)生變化,因此通過(guò)該控件元素的ID和Name在測(cè)試頁(yè)面的源代碼中可以順利的查找到該控件元素隸屬的對(duì)象或者分層,此時(shí)該對(duì)象或者分層中的控件元素屬性ClassName和Xpath為發(fā)生變化后的屬性值。因此,可以利用該對(duì)象或者分層中的ClassName和Xpath對(duì)第一數(shù)據(jù)庫(kù)中存儲(chǔ)的ClassName和Xpath進(jìn)行更新。可見(jiàn),通過(guò)這種方式,當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中的部分控件元素發(fā)生變化后,通過(guò)控件元素之間的相關(guān)性,可以獲取到第二數(shù)據(jù)庫(kù)中與這部分發(fā)生變化的控件元素屬性匹配的控件元素屬性,從而可以根據(jù)獲取的這些控件元素屬性對(duì)第一數(shù)據(jù)庫(kù)中發(fā)生變化的控件元素進(jìn)行更新,以保持第一數(shù)據(jù)中存儲(chǔ)的作為識(shí)別屬性的控件元素屬性均為最新的控件元素屬性。
[0113]當(dāng)然,在實(shí)際應(yīng)用中,如果測(cè)試終端通過(guò)將第一數(shù)據(jù)庫(kù)中存儲(chǔ)的控件
當(dāng)前第2頁(yè)1 2 3 4 5 6 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永年县| 福鼎市| 疏勒县| 怀柔区| 杭锦后旗| 金山区| 富蕴县| 睢宁县| 来凤县| 彰化县| 商城县| 肇庆市| 楚雄市| 华安县| 芜湖市| 曲沃县| 衢州市| 察隅县| 东丰县| 通江县| 根河市| 杭州市| 长沙县| 聂拉木县| 荃湾区| 新河县| 阳城县| 平泉县| 乐亭县| 西藏| 武定县| 岑巩县| 安化县| 乌兰察布市| 正宁县| 分宜县| 长沙市| 威宁| 九寨沟县| 临泽县| 正阳县|