2009-12-16 98 views
6

我正在嘗試使用QTP進行一些webapp ui自動化測試,我想知道人們通常如何編寫他們的QTP測試。你是否一起使用對象圖,描述性編程,組合或其他方式?任何小代碼示例將不勝感激,謝謝你如何編寫你的QTP測試?

回答

8

這是我的建議。

1)構建您的測試自動化需求矩陣。 您可以使用樣品從我的博客

http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/

http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/

http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/

http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/

http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/

2)選擇您automation approach

3)根據您選擇

注意的方法寫你的測試腳本。 QTP版本庫方式或描述性編程屬於前端功能測試自動化的GUI識別部分。它們在穩健性和維護方面很重要。技術上,它幾乎是一樣的。在這兩種情況下,您都應該很好地理解GUI識別概念,否則無論採用何種方法都會遇到問題。

  • 您可以將GUI對象識別屬性存儲爲類似XML的數據結構,並將該記錄映射爲類似英語的名稱。無論何時原始對象的屬性發生更改,都會更新存儲庫中的記錄,而代碼仍然引用映射的名稱。
  • 或者您可以通過直接將相同的識別屬性放入函數調用來解決GUI對象。每當原始對象的屬性發生變化時,您都必須更改代碼。但是,您不必隨腳本一起維護額外的文件。

一個好的框架應該由在對象參考水平下操作同時支持GUI映射和描述編程符號。即你應該保持對象識別和對象交互任務分開。

注意,根據上下文描述編程符號可能腳本的放緩性能和它總是要求額外的維護工作,而在其他情況下,使用對象存儲庫只可能導致對象的描述的不必要的重複或者可能會限制動態更改GUI的識別。
我示出了下面的文章中提出以上幾點: A little QTP performance test: Object Repository vs. Descriptive Programming

直代碼示例(對於實際自動化我推薦GUI Function Wrapping)。

描述性編程 - 按物理描述屬性尋址對象。通過映射GUI名稱

Browser("Select Profile").Page("Select Profile").Link("Guest").Click 

Dim sProfile 
sProfile = "Guest" 

Set objWebParent = Browser("title:=Select Profile").Page("title:=Select Profile") 
Set objWebObject = objWebParent.Link("text:="&sProfile) 
boolRC = objWebObject.Exist(0) 
If Not boolRC Then 
'error-handling 
End If 
objWebObject.Click 

尋址對象謝謝你,
阿爾伯特Gareev
http://automation-beyond.com/

+1

感謝您爲您的文章偉業。從我收集到的信息來看,如果必要的話,將提出一種混合的對象映射方法和描述性編程方法?順便說一下,不錯的網站,我不得不說魯棒性是UI自動化中最煩人的部分。 – 2009-12-17 18:06:07

+0

嗨喬希。是的,我強烈建議使用接收對象引用的庫函數作爲參數。當從外部調用時,你將有一個自由定義對象和描述的對象。是的,讓你的腳本變得非常有挑戰性,但它應該是框架的一部分,而不是測試邏輯。 – 2009-12-21 21:09:15

+0

阿爾伯特博文中的「自動化方法」鏈接是我見過的關於這個主題的最好的總結之一。好東西。 – TheBlastOne 2010-06-18 08:01:39

1

我知道我遲到了,您必須已經有你在找什麼因爲,但我想提供我的投入,以及訪問此主題的任何人。

我一般不會使用OR,除非我遇到一個描述性編程是不行的環境。就在最近,我使用了一個大型機前端GUI應用程序,它絕對沒有對象的命名約定。如果您選擇對這樣的應用程序使用描述性編程,則使用其對象的唯一方法是通過索引或位置序號標識符,這不是考慮每個窗格中100個對象的最佳操作過程。

所以,你的問題的答案真的取決於環境和你的OR和DP的經驗。在我的工作中,大多數與我合作過的人以及在線社區都傾向於在可行的情況下使用描述性編程。但是,我也看到人們用OR來創造奇蹟。

我有幾個代碼示例,但不幸的是,它們處理描述性編程。例如,有關創建模塊化的VBScript類來劃分應用程序的功能集成到小型管理的組件下面的文章會談:

http://relevantcodes.com/qtp-using-classes-as-test-modules-i/

同樣,本文介紹了規劃如何描述可以用來驗證目標的多重性,通過一個對象碼單塊:

http://relevantcodes.com/qtp-verify-multiple-object-properties-an-elegant-approach/

此外,演示框架也可供您參考這裏:

http://relevantcodes.com/relevantcodes1one-qtp-automation-framework/

該框架完全基於描述性編程原則構建,但在下一版本中,將添加一些功能以使用戶也可以使用OR。

謝謝

Anshoo阿羅拉

(感謝鏈接到原創文章,Motti)

+0

我認爲在可能的情況下,DP將是選擇的方法。我只是不太確定QTPs系統是否真的很好。目前我使用TestPartner並完全避免其OR系統。謝謝你的信息Anshoo。 – 2010-01-20 20:29:57

+0

嗨阿羅拉,您的網站不開放 – 2017-07-20 07:08:34