国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

QTP自動化測試對象庫的設(shè)計(jì)、研究和實(shí)現(xiàn)

2014-02-12 21:41:08
關(guān)鍵詞:庫中腳本名稱

(天津商務(wù)職業(yè)學(xué)院,天津 300221)

一、QTP簡介

目前軟件的自動化測試,由于其高效率、低成本的特點(diǎn),在多數(shù)的軟件企業(yè)中越來越受到重視。自動化測試在一些傳統(tǒng)的軟件企業(yè)的軟件生命周期中沒有占到太大的比重,但是對于在一些對軟件質(zhì)量要求較高,發(fā)布版本較為頻繁的項(xiàng)目中,使用了自動化測試用例與否,自動化測試用例所占的比率,是關(guān)系項(xiàng)目成敗的一個(gè)重要因素。

QTP(Quick Test Professional)是眾多自動化測試軟件的較為優(yōu)秀的一個(gè),目前很多軟件企業(yè)都在使用。QTP是一種基于GUI對象技術(shù)實(shí)現(xiàn)的工具,因此QTP的自動化腳本實(shí)現(xiàn)的功能是對應(yīng)用程序界面的操作,即多程序中對象的操作。因此,界面上的操作對象能否準(zhǔn)確的被識別,關(guān)系到自動化測試能否正常自動執(zhí)行。對象庫指的是自動化測試項(xiàng)目中被測試對象的集合,對象庫在QTP中的地位尤為重要。QTP是的實(shí)現(xiàn)原理是查找應(yīng)用程序界面或Web頁面中的控件ID及屬性判斷與測試對象是否匹配。QTP對于使用不同語言和平臺編寫的程序會采取不同的對象識別方法來識別測試對象,但這些方法都有一個(gè)共同點(diǎn),那就是通過對比測試對象的屬性來判斷區(qū)分對象。

二、QTP對象庫的概念

QTP中的對象可以分為兩種,一種是QTP的測試對象(Test Object),測試對象一般在第一次使用QTP錄制腳本時(shí)會自動保存在QTP的本地對象庫中;另外一種是應(yīng)用程序界面的實(shí)際對象(Runtime Object),這些實(shí)際對象是構(gòu)成測試應(yīng)用程序?qū)嶓w的重要部分。

在QTP的實(shí)際使用過程中,QTP腳本對對象的操作步驟有如下三步:

1.根據(jù)腳本中對象名稱找到對象庫中的對象,即Test Object的對象。

2.根據(jù)找到的對象中的關(guān)鍵屬性查找Runtime Object中的對象,也就是在程序中尋找需要進(jìn)行操作的對象。

3.如果在步驟(1)和步驟(2)中查找到的對象相互匹配,那么QTP就會對該對象進(jìn)行操作,否則會提示對象出錯,不對此對象進(jìn)行操作。

QTP對象庫的就是用來識別測試對象的,因此QTP腳本的核心就是對象庫,若沒有對象庫或?qū)ο髱旃芾砘靵y,QTP腳本就失去了自動化測試的意義。在實(shí)際的編程過程中,是沒有對象庫概念的,實(shí)際上是把對象庫中的對象分散到QTP腳本中去,測試執(zhí)行中對象識別的原理沒有任何變換。

能否有一個(gè)良好的對對象庫的設(shè)計(jì)、維護(hù)和管理,不僅關(guān)系到自動化測試的效率,還有可能關(guān)系到自動化測試的成敗。

三、創(chuàng)建對象庫

QTP自動化測試腳本中的對象庫分為兩個(gè)部分,一部分稱作本地對象庫,即Local Object,一般指的是在第一次錄制腳本時(shí),QTP自動生成的對象庫,QTP會保存在本地對象庫中;另外一部分稱作共享對象庫,即Share Object。

