< 上一课 | 下一课 >

课程 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,然后单击下订单

    “成员登录”窗口将打开。

  5. 在屏幕上将对象图向下移动一点(如有必要)以查看该图的全部内容。在对象图菜单中,单击测试对象 > 插入对象

    这与“验证点向导”的“选择对象”页面中的“对象查找程序”工具相同。

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

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

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

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

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

    现在,图中列出了旧对象和新对象。您希望将两个对象统一,并从每个对象提取想要用于新对象的属性。

统一对象

  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. 关闭日志。
< 上一课 | 下一课 >

反馈