对功能测试进行故障诊断

本主题可以帮助您对功能测试中可能遇到的一些问题进行故障诊断。
表 1.
问题 描述 解决方案

在 .Net 中的 ErrorProvider、HelpProvider 和 ToolTipText 控件上插入验证点时,发生 ObjectNotFoundException 异常。

如果在 .Net 中记录时在 ErrorProvider、HelpProvider 和 ToolTipText 控件上创建数据验证点,那么将发生此异常。

在 .NET 中,在这些控件上创建属性验证点。

回放包含 SAP 应用程序中日历控件的数据驱动脚本时,发生 System.NullReferenceException。

可能在记录数据驱动脚本后已关闭日历控件,在此情况下,在脚本中生成 close() 事件。该脚本类似于以下示例:

calendar_sapCalendarControl1().setDate(dpString("SAPCalendarControl1")); dialog_calendar().close();

因为 setDate() 方法设置关注的日期,还关闭日历控件,所以在回放期间脚本尝试关闭日历控件时会失败。

执行以下任一任务:
  • 删除在脚本中生成的日历关闭方法。
  • 关闭日历控件,然后退出“插入数据驱动操作”向导。

对控件(例如 SAP 应用程序中的文本、组合框或树)执行数据验证时,回放失败。

如果在针对文本/组合框的设置或针对树控件的 ExpandNode/doubleClickNode 之类的方法之前记录验证点,那么会发生此情况。

执行以下任一任务:
  • 在文本/组合框中输入/选择值或展开树控件的节点后,按 EnterF2 键,然后调用数据验证点向导。
  • 剪切并粘贴这些方法,然后在脚本中文本/组合框/树控件上执行数据验证。

在 .Net 中创建功能测试项目时显示以下错误消息:

"Failed to enable ClearCase® integration. Registry entries for installed source code control provider are missing. Please configure source control provider appropriately."

如果 ClearCase 的注册表设置已损坏,那么显示该消息。

必须手动修复注册表设置。 关于更改源代码控制提供程序或编辑注册表设置的更多信息,请参阅 MSDN 帮助。

在从 Siebel 7.8 移回 Siebel 7.7 后,IBM® Rational® Functional Tester 不能识别 Siebel 7.7 控件。

启动 Siebel 7.8 时,Internet Explorer 安装最新的 Siebel ActiveX 对象。因此,如果在此后尝试使用 Functional Tester 在 Siebel 7.7 上进行记录,那么 Functional Tester 无法识别 Siebel 7.7 控件。

从文件夹 C:\WINDOWS\Downloaded Program Files 除去 Siebel ActiveX 对象,然后尝试再次使用 Siebel 7.7 应用程序。

在 Rational Functional Tester 中配置应用程序以进行测试时,待测试 Java™ 应用程序 (AUT) 没有打开。

如果指定的 JRE 版本低于用于编译测试应用程序的 JRE 版本,那么在配置应用程序以进行测试时,AUT 不会打开。

  • 使用 Functional Tester 支持的 JRE 的相同或更高版本来测试应用程序。
  • 通过在 Java IDE 中设置 JRE 的源和目标级别来重新编译测试应用程序。

    通过使用命令行界面设置源和目标标志来编译测试应用程序的示例:

    C:\AUT\Test>"C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe" -source 1.4 -target 1.4 *.java

测试包含密码字段的 SAP 应用程序时回放失败。

输入的密码显示在密码字段中时,Rational Functional Tester 记录该密码而无法读取加密的值。

回放脚本之前,将记录的密码替换为脚本中的实际密码。

IBM Rational Functional Tester 区分上下文帮助在 VS .Net IDE 上无效。

 

安装 MSDN 库。安装期间,选择选项将 MSDN 库与 VS .Net IDE 集成以便 Functional Tester 区分上下文帮助能够工作。

尝试从“教程库”打开 PDF 文件时,计算机挂起。

如果在使用 Adobe® Reader 6.0.0,那么从“教程库”打开 PDF 文件可能使您的计算机挂起。

Adobe Reader 的其他版本不会导致此问题。可以从 Adobe Web 站点获取 Adobe Reader 的最新级别的免费升级。

不显示多媒体用户帮助。

多媒体用户帮助(例如“漫游”、“教程”和“显示”viewlet)需要在计算机上安装 Flash Player。

从 Adobe Web 站点安装 Flash Player V6.0 或更新版本。

