功能测试 HTML 应用程序提示和技巧

本主题提供测试 HTML 应用程序时录制和回放脚本的提示及技巧。

首先开始录制,然后启动应用程序

录制 HTML 应用程序上的脚本时,请使用 Functional Tester 来在录制期间启动应用程序。Functional Tester 打开您在缺省浏览器或指定浏览器中指定的 HTML 页面。

录制在 HTML 菜单上的悬停

录制 HTML 应用程序上的脚本时,如果在下拉菜单上滚动鼠标,您可以录制在激活的下拉菜单上所作的悬停。使用 DIV 标记实现这些下拉菜单。要录制下拉菜单上的悬停,并打开下拉子菜单,请将鼠标悬停在菜单项文本上,然后按下 Shift 键。请确保鼠标悬停在菜单项文本上,而不是悬停在菜单项文本右侧的空白处。

在脚本中使用 deleteCookies 方法

有两种版本的 deleteCookies 方法可以使用。一种方法删除当前概要文件或用户的所有 cookie,而另一种方法删除当前概要文件或用户的指定路径或域中的 cookie。请参阅 IBrowserObject 下的 com.rational.test.ft.object.interfaces 包中的“Functional Tester API 参考大全”,获取信息。

避免在脚本中包含菜单项

因为浏览器菜单上的选择是基于菜单项的屏幕坐标,所以如果浏览器大小或位置更改,那么脚本在回放时可能不可靠。另外,不同浏览器上的菜单也不同,这也会造成脚本不能正确回放。

确保回放期间 Java applet 处于全视图中

如果将浏览器调整为较小视图,同时 applet 对象不在视图中,那么 Functional Tester 不会将 applet 对象滚动到视图中。

使用 loadURL( ) 方法来更改 URL

浏览器中地址字段的位置是基于屏幕坐标,如果浏览器的大小和位置更改,坐标也会更改。如果在地址字段中单击并输入新 URL,那么脚本通常会失败。录制时,在脚本中插入浏览器单击操作 (Browser_htmlBrowser) 来更改 URL。

  1. 录制时,在浏览器标题中单击任意空白区,以在您的测试对象映射中包含一个浏览器单击操作。
  2. 录制后,查看脚本并将光标放在脚本的空白行上。
  3. 在 Script Explorer 中,展开测试对象,右键单击 Browser_htmlBrowser 图标 Browser_htmlBrowser,然后选择在光标处插入资产
  4. 选择 loadURL(String) 方法。
  5. loadURL 语句的圆括号中间输入新 URL 的名称。
  6. 仅在 Java™的行末插入分号 (;),对于 VB.NET 则不需要。

为 INPUT 元素使用 .size 属性

如果为 INPUT 元素使用 .size 属性,却没有在 INPUT 元素的 Html 内指定 .size 属性,那么 Internet Explorer 返回的缺省值是 20。

使用两种浏览器都通用的工具栏按钮

创建跨平台脚本时,请避免使用只出现在一种浏览器中的工具栏按钮。两种浏览器通用的工具栏按钮有以下几种:

使用关闭按钮来退出浏览器。

在 Internet Explorer 中,“关闭”按钮可用。录制跨平台脚本时,请避免使用替代方法来退出窗口。例如,按下 Alt+F+C 时仅在 Internet Explorer 中有作用。每种键组合运行在其他浏览器上时均会失败。

检查浏览器对象的 .readystate

如果浏览器对象的预备状态不是 4,有时测试 HTML 应用程序的脚本回放会失败。请确保回放脚本时浏览器的预备状态是 4。如示例中所示,通过手动修改测试脚本可以完成该操作。

检查 Java 中的浏览器状态的脚本:logInfo("Ready State #: "+browser_htmlBrowser().getProperty(".readyState").toString());

检查 .Net 中的浏览器状态的脚本:LogInfo("Ready State #: " & Browser_HtmlBrowser().GetProperty(".readyState").ToString)

使用 waitForExistence 方法加快浏览器启动速度

录制跨浏览器脚本时使用 waitForExistence 方法来等待浏览器。例如:

  1. 记录时,启动应用程序。
  2. 单击录制工具栏上的插入验证点或操作命令按钮插入验证点或操作命令按钮
  3. 在“验证点和操作向导”的选择对象页面,单击对象查找器图标 对象查找器图标,并将其拖动到 HTML 页面(不是浏览器本身)上。
  4. 单击下一步
  5. 在“验证点和操作向导”的选择操作页面中,单击等待选定的测试对象选项。
  6. 如果需要,清除使用缺省值来更改最大等待时间检查时间间隔设置(各自的缺省值分别为 2 分钟和 2 秒)。
  7. 单击完成

