TestObject.find 方法是 Functional Tester 的強大部分,可以使自動化的腳本更容易維護。本篇介紹性的文章向您展示了將 TestObject.find 引入到您的自動化框架中的簡單方法。
TestObject.find
方法是一個 Java™ 方法,IBM® Rational® Functional Tester (RFT) 工具使用它在運行時,動態地在被測應用程序(application under test,AUT)中定位 TestObject。通過使用它,您可以避免不得不記錄動作以向對象地圖(對象地圖(Object Map) ) 中添加 TestObject 對象。
被映射的對象使用被存儲的、靜態的、識別屬性和對象層次來驗證,在回放過程中腳本使用了正確的控件。雖然使用被記錄的對象進行對象識別速度很快,但是更新屬性卻是費時的,特別是當您需要將對象的屬性權值,或者文本屬性變更為正則表達式(regular expression,Regex)值時。find 方法向您提供一種能夠排除大多數來自于對象地圖(對象地圖(Object Map) ) 的被記錄控件的選項。
TestObject.find
方法在 RFT 的 6.X 版本中更加健壯?,F在,性能幾乎與使用映射對象的性能相同。
使用 find 取代對象地圖(對象地圖(Object Map) ) 的最好的原因中的一個是您可以很容易地變更存儲在 Java 或屬性文件中的控件識別屬性。其優點是不必變更存儲在對象地圖(對象地圖(Object Map) ) 中的識別屬性,這樣您就避免了使用對象地圖(對象地圖(Object Map) ) UI 做變更,或重新記錄對象來進行更新的更加冗長且費時的方法。
要了解 find 方法以及它到映射對象的關系,考慮可能會改變的應用程序中的控件,因而您需要更新對象地圖(對象地圖(Object Map) )。有些簡單的控件方法,例如一個應用程序可能在版本更新過程中會變更其用戶命令按鈕的標簽。例如,也許您的 AUT 中包含一個對話框,這個對話框中含有一個標簽為Open的按鈕。在以前的版本中,按鈕的標簽為OK。對于下一個版本,按鈕的標簽又變回了Open,但會有一個標簽為Open with…的新按鈕。
如果您將 OK按鈕記錄到對象地圖(對象地圖(Object Map) ) 中了,那么您將需要變更識別屬性來適應標簽變更,并且您將需要記錄新的 Open with… 按鈕。(對于此實例,我們將忽略對由于 UI 變更導致的應用程序中的對象層次的可能的變更。)
接下來,假設此對話框還包含了其他按鈕,例如Cancel 和 Help。您可以看到按鈕可以用標簽來區分,即使未來它們在應用程序中以不同的順序出現。因此,只要您能夠用標簽上的文字來區分這些按鈕,那么您就不需要考慮索引(index)屬性或其他任意屬性。