创建用于所有浏览器测试的单个测试

在多个浏览器上测试应用程序或网页时,您会努力使应用程序或网页在不同类型的浏览器中执行相同的操作 (除非设计时并非如此)。设置测试时,您还希望同一测试可用于每个浏览器类型,以便尽可能减少使用不同的浏览器时所需的帐户维护和更新工作。但是,创建用于跨浏览器测试的单个测试存在一系列挑战:

具有包含正确属性的正确对象

UFT One 中,应用程序测试会访问用于测试的一个或多个对象存储库,这些库包含用于测试应用程序对象的必需对象。理想情况是,为每个应用程序部分或网页创建一个或多个对象存储库。然后,可以使用此单个或一组对象存储库在所有浏览器版本中运行测试,并且 UFT One 可以正确标识应用程序或网页中的对象。

但是实际情况是,在正确的对象存储库中提供正确的对象并非总是如此简单。首先,存在对象标识问题。如果 UFT One 在不同浏览器类型或版本之间标识的某些对象差异较大,您可能需要为每个浏览器类型创建单独的存储库,才能使 UFT One 找到正确的对象。但是,当测试在特定浏览器上运行时,您需要该测试运行的正确对象存储库。

如果您碰到类似的场景,可以使 UFT One 在测试运行开始时动态添加对象存储库。有关详细信息,请参阅在测试运行期间动态加载对象存储库

返回页首

动态创建的对象

在某些情况下,由于之前在应用程序中执行的操作,您可能还需要使动态创建的对象显示在页面上。但是,在创建测试和对象存储库过程中,这些对象无法标识 (因为在 UFT One 最初识别应用程序时,它们不存在)。与许多其他对象类似,这些创建的对象在不同的浏览器中会被标识为不同的对象,从而使得 UFT One 更难以标识它们。

为帮助 UFT One 标识这些对象,您可以使用描述性编程。有关详细信息,请参阅编程描述

返回页首

动态页面更新

在正常工作流中,每个浏览器版本还会进行浏览器或页面的动态更新。例如,每个浏览器版本的警报对话框不同,这使得 UFT One 很难知道如何识别、处理或忽略这些对话框。因此,如果使用一种浏览器类型创建用于关闭警报对话框的测试步骤,则其他浏览器类型可能无法在该对话框上识别或执行步骤。在其他情况下,这些对话框不存在于其他浏览器中。在某些情况下,如果警报对话框未关闭,浏览器甚至可能不支持您继续测试,从而导致测试失败,仅仅是因为测试无法识别该对话框并在其上执行正确的步骤。

对于浏览器对话框,存在可确保您正确处理弹出对话框的特殊方法,包括 Browser.HandleDialogBrowser.GetDialogTextBrowser.DialogExists 方法。(请注意,即便是这些方法也无法在不同的浏览器中以同样的方式运行。)

在其他情况下,可以将步骤添加到测试中以说明特定于浏览器的行为。有关详细信息,请参阅为特定于浏览器的行为添加步骤

返回页首

浏览器或特定于应用程序的行为

存在这样的场景: 相同的应用程序操作 (如按“后退”按钮) 可能导致不同浏览器的行为存在较大差异。例如,在预约应用程序中,对于 Internet Explorer 按“后退”按钮会使您返回到之前查看的页面,而在 Firefox 或 Chrome 中按“后退”会注销应用程序。

但是,正是由于存在这些问题,您的测试必须准备好应对不同的行为。有些潜在解决方案可帮助:

  • 导航到应用程序中的特定 URL/位置,而非上一页/下一页 (如以上示例)。

  • 插入可暂停测试的 Wait 步骤,直到应用程序或应用程序对象达到某种状态 (可使用对象的 Exist 属性进行检查)

有关详细信息,请参阅为特定于浏览器的行为添加步骤

返回页首