用QTP做自動化測試過程剖析

發表于:2009-04-10來源:作者:點擊數: 標簽:自動化qtpQTP剖析
在我看來,實現 自動化測試 有兩種方式:一、對于特定的系統錄制或者編寫腳本,實現特定系統的自動化測試。二、自己編寫 軟件測試工具 ,對于同一類的軟件進行測試。這種軟件的基本功能是,抓取被測對象,根據抓取的對象生成 測試腳本 。這個適合于需要測試

在我看來,實現自動化測試有兩種方式:一、對于特定的系統錄制或者編寫腳本,實現特定系統的自動化測試。二、自己編寫軟件測試工具,對于同一類的軟件進行測試。這種軟件的基本功能是,抓取被測對象,根據抓取的對象生成測試腳本。這個適合于需要測試的多個項目具有大致相同的特征,比如說,要測試的項目都是管理信息系統,項目中大部分功能都類似。都是新增、修改、刪除。功能相似的情況下,要進行測試的范圍也大致相同。比如對于新增,都要測試超長啊,無效的數據。這種情況下,編寫一個通用的工具,制定公共的測試點,然后根據被測對象生成測試腳本是比較可取的方法。

  下面我以 通過QTP工具實現對www.alipay.com中交易管理的自動化測試的過程為例子,說明一下我是如何做的及碰到的哪些問題。

  首先說下被測系統的背景知識。www.alipay.com是個支付平臺,買家和賣家在這里完成完整的交易支付過程。

  下面我從幾個方面來說一下實施自動化測試的一個大體的過程,當然這只是最基礎的一部分,后面要做的工作還很多。

  首先,對所測的業務系統進行分析,抽取公共操作,定義接口參數。目前我簡單分析了幾個部分:
創建交易;買家付款;賣家發貨;買家確認收貨;買家發起退款_未收貨;賣家同意退款;買家發起退款_已收貨;賣家拒絕退款_買家已收貨;買家修改退款協議_已收貨;賣家同意退款_買家已收貨;買家發貨;賣家確認收貨退款;

  其次,確定實現方式,也就是技術框架和細節。包括:

所有這些接口的調用方式;變量及函數的存放位置[位置有外部的vbx文件和QTP自己的文件]。 在QTP中,不支持調用腳本,只能調用腳本中的某個Action。所以最好把這些基礎性的動作放在一個腳本文件中。 在QTP中,調用Action傳參數可以通過兩種方法實現:1、利用Action本身的參數。在Acition的屬性中,可以定義輸入輸出參數。2、參數化輸入數據。這兩種方法都很容易的。 在別的腳本中調用其他腳本的Action時,還需要兩個腳本共享對象庫,被調用的Action還需要設置為Reusable。 最后,所有的技術細節都準備好后,就可以開始錄制腳本了。

 錄制過程中,千萬要記得把一些組件或者頁面重命名為有意義的,這樣在以后維護的時候可以更清楚一些。否則以后你回對著N個相同的頁面名稱加上“_n"這樣的后綴的對象不知所措。

  由于第一次接觸QTP,工作過程中碰到了一些問題,把重要的列舉如下:

  1、如何在一個腳本中調用另外的腳本?解決辦法:在QTP中腳本無法重復調用,只能調用腳本中的Action。如果一個腳本中的某個Action需要被外部調用,需要設置:a、腳本的屬性為Reusable。b、設置腳本的object repository type 為 shared,這樣,此腳本的對象可以被別的腳本使用。

  2、登陸時用戶名和密碼的參數化問題:由于系統有兩種用戶,經常需要用不同的用戶登陸,如果是把用戶名和密碼做成參數化,需要手工頻繁修改參數。最后考慮把登陸部分放到外部文件中,以函數的形式調用。

  3、如何只運行指定的Action?我把所有的交易動作都放在了一個腳本里,每個動作是一個Action。這樣需要組合不同的Action完成不同的業務,需要運行指定的Action?,F在還沒有找到方法。暫時采用新建一個運行腳本,調用基礎腳本里的各種操作完成業務。

  4、一個Action的輸入參數依賴于另一個Action的輸出。這個在參數的傳遞上用什么來實現呢?用腳本里的全局參數來傳遞。

  5、把登陸函數寫到外部vbx腳本后,發現驗證點失敗,但是用肉眼觀察是驗證點是可以成功的。說明vbx不支持驗證點嗎?此問題尚未解決。

  6、周五用自動化腳本進行CTU測試,發現用腳本順序執行創建交易、買家付款、賣家發貨交易后,沒有記錄到第一個動作和第三個動作的MAC地址,交換買家賣家身份重新執行還是這個情況。這個初步估計是腳本的問題,目前尚未解決。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97