QTP,全稱為Quick Test Professional,它與WinRunner同為MI公司開發的功能強大的功能測試工具。從時間上來看,WinRunner在1995年便已經推出,遠早于QTP,而QTP直到2002年才正式推出。從MI公司提供的一些官方資料來看,雖然他們宣稱暫時不準備淘汰WinRunner,但他們的宣傳資料上又明確表示,QTP已經具備了WinRunner中幾乎所有的特性,同時具備了一些獨有的特性,并且總體來說,使用更簡單、更易擴展和維護,推薦新用戶使用QTP,并建議已使用WinRunner的老客戶逐漸實現轉換。由此看來,MI公司實際上已經有使用QTP逐步取代WinRunner的計劃。更重要的是,QTP對J2EE,.NET架構的應用程序支持得比WinRunner要好(從我實際的試用過程中,也感到確實是如此),因此我認為,從我們公司的實際情況出發,針對產品綜合部今后將逐步開展自動化測試的計劃,QTP應該是一個比較好的選擇。
不論是WinnRunner還是QTP,它們都是功能十分強大的測試工具,加上目前國內關于測試工具的培訓和文檔資料,實在是少之又少,因此要完全了解和掌握它們,絕不是一朝一夕的事情。在這里我只能就目前對它們的理解程度粗略地介紹一下二者的兩點主要不同之處。
1、? ?? ? 使用的腳本語言不同。WinRunner使用的是TSL語言,這是MI公司獨有的語言,有特殊性,因此在學習上會有一定難度,不過好在它與C 語言比較類似,如果測試人員有一定的C語言編程基礎,會相對容易一些。而QTP使用的則是微軟的VBScript語言,比較通用,而且也相對簡單易學。從語言上的比較上來看,我個人覺得在編程能力上,WinRunner更勝一籌,因為它擁有相當豐富的C語言函數庫,而相對而言,QTP則更大眾化,它面向的是沒有太多技術背景和編程經驗的測試人員。
2、? ?? ?QTP8.0具有的一大特性:關鍵字驅動測試(keyword-driven testing)。它的具體操作方法我將有另外的文檔詳細說明,這里只是簡單介紹一下。通過“關鍵字驅動測試”,測試人員不需要“錄制”測試腳本,而可以改成“設計”測試腳本。即:先將應用程序的GUI對象添加到QTP的對象倉庫(Object Repository)中,然后針對每一個需要操作到的對象設計每個測試步驟。我個人感覺,這的確是一個很酷的特性,它使我們可以不必實際去操作應用程序,就可以編寫出測試腳本,這樣做既節省了時間,而且還有一個更大的好處就是可以在應用程序還沒有設計完成,或者由于出錯無法正常執行的時候仍然可以編寫我們的測試腳本。應用程序只需要有使用界面(UI),而不必實際運行,測試人員就可以開始建立測試腳本,為我們實施自動化測試贏得更充足的時間。而在 WinRunner中,雖然也可以采用先學習對象,然后編寫代碼的方式來完成測試腳本,但這樣做要求測試人員對TSL語言比較熟悉才做得到,遠不如QTP 來得簡單。在實際的操作中我還發現,有些時候采用錄制的方法無法捕獲對應用程序的操作,此時改用關鍵字驅動測試卻可以收到不錯的效果。
3、相對WinRunner,QTP還具有很多優點,例如“數據表整合”,“Active Screen”,“point and click”,更容易參數化等等,但對于這幾點我還沒有深入的做過比較,如果今后我對此有了更多的體會和了解,我將再作整理。
不論是WinnRunner還是QTP,它們都是功能十分強大的測試工具,加上目前國內關于測試工具的培訓和文檔資料,實在是少之又少,因此要完全了解和掌握它們,絕不是一朝一夕的事情。在這里我只能就目前對它們的理解程度粗略地介紹一下二者的兩點主要不同之處。
1、? ?? ? 使用的腳本語言不同。WinRunner使用的是TSL語言,這是MI公司獨有的語言,有特殊性,因此在學習上會有一定難度,不過好在它與C 語言比較類似,如果測試人員有一定的C語言編程基礎,會相對容易一些。而QTP使用的則是微軟的VBScript語言,比較通用,而且也相對簡單易學。從語言上的比較上來看,我個人覺得在編程能力上,WinRunner更勝一籌,因為它擁有相當豐富的C語言函數庫,而相對而言,QTP則更大眾化,它面向的是沒有太多技術背景和編程經驗的測試人員。
2、? ?? ?QTP8.0具有的一大特性:關鍵字驅動測試(keyword-driven testing)。它的具體操作方法我將有另外的文檔詳細說明,這里只是簡單介紹一下。通過“關鍵字驅動測試”,測試人員不需要“錄制”測試腳本,而可以改成“設計”測試腳本。即:先將應用程序的GUI對象添加到QTP的對象倉庫(Object Repository)中,然后針對每一個需要操作到的對象設計每個測試步驟。我個人感覺,這的確是一個很酷的特性,它使我們可以不必實際去操作應用程序,就可以編寫出測試腳本,這樣做既節省了時間,而且還有一個更大的好處就是可以在應用程序還沒有設計完成,或者由于出錯無法正常執行的時候仍然可以編寫我們的測試腳本。應用程序只需要有使用界面(UI),而不必實際運行,測試人員就可以開始建立測試腳本,為我們實施自動化測試贏得更充足的時間。而在 WinRunner中,雖然也可以采用先學習對象,然后編寫代碼的方式來完成測試腳本,但這樣做要求測試人員對TSL語言比較熟悉才做得到,遠不如QTP 來得簡單。在實際的操作中我還發現,有些時候采用錄制的方法無法捕獲對應用程序的操作,此時改用關鍵字驅動測試卻可以收到不錯的效果。
3、相對WinRunner,QTP還具有很多優點,例如“數據表整合”,“Active Screen”,“point and click”,更容易參數化等等,但對于這幾點我還沒有深入的做過比較,如果今后我對此有了更多的體會和了解,我將再作整理。
GOOD
我這篇文章沒有提高QTP,貶低Winrunner的意思。
這二者應該是各有優缺點,只要能熟練掌握其中的一種,是可以較好地實現自動化測試的。而且,這二者都是同一家公司的產品,在很多地方是相通的,并不互相排斥。
一傳十 十傳百的說法總是不足為信的,呵呵
好早的時候寫的了。
現在好象HP已經放棄對winrunner的支持了,全力發展QTP。。
以后沒有必要對這二者再做比較了,嘿嘿。。。