腳本可以使用以下兩種方式來添加等待時間:
定長等待
調用Java腳本的公共父類com.rational.test.ft.script.RationalTestScript里的方法:sleep(double seconds)。這一方法可以使回放過程等待若干秒。
這種方式直觀、簡單。但缺點也是明顯的:固定的時間常常不能適應多變的真實環境:等待時間設置得過長,無疑會拉長測試的回放時間,降低效率;等待時間設置得過短,在某些情況下,又無法起到延時應有的效果,仍然錯過了被測對象。
不定長等待
腳本記錄器記錄下的這些頁面對象都是從接口com.rational.test.ft.object.interfaces.TestObject繼承下來的,在TestObject中有一個方法waitForExistence()可以用以實現不定長的等待。在一定的時間限度內,等待該對象的出現;一旦出現后就不再等待,程序繼續往下執行。最大時間限度是在"首選項"的"回放"選項里設置的。不定長等待既達到靈活等待的目的,又沒有浪費不必要的等待時間,是一個值得推薦的解決方案。
本例中,我們在腳本中添加了不定長的等待設置,如下:
public void testMain(Object[] args)
{
startBrowser("");
document_htmlDocument().waitForExistence();
// HTML Browser
browser_htmlBrowser(document_htmlDocument(),DEFAULT_FLAGS).click(atPoint(455,108));
browser_htmlBrowser(document_htmlDocument(),DEFAULT_FLAGS).inputKeys("www.ibm.com{ENTER}");
// Document: IBM United States: http://www.ibm.com/us/
text_q().waitForExistence();
text_q().click(atPoint(25,7));
browser_htmlBrowser(document_ibmUnitedStates(),DEFAULT_FLAGS).inputChars("lotus");
button_search().click();
document_ibmSearchResultsLotus().waitForExistence();
httpWwwLotusCom_textVP().performTest();
}
針對新打開的空頁面,搜索輸入框和結果頁面,分別做了相應的等待設置。正常情況下,這段腳本的回放需要20秒鐘,耗時略多于設置等待之前,但此時的腳本在等待時間方面,處理得更為靈活。在犧牲部分效率的同時,獲得了更高的可靠性。對于持續性的、大規模的自動化測試而言,其中的價值不言而喻。
三 擺脫空間的束縛
腳本記錄器將記錄下來的對象保存在該腳本的 "專用測試對象圖"中,而且是以樹形結構保存。專用測試對象圖不僅保存了對象本身的相關屬性,連它和其他對象的相對關系也一并保存下來。
這段腳本使用方法document_htmlDocument()來調用頁面的Document對象,使用方法text_q()來調用搜索輸入框,使用方法button_search()來調用搜索按鈕。這些方法是由腳本SearchLotusLink的父類SearchLotusLinkHelper定義的:
protected GuiTestObject document_htmlDocument()
{
return new GuiTestObject(getMappedTestObject("document_htmlDocument"));
}
protected TextGuiTestObject text_q()
文章來源于領測軟件測試網 http://www.k11sc111.com/