<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            QTP對象庫管理和編寫(xiě)腳本

            發(fā)布: 2011-4-25 09:28 | 作者: 不詳 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 267次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

              QTP對象庫管理和編寫(xiě)腳本  軟件測試

              使用QTP錄制一些腳本再回放,這不難,難的是一個(gè)測試團隊共同開(kāi)發(fā)腳本,并能不斷的完善腳本,創(chuàng )建一個(gè)結構化的自動(dòng)測試腳本體系。這篇文章重點(diǎn)討論的是,如何管理QTP的對象倉庫,以便能讓對象倉庫易于維護、管理。

              如果只是簡(jiǎn)單的錄制、回放腳本,可能感覺(jué)不到對象倉庫的存在。但是要做到QTP腳本的結構化管理,就必須對QTP的對象倉庫進(jìn)行嚴格的管理。

              在實(shí)際工作中我們發(fā)現,QTP腳本做好后絕不是一成不變的,而是隨著(zhù)需求和頁(yè)面的變化,需要不斷修改的。如果每次修改腳本的時(shí)候,都重新錄制腳本,成本極高,所以最有效的方法是,先修改對象倉庫,然后修改腳本,以適應新的系統。

              如果對象倉庫里的管理比較混亂的話(huà),修改腳本時(shí)就會(huì )遭受地獄般的痛苦,比如n多對象全堆在一起根本理不出頭緒,對象的命名不知所云,找不到自己需要的對象等等。下面我們講一下如何管理對象倉庫,避免這些問(wèn)題。

              先介紹一下對象倉庫中的對象層次,主要分為3個(gè)層次

              1、Browser瀏覽器

              2、Page頁(yè)面

              3、頁(yè)面中的各種對象,比如Link、Button

              Browser對應的是已經(jīng)打開(kāi)的IE窗口對象,Page對應的是不同的網(wǎng)頁(yè),比如登錄首頁(yè)是一個(gè)Page,登錄成功后跳轉到我的淘寶頁(yè)面,這就是另一個(gè)Page。而頁(yè)面中的各種對象就比較好理解了,圖片、按鈕、鏈接都是對象。

              了解了對象層次,我們再講一下命名。如果QTP在錄制過(guò)程中自動(dòng)記錄對象,命名是非常亂的,缺乏邏輯性,經(jīng)?吹揭粋(gè)Browser下面有n多“淘寶網(wǎng)_1”、“淘寶網(wǎng)_2”這樣的Page,這對我們以后的管理非常不利。與其修改這些命名,我們不如用一種思路更清晰的方式,手動(dòng)添加對象。

              QTP中有一個(gè)工具實(shí)現了對象倉庫的管理,Object Repository Manager,我們用它來(lái)添加對象。操作很簡(jiǎn)單,直接點(diǎn)擊toolbar中的Add Object按鈕,然后在web上點(diǎn)擊你需要添加的對象即可,添加過(guò)后再修改名稱(chēng)。更新對象也比較簡(jiǎn)單,先選中需要更新的對象,然后點(diǎn)擊Update from Application即可。

              這項工作其實(shí)可以在系統頁(yè)面出來(lái)以后就開(kāi)始做,我們一邊進(jìn)行手工測試,一邊把對象添加起來(lái),為后面的腳本開(kāi)發(fā)做準備。這時(shí)暫時(shí)不制作腳本。

              總結一下,對象倉庫的管理要滿(mǎn)足以下幾個(gè)原則:

              1、每個(gè)Browser下的Page不要太多,最好不要超過(guò)5個(gè),即使我們的系統都在同一個(gè)IE窗口下(沒(méi)有彈出新IE),我們也可以分幾個(gè)Browser管理,把業(yè)務(wù)上關(guān)聯(lián)較強的幾個(gè)Page放在一個(gè)Browser下;

              2、每個(gè)對象都按照所代表的業(yè)務(wù)屬性命名,最好用中文,不要出現一些難理解的字符,比如abc這樣的。

              3、盡量避免在一個(gè)tsr文件中堆放過(guò)多的對象,最好根據業(yè)務(wù),把對象分為幾個(gè)tsr文件保存。這里沒(méi)有統一標準,以每個(gè)tsr文件結構清晰為宜。

              現在我們完成了對象倉庫的整理,好,可以開(kāi)始制作腳本了?墒菃(wèn)題來(lái)了,錄制腳本的時(shí)候,QTP能不能自動(dòng)和這些對象對應上呢?QTP會(huì )不會(huì )又自動(dòng)添加一堆對象進(jìn)來(lái)呢?別擔心,不會(huì )出現這個(gè)問(wèn)題,因為我們將進(jìn)行一場(chǎng)腳本編寫(xiě)的革命:放棄“錄制腳本”這種傳統的腳本編寫(xiě)方法,完全手工編寫(xiě)腳本

              我們有了一套結構清楚的對象倉庫以后,我們就可以輕松的手工編寫(xiě)QTP腳本了。

              這里可能有人會(huì )問(wèn),QTP的錄制功能不是很強大么,為什么還要自己手寫(xiě)腳本,這樣是不是更麻煩。我先說(shuō)一下我對手寫(xiě)測試腳本的感受,供大家參考。首先,如果我們整理好對象倉庫,再錄制腳本,QTP就會(huì )又自動(dòng)生成一批新的對象,命名很亂,再修改替換太費事;其次,錄制腳本的過(guò)程如果出現問(wèn)題,再重來(lái),很麻煩;最后,也是最重要的,手寫(xiě)腳本時(shí)思路非常清楚,而且寫(xiě)完再運行,感覺(jué)非常好,呵呵。

              與編寫(xiě)腳本相比,腳本的維護工作同樣很重要,而且維護腳本一般都是直接修改腳本,并不會(huì )去重新錄制,所以開(kāi)始的時(shí)候就用手寫(xiě)的方式,維護起來(lái)就會(huì )更輕松。

              編寫(xiě)QTP腳本其實(shí)是比較簡(jiǎn)單、快速的。我們首先創(chuàng )建一個(gè)Test,然后把所有相關(guān)對象倉庫的tsr文件和vbs文件添加到這個(gè)Test里面,下面就可以開(kāi)始寫(xiě)了。寫(xiě)腳本大致會(huì )遇到這么幾種情況:

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            21/212>

            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>