< 上一课 | 下一课 >

课程 8:更新对象图

在本课程中,将使用对象图处理对象识别警告。还将使用正则表达式进行更灵活的对象识别。
当看到识别失败或警告时,请查看日志消息。 在课程 7 结束时,保持日志打开。如果不是打开的,请双击项目视图中的日志将其打开。日志中仍然存在一条警告。事件标题是对象识别太弱(超过了警告阈值)
  1. 查看日志底部附近警告部分中的 ObjectLookedForobjectFound 字段。

    在 ClassicsA 中,密码字段的名称是记住密码。 在 ClassicsB 中则是记住该密码。当您在 ClassicsB 上回放脚本时,由于此差别而导致对象识别不完全匹配。

  2. 查看日志中的行号字段。 记下行号并关闭日志,返回到 Functional Tester。
  3. 单击脚本窗口中的任何地方,然后单击导航 > 转至行
  4. 输入日志失败消息中的行号,然后单击确定

    光标移动到该行号的左页边距。

    注: 您还可以通过查看 Functional Tester 窗口底部的指示符找到该行号。例如:“43:9”是指第 43 行上的位置 9。
    您的脚本中的行应为:
    RememberPassword().clickToState(SELECTED); 
    该行表示您单击密码复选框。脚本中该行显示哪个对象失败。现在您可以在对象图中查找该对象了。
  5. 要查找对象,请返回到脚本浏览器(右窗格)中的测试列表。 您应看到测试对象文件夹下面列出的 rememberPassword

查看对象图中的对象识别属性

  1. 双击 rememberPassword 对象,在对象图中将其打开。
  2. 单击对象图菜单上的测试对象 > 全部接受。如果命令变灰,不要执行任何操作。

    注意,所有对象都变成黑色文本。在您接受图中的对象之前,文本是蓝色的(表示新对象)。您应该在首次查看新建对象图时接受这些对象。

  3. 如果图中未选中密码复选框对象,请选中该对象。(这是名为 Java: checkBox: checkRemember: javax.swing.JCheckBox 的对象。)
  4. 查看对象图底部的识别选项卡中列出的识别属性。

    您可以看到这是来自 ClassicsA 的对象,因为文本属性中显示的是记住密码。这是“旧”对象。但是,当您在 ClassicsB 上回放脚本时,该对象的文本已更改,因此 Functional Tester 将其识别为“新”对象。您希望使用新对象属性,因此必须将其添加到对象图。

将新对象添加到图

要将新对象添加到对象图,请打开 ClassicsB,然后打开成员登录窗口。
  1. 单击对象图菜单中的应用程序 > 运行
  2. 选择 ClassicsJavaB。(请务必选择 B)。
  3. 单击确定
  4. 在 ClassicsCD 中,选择任意 CD,然后单击 Place Order

    成员登录窗口将打开。

  5. 移动屏幕底端的对象图,必要时查看全部。在对象图菜单中,单击测试对象 > 插入对象

    这与验证点向导的选择对象页面中的对象查看器工具相同。

  6. 清除选择对象后进入下一页复选框(如果已选中)。
  7. 使用对象查看器工具选中成员登录窗口中的记住该密码复选框。

    选中该复选框后,您将看到文本属性为记住该密码。必要时,将对象边框拉长以查看属性。

  8. 在选择对象页面上,单击下一步
  9. 不要更改选择对象选项页面上的如何内容,单击完成

    现在新的复选框对象显示在对象图中。

  10. 单击另一个对象,注意,新项以蓝色列出,单词“新建”显示在行首。

    现在旧对象和新对象都在图中列出了。您可以将两个对象统一,并从任何对象为新对象提取想要的属性。

统一对象

  1. 要统一对象,请单击旧对象(原来标记的复选框 CheckBox: checkRemember)然后将其拖动到列表中的新对象上。将光标箭头提示位于新对象上,然后释放鼠标按键。接着释放鼠标按钮。

    统一测试对象向导将打开。

  2. 必要时将统一向导拉宽,以查看靠下部分的更多信息。

    在靠下的部分,显示的是源对象属性。应该标注为“源:记住密码”。 这是 ClassicsA 中复选框上显示的文本。在右下部分,应该标注为“目标:记住该密码”。这是 ClassicsB 中复选框上显示的文本。

    因为您将旧对象拖动到了新对象,因此在向导顶端显示的是新对象的识别属性。通常,Functional Tester 会在顶端显示新属性(如果它们是首选属性)。但是,有些旧属性可能是首选属性。例如,Functional Tester 在旧属性集中保留了正则表达式。要使用旧对象的属性,请双击旧对象网格中的属性,该属性将被复制到统一的对象中。在这种情况下,您可以使用新对象所有已填写的属性。

  3. 单击下一步

    对象图中受此更改影响的所有脚本都列出了。只有一个脚本 Classics 受影响。

  4. 单击完成
  5. 在对象图中,单击对象图工具栏上的文件 > 保存菜单,保存您所做的更改,然后关闭对象图。

再次回放脚本。

现在我们将再次回放 ClassicsB 上的脚本,以确认其通过。
  1. 关闭 ClassicsCD 的两个对话框。
  2. 在 Functional Tester 中,单击工具栏上的运行功能测试脚本
  3. 选择 Classics 日志,然后单击完成

    脚本现在通过,无警告!注意,因为识别对象已匹配,因此回放不再在密码复选框对象上暂停。

    当对象的识别属性被人为更改时,使用此对象统一功能可以很容易地更新脚本。 使用此功能的一个主要优势是,当您的对象图被多个脚本使用时,只要在向导中进行更改,就能更新所有脚本。您只需在图中进行一次更改,而不必手动编辑多个脚本,所做的更改就会传播到使用它的所有脚本。此功能能帮您节省时间。

    当测试对象的识别属性更改时,还有一种更简便的方法可以更新识别属性。从对象图中选择要更新其识别属性的测试对象,而不是使用如本次课程中描述的使用统一向导。 当测试对象显示在对象图树中时,右键单击测试对象,然后从弹出菜单中选择更新识别属性。执行此操作时,需要让测试应用程序保持运行,这样 Functional Tester 就可以获得已更新的识别属性。 仅当您不希望使用旧对象的任何属性时,才使用此更新方法。
  4. 关闭日志。
< 上一课 | 下一课 >

反馈