避免在跨平台脚本中使用这些单击操作和键组合

为了处理弹出菜单,某些浏览器忽略右键单击后立即做出的链接上的单击操作。当此单击组合必要时,右键单击链接,然后单击文档中的空白区,然后单击链接。

在某些浏览器中,按下 Ctrl 键的同时单击链接,会在另一个浏览器实例中打开页面。同样的键序列会在其他浏览器中导致正常的链接单击操作。包含此操作组合的脚本的回放方式不同,应该避免对其进行跨浏览器测试。

运行实用程序来修订坏格式的 HTML

有时,HTML 中的错误会造成不同浏览器对 HTML DOM 层次结构的解释不同。在一种浏览器中运行成功的脚本可能在另一种浏览器中运行失败。针对每种浏览器录制一个脚本,并比较最终形成的测试对象映射。如果映射显示的层次结构不同,那么运行实用程序,例如 HTML Tidy。如果实用程序报告错误,那么错误可能会造成对对象模型的不同解释,从而导致不同的层次结构。可以从万维网联盟 www.w3.org 中获取 HTML Tidy。

处理弹出消息框

在某些浏览器中录制脚本时,有时会出现弹出消息(浏览器用户界面对话框),例如加密注意事项。因为这些消息框不会出现在其他浏览器中,所以录制跨浏览器脚本时您不会让它们包含在脚本中。要避免此问题:

  1. 当弹出消息出现时,暂停录制。
  2. 选中消息上的防止消息再次出现的任意复选框。
  3. 单击取消,以关闭消息框。
  4. 恢复录制。

您可以修改您的脚本,来控制这些类型的消息框,不过代码可能较为复杂。更多信息,请参阅“扩展 Rational Functional Tester 功能”主题。

录制跨浏览器兼容脚本(兼容 Functional Tester 支持的所有浏览器的脚本)时,请尽量避免录制任何的弹出消息框。如果不是录制跨浏览器兼容脚本,那么您可以录制脚本中的弹出消息框。

Functional Tester 支持 Windows® 平台上的“登录”、“文件下载”、“证书/安全警告”、“文件拾取器(文件打开/文件保存)”和“打印”对话框。 这些用户界面对话框适用于特定的浏览器,且不是跨浏览器兼容。通常“登录”对话框跨浏览器兼容。

测试 URL(无需配置应用程序)

配置应用程序时,功能测试将应用程序名添加到Application Configuration Tool。如果您测试大量的不同 URL,那么“应用程序”列表可能很长。如果不想将 URL 添加到列表,您可以在空脚本中使用 startBrowser 命令来对其进行测试。

  1. 创建新功能测试脚本,不进行录制。
  2. 在空白行上,输入以下命令:

    startBrowser ("url");

  3. 保存然后运行脚本。
  4. 显示页面后,在“功能测试”工具栏上,单击将录制插入到活动的 Functional Tester 脚本 将录制插入到活动的 Functional Tester 脚本按钮,然后针对页面开始录制。

测试 HTA

Functional Tester 支持测试 Microsoft® HTML 应用程序 (MSHTA)。测试 MSHTA 之前,必须运行 mshta.exe 来对其进行配置。要配置要测试的每个 HTA:

  1. 在 Application Configuration Tool 的类型字段中,选择可执行文件批处理文件
  2. 可执行文件字段中,选择 mshta.exe
  3. 参数字段中,将参数 x.hta 传递至可执行文件(其中 x 是 HTA 文件的名称)。

有关更多信息,请参阅“配置测试的应用程序”。

通过 TestManager 来执行远程测试

如果安装了 TestManager,那么在 Linux® 计算机上使用它来远程测试 HTML 应用程序。请参阅“本地和代理计算机”主题获取信息。

处理 Java 插件错误

如果返回与 Java插件相关的错误,那么在测试 HTML 应用程序或从 HTML 日志中的查看结果链接中启动比较器时,需要验证是否正确配置了浏览器的 Java 插件。 请参阅有关启用浏览器的 Java 插件的相关主题获取指示信息。

关于 TestManager 集成的说明:Functional Tester 已与 Rational TestManager V7.0.2 集成。如果您具有 7.0.2 版本的 TestManager,那么将能够使用 Functional Tester 和 TestManager 的集成功能。


反馈