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 版本中更加健壮。现在,性能几乎与使用映射对象的性能相同。
使用 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)属性或其他任意属性。