记录后将视图和编辑器拖动或分离时,在 Eclipse 上禁用对回放的支持。

 

在 ivory.properties 文件中添加语句 rational.test.ft.enable_eclipse_support=false

记录在一个浏览器中的脚本未能在另一浏览器中回放。

例如,在 Internet Explorer 中记录的脚本有时未能在 Mozilla Firefox 中回放

检查浏览器中对象的 DOM 结构。例如,可以将 DomInspector 用于 Mozilla Firefox。类似地,其他浏览器也可以理解 DOM 结构。然后可以比较并检查对象层次结构是否相同。

  • 如果浏览器的 DOM 层次结构不相同,那么由于 Functional Tester 问题,将不会发生故障。浏览器在创建不同的 DOM 层次结构,因此回放失败。

    变通方法:可以通过引入 Functional Tester 在回放脚本时所需的缺失层次结构来修复此问题

  • 如果浏览器的 DOM 层次结构相同,那么 Functional Tester 可能存在问题。为 Rational 软件产品联系 IBM 软件支持以进行进一步调查。

记录和回放对浏览器菜单选项无效

Rational Functional Tester 支持测试浏览器内容,但是不支持与浏览器菜单选项或浏览器本身交互。这主要是为了提供跨浏览器记录和回放设施以便测试 HTML 应用程序。

捕获浏览器对象并使用 inputKeys 方法,以使用特定菜单选项的键盘快捷键来与菜单选项交互。

例如,可以使用快捷键 Alt+F+C 来访问“文件”菜单中的“关闭”选项。如果需要访问此选项,那么可以将 inputKeys 方法用在浏览器对象上,提供快捷键("%fc")作为输入参数,如下所示:

Browser_HtmlBrowser(Document_HtmlDocument(),DEFAULT_FLAGS).InputKeys("%fc")

记录期间的内部 SAP 错误 (ABAP)

针对 SAP 应用程序进行记录时,SAP 脚本编制框架有时在内部抛出一些 ABAP 错误,而记录停止。除非 SAP 在其脚本编制框架中修复该问题,否则无法修复该问题。

对运行脚本的用户禁用系统上的模式搜索帮助。可以从帮助菜单,在 SAP GUI 中的“首选项”对话框中执行此操作。如果此解决方案无效,那么可能必须重新启动 SAP 应用程序

回放包含 SAP 应用程序中日历控件的数据驱动脚本时,发生 System.NullReferenceException。

可能在记录数据驱动脚本后已关闭日历控件,因此在脚本中生成 close() 事件。

脚本如下所示:dialog_calendar().close();

由于 setDate() 方法设置关注的日期,还关闭日历控件,所以在回放期间脚本尝试关闭日历控件时会失败。

删除在脚本中生成的日历关闭方法。

在 Linux® 中,从多个线程调用 RationalTestScript API 命令将导致异步错误。

进程中的两个线程同时提交 X 请求时,X 库无法处理请求,因为它们不是线程安全的。这将导致异步错误,并带有消息,如:要发生意外的异步回复或事件丢失。在 RFT 脚本中使用多个线程时,也可能发生此情况。

在 ivory.properties 文件中,将 rational.test.ft.script.playback.mouse.allow_multiple_threads 选项设置为“true”。

在 Linux 上导入文件时的编码问题。

在 Linux 上,由于不兼容的编码格式,Functional Tester 可能无法识别或读取所导入的文件。在 Functional Tester 中,将缺省编码格式设置为 UTF-8。但是 UTF-8 无法处理一些编码格式(如 Cp1252)。

在 Linux 上,将文件的编码格式设置为 ISO-8859-1:
  1. 在 Functional Tester 的“项目”窗格中选择导入的项目或将文件导入其中的项目。
  2. 单击项目 > 属性
  3. 在“属性”窗口中,从列表选择信息
  4. 在“文本文件编码”字段中,单击其他
  5. 从下拉列表选择 ISO-8859-1
  6. 单击确定

无法回放存储在网络中的 .Net 脚本。

网络中的项目由于其安全策略而可能在本地计算机中没有“完全信任”许可权。 在回放日志或在 RFT 调试日志中显示 RuntimeSecurityPolicyException 消息。

执行以下任务:
  • 将“本地内部网”区域的安全级别配置为“完全信任”。可以执行以下这些步骤:
    1. 转至控制面板 > 管理工具,然后打开 Microsoft® .NET Framework 配置。
    2. 选择配置代码访问安全策略并单击调整区域安全性
    3. 选择“安全性调整向导”中的本地内部网,并将信任级别设置为“完全信任”。