本地對象庫中的對象作用范圍僅限于當(dāng)前QTP腳本的Test和Action,如果其他QTP腳本的Test和Action也需要使用這些對象,那就必須在其他腳本中再添加一次,這樣每次創(chuàng)建一個(gè)新Test和Action時(shí)都需要添加這些對象,這樣會大大降低測試效率。因此,需要有一種方法能將每次錄制腳本時(shí)產(chǎn)生的本地對象導(dǎo)出到一個(gè)專門的文件中,作為一個(gè)共享文件給其他Test和Action使用,共享對象庫就應(yīng)運(yùn)而生。有了共享對象庫后,其他的Test和Action使用這些對象時(shí),可直接引用該對象庫即可。

當(dāng)一個(gè)對象庫文件文件中的一些對象需進(jìn)行更改時(shí),只需要修改這個(gè)對象庫文件即可,并不需要對使用這個(gè)對象庫文件的所有QTP腳本進(jìn)行更改。這樣更方便維護(hù),最大限度的提高了效率;另外,一旦一個(gè)對象庫創(chuàng)建完畢,若被測對象的功能有了變化,仍然需要對這些對象庫文件進(jìn)行更新維護(hù)。對象庫一般分為三層:即Browser層、Page層和Control層。在某些特殊情況下,例如Web頁面存在Frame框架時(shí),對象庫可能存在四層或者更多層。

由于QTP錄制腳本時(shí)自動捕捉到的對象名稱不規(guī)范且易重復(fù),造成維護(hù)和使用不便,因此,在捕捉完對象后,建議對所有的對象進(jìn)行重命名,命名規(guī)則如下:

1.名稱應(yīng)與所對應(yīng)的對象相關(guān),看到名稱即可知道對象的作用;

2.如果一個(gè)對象中包含動作,則對象名稱應(yīng)為:動作名+對象名;

3.必須是英文名,采用駝峰標(biāo)識格式書寫;

4.名稱不包含特殊符號,例如“/”、“,”、“@”等;

5.名稱應(yīng)不超過15字符。

四、管理對象庫

對于使用QTP做為自動化測試工具的測試項(xiàng)目來說,其對象庫的管理在整個(gè)自動化測試過程中,占有非常重要的地位。特別是對于一個(gè)大型的應(yīng)用系統(tǒng),其界面的對象多而雜,一個(gè)統(tǒng)一、有序的對象倉庫非常有利于腳本的快速開發(fā),以及團(tuán)隊(duì)成員間的協(xié)作。 對于一個(gè)對象庫,不允許同時(shí)有多個(gè)人維護(hù)一個(gè)對象,同樣也不建議一些對象處于無人維護(hù)的狀態(tài)。在某些特殊的場景下,需要多個(gè)人同時(shí)維護(hù)同一個(gè)對象庫,這只能通過讓他們都進(jìn)行維護(hù),各自保存一份副本,然后在后期進(jìn)行比較合并即可。對比兩個(gè)對象庫文件,常用的對比工具為:BeyondCompare。

在BeyondCompare中,左側(cè)和右側(cè)分別加載了兩個(gè)對象庫文件,兩個(gè)文件地位相等,無主次關(guān)系。對比順序?yàn)榘凑諆蓚€(gè)對象庫文件的樹形節(jié)點(diǎn)展開,逐個(gè)節(jié)點(diǎn)逐層對比,如先對比第一層Browser層,若Browser層的兩個(gè)名稱和屬性一致,則再對比Page層,以此類推。當(dāng)?shù)竭_(dá)一個(gè)節(jié)點(diǎn)的末梢時(shí),再判斷對象庫文件中的對象名稱和屬性是否一致,根據(jù)如下幾種情況進(jìn)行分析:

1.當(dāng)一個(gè)對象的名稱和屬性對比結(jié)果一致時(shí),可判斷兩個(gè)對象庫中的對象是相同的。

2.若在一個(gè)文件的對象結(jié)構(gòu)下包含一個(gè)對象,而另一個(gè)文件中沒有該對象,則認(rèn)為后者文件中此對象缺失。

