脚本可以使用以下两种方式来添加等待时间:
定长等待
调用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()
文章来源于领测软件测试网 https://www.ltesting.net/