如果仍然继续显示该消息,请执行以下步骤:
  • 将计算机名称而不是 IP 地址指定为项目路径。
  • 在 Internet Explorer 中配置以下项:
    1. 在 Internet Explorer 窗口中单击工具 > Internet 选项
    2. 在“安全性”选项卡中,选择本地内部网区域
    3. 单击站点
    4. 在“本地内部网”对话框中,单击高级
    5. 取消选中对本区域中的所有站点需要服务器验证 (https:)
    6. 指定项目路径并单击添加
    7. 单击确定

在 Linux 上使用 Test Manager 代理程序来执行脚本将抛出错误。

如果在 Linux 机器上启动 Test Manager 代理程序 7.0 守护程序并通过 Test Manager 在 Windows® 机器上执行脚本,那么可能会显示一些错误。

在 Linux 机器上,执行以下任务:
  1. 设置当前使用的 JRE 的环境变量 LD_LIBRARY_PATH to libjava.so
  2. 将 CLASSPATH 设置为 /bin/rational_ft.jar
  3. 执行命令:source rtsetup
  4. 从 Test Manager 安装目录,运行 RTsagt 脚本。
注: 不能在 SUSE Linux Enterprise Server 10.0 和 SUSE Linux Enterprise Desktop 10.0 平台上使用 Test Manager 代理程序。

使用 ClearCase 共享功能测试项目时发生编译错误。

缺省情况下,ClearCase 配置为不区分大小写。如果文件名包含大写字母,ClearCase 将其转换为小写。将新脚本记录在 ClearCase 中的现有项目内时,发生类似问题。

遵循以下步骤将 ClearCase 设置更改为保留大小写:
  1. 单击开始 > 控制面板 > ClearCase 来打开“ClearCase 属性”窗口。
  2. 在 MVFS 选项卡页面中,选中保留大小写复选框。
  3. 停止并重新启动 ClearCase。
  4. 再次共享功能测试项目。

如果它未安装在 /opt/rational 目录中,那么 Linux 上的 ClearCase 集成不工作。

 

要将 ClearCase 用于 Linux,必须将 ClearCase 安装在 /opt/rational 或 /usr/atria 目录中,或者将 CLEARCASEHOME 或 ATRIAHOME 设置为 ClearCase 安装目录。

无法解析资源束

如果 Flex Builder 2 用于构建带有 Rational Functional Tester 适配器的 Flex 应用程序,那么您可能收到关于资源捆绑的错误。

automation_agent_rb.swc../Flex automation/frameworks/locale/en_US 复制到 ../Flex SDK 2/frameworks/locale/en_US 目录。
注: 如果使用 Flex Builder 3,那么这不是必需的。
无法为功能测试项目执行任何与 ClearCase 相关的操作 如果修改了功能测试项目资产层次结构或位置,那么可能发生此情况。 创建功能测试项目时,创建缺省层次结构来维护项目资产。此层次结构和存储用于查找要检入的功能测试资产。

请勿修改功能测试项目资产层次结构。

如果 Java AUT 隐藏在另一应用程序窗口后,那么在回放该脚本时,将发生 ObjectNotFound 异常   执行以下任务:
  1. 单击配置 > 启用环境以进行测试 > Java 环境选项卡。
  2. 运行选项字段中输入 -Dawt.toolkit=sun.awt.motif.MToolkit,然后单击完成
无法记录双字节字符集 (DBCS) 输入双字节字符时,相同键序列可能有多个 DBCS 字符。“输入法编辑器”(IME) 提供选项以在键序列后按空格时选择想要的字符。 Enter 以记录输入字符串。
Rational Functional Tester 没有记录 Flex 应用程序的操作。 如果未正确配置 Flex 环境和应用程序,那么可能发生此情况。 确保:
  • 启用 Internet Explorer 设置将未标记为安全的 ActiveX 控件初始化并编制脚本
  • 通过 HTML 页面装入应用程序,带有设置了标识属性的 <object> 标记,而该标识属性不包含句点或连字符。
  • 从 Web 服务器或在本地从信任的 SWF 文件装入应用程序。
脚本回放期间发生 ObjectNotFound 异常,而异常消息指示对象状态错误。