3.若對象名稱不同,但是對象結(jié)構(gòu)和屬性均一致,則認(rèn)為這兩個(gè)對象為類似對象。該現(xiàn)象出現(xiàn)的原因可能是在創(chuàng)建對象庫時(shí)發(fā)生了命名錯誤導(dǎo)致。

4.若兩個(gè)對象名稱和結(jié)構(gòu)均一致,但是對象屬性不同,則可認(rèn)為這兩個(gè)對象非同一對象。

5.若兩個(gè)對象的名稱和屬性均一致,但是對象結(jié)構(gòu)不相同,此類對比不做判斷。

對象對比完成后,測試人員可根據(jù)對比結(jié)果,結(jié)合實(shí)際情況進(jìn)行分析,重新修改對象庫文件,這樣才能達(dá)到對象庫唯一性的目的。

但是,若對比的兩個(gè)對象差異很大,此時(shí)單純使用比較工具對比后進(jìn)行人工維護(hù)會極大程度降低管理對象庫的效率。因此需要引入另一款對象合并工具。

QTP提供了一個(gè)Reporsitories Merge Utility,可以實(shí)現(xiàn)對象庫的合并功能。與比較工具不同的是,若對對象庫進(jìn)行合并,就需要設(shè)定對象的主次關(guān)系,在一般情形下,主對象庫一般選擇為主干對象庫,而從對象庫往往為分支對象庫,這與版本控制原理相同。工具會根據(jù)一些規(guī)則對對象庫進(jìn)行合并:

(1)若在主對象庫中存在一個(gè)對象,在從對象庫中沒有,則不會合并。

(2)若在從對象庫中存在一個(gè)對象,在主對象庫中沒有,則將該對象合并入主對象庫。

(3)若在主從對象庫中對象的名稱和屬性不同,則會有測試人員判斷是否何如主對象庫。

Reporsitories Merge Utility對于有多個(gè)節(jié)點(diǎn)相同的兩個(gè)對象庫,進(jìn)行合并操作的時(shí)候經(jīng)常會出現(xiàn)主從對象庫中對象的名稱和屬性不同情況,因此,在測試的時(shí)候,會出現(xiàn)節(jié)點(diǎn)沒有自動添加進(jìn)來,需要手動添加的情況。不過對于其他情況,還是可以做到添加新對象到統(tǒng)一的對象庫中,把多人開發(fā)的結(jié)果集中到一起管理。

五、結(jié)束語

綜上所述,若選擇合適的對象庫技術(shù),在實(shí)際的測試項(xiàng)目中能夠?qū)ο筮M(jìn)行高效、合理的管理,這不僅能夠提升自動化測試的效率,還能夠最大限度地降低測試成本。

參考文獻(xiàn):

[1]陳能技.軟件自動化測試成功之道[M].北京:人民郵電出版社,2010.

[2]E測試工作室.QTP項(xiàng)目應(yīng)用與進(jìn)階[M].北京:化學(xué)工業(yè)出版社,2009.

[3]陸璐,王柏勇.軟件自動化測試技術(shù)[M].北京:清華大學(xué)出版社,2006.

猜你喜歡
庫中腳本名稱
酒駕
動物城堡
動物城堡
安奇奇與小cool 龍(第二回)
數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
電子測試(2018年14期)2018-09-26 06:04:24
快樂假期
智能盤庫在自動化立體庫中的探索和應(yīng)用
滬港通一周成交概況
滬港通一周成交概況
滬港通一周成交概況
德惠市| 万安县| 江孜县| 镶黄旗| 土默特左旗| 林州市| 精河县| 兰考县| 车致| 固始县| 赤壁市| 榕江县| 延吉市| 黄大仙区| 许昌县| 稻城县| 尼勒克县| 广灵县| 永和县| 定兴县| 文水县| 通道| 江达县| 中宁县| 肇东市| 蓬安县| 邯郸县| 仁布县| 赤壁市| 辽宁省| 凌云县| 砀山县| 攀枝花市| 宁武县| 麻城市| 收藏| 友谊县| 临颍县| 宁乡县| 万载县| 临西县|