例如:Looking for [button] with state [ENABLED|VISIBLE|READY], possible failing candidate[{.mappableClassIndex=0, text=*!ENT!*, .classIndex=0}] with incorrect state [DISABLED]

回放期间,Rational Functional Tester 预期测试对象具有以下状态之一:
  • ENABLED
  • VISIBLE
  • READY(对于浏览器)
如果测试对象的状态不匹配预期状态,那么发生 ObjectNotFound 异常。
要覆盖此异常,请将对象的锚点设置为 null 或 ANY。

例如:将 button().click(); 替换为 button(null, DISABLED).click();

Functional Tester 将 GEF 对象识别为 FigureCanvas 将使用标准和非标准 GEF 编辑器实现的 GEF 对象识别为 FigureCanvas。
  • 确保 GEF 启用程序插件 com.rational.test.ft.gef_xx.jar 存在于 AUT 的插件目录中。
  • 如果在启用后也未标识 GEF 对象,那么以 -clean 选项启动 AUT。
  • 对于非标准编辑器,在非标准 GEF 编辑器 (AUT) 中添加 getAdapter 方法。Functional Tester 使用此方法来获取 GraphicalViewer 的实例以识别编辑器中的 GEF 对象。
    public Object getAdapter(Class type)
    {
    if (type == org.eclipse.gef.GraphicalViewer.class)
     {
    <<return the current instance of org.eclipse.gef.GraphicalViewer>>
     }
    }
以 Functional Tester V8.0 在 Internet Explorer 7.0 上记录并回放时的问题。但是,记录和回放脚本在 Functional Tester 7.x 上可工作。 发生此问题的原因可能是,Functional Tester 中进行了更改以改善 Internet Explorer 7.0 上的回放性能。
将性能更改标志设置为 false 并测试是否解决了问题。要更改性能标志:
  1. 打开位于 <Functional Tester installation directory>\SDP\FunctionalTester\bin 的 ivory.properties 文件
  2. 设置 rational.test.ft.html.enableie7performancechanges=false
    注: 在 Internet Explorer 7.0 上测试 HTML 应用程序时将此标志更改为 false 将影响性能。
  3. 重新启动 Internet Explorer 7.0 以使更改生效。
缺省情况下,未启用 Firefox 3.0 浏览器,即使从 Firefox 2.0 升级到 Firefox 3.0 之后启用程序将 Firefox 3.0 显示为已启用时也是如此。 Firefox 3.0 与 Firefox 2.0 安装在相同位置。所以,需要不同的支持 dll。 要启用 Firefox 3.0 浏览器,请在从 Firefox 2.0 升级到 Firefox 3.0 后禁用并启用浏览器。
启用浏览器后无法在 Microsoft Windows Vista 中 Internet Explorer 7.0 上记录脚本。 在 Windows Vista 中,Internet Explorer 7.0 浏览器设置必须更改以记录脚本。 要更改浏览器设置:
  1. 转至工具 > Internet 选项 > 安全向导
  2. 清除受保护方式复选框。
  3. 重新启动浏览器。
无法在 Firefox V3.0 中查看 Dojo 日志。 在 FireFox V3.0 中,必须设置若干安全标志才能查看 Dojo 日志。这些安全标志允许 Firefox V3.0 来为已安装的 Dojo 获取文件系统中 Java 脚本的访问权。 要在 Firefox 3.0 中查看 Dojo 日志:
  1. 在 Firefox 3.0 浏览器中输入 about:config 作为 URL。
  2. 设置以下安全标志:
    • 键:security.fileuri.origin_policy 和值:3
    • 键:security.fileuri.strict_origin_policy 和值:false
无法通过应用程序配置向导使用Web 应用程序 > 编译时选项来启动 Flex 应用程序。 应用程序配置向导生成对应于 Flex 应用程序 mxml 文件的 html 页面和 swf 文件。通过向导生成的 html 页面包含 swf 的完整路径。但是在 Web 应用程序的情况下,使用 URL 中的 localhost 选项来启动该应用程序。无法通过完整路径访问 swf,因此它未能启动应用程序。 修改 html 页面以仅指向 swf 名称而不是完整路径。
  • <param name="movie" value="C:\FlexSample\Smoke.swf"> 更改为 <param name="movie" value="Smoke.swf"/>
  • <embed src="C:\FlexSample\Smoke.swf"> 更改为 <embed src="Smoke.swf">

反馈