WinRunner

义项:功能自动化测试工具
WinRunner

WinRunner是美国 Mercury Interactive 公司开发的自动化功能测试工具,以录制和回放图形用户界面(GUI)操作的方式生成测试脚本,用于检验企业级应用在各发布版本中是否按设计运行。它采用自有的测试脚本语言(TSL),并配合 GUI Map 机制识别界面对象,在 20 世纪 90 年代至 21 世纪初的自动化测试市场中占有重要位置。2006 年该公司被惠普收购,惠普于 2008 年宣布停止对多个版本的支持并建议用户迁移。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

WinRunner是一款面向图形用户界面的自动化功能测试工具,主要用途是把测试人员在界面上的操作记录下来,再以脚本形式回放,从而反复验证应用程序的功能是否正常[1]。作为功能测试套件,它可以与惠普的 QuickTest Professional 配合使用,服务于企业级的质量保证工作[2]。

该工具最初由美国 Mercury Interactive 公司编写,软件名称在使用中常写作“Mercury WinRunner”,被惠普收购后又出现过“HP WinRunner”的写法[1]。它的判定依据是预先设定的检查点:回放过程中把实际结果与录制时收集的基准数据比对,据此判断业务处理流程是否按设计执行[1]。

原理

WinRunner的基本工作方式是“录制—增强—回放”。录制阶段把用户的鼠标点击、键盘输入等界面动作转写为测试脚本;测试人员随后在脚本中插入检查点、参数和数据表,使其可以覆盖不同的输入场景;执行阶段由工具驱动被测程序重演这些动作,并输出结果报告[1]。

脚本使用专有的测试脚本语言(TSL)编写,语法大量借用 C 语言,但不需要声明数据类型,也不支持指针;脚本中可用 extern 关键字调用外部的 C 函数和 Windows API[1]。TSL还提供函数生成器,测试人员从函数列表中选择所需函数并填入参数即可插入脚本,以扩展录制脚本的能力[3]。

为降低界面改版对脚本的影响,WinRunner引入了 GUI Map 机制:把控件在界面上的物理描述映射为一个逻辑名称,脚本只引用逻辑名称,当控件位置或外观变化时只需更新映射,脚本不必改动[1]。对于工具无法直接识别的非标准控件,可通过虚拟对象向导把屏幕区域定义为按钮、编辑框等已知类型后再纳入脚本[3]。

检查点分为文本、GUI、位图和数据库等类型,分别用于核对界面文字、控件状态、屏幕图形区域以及数据库中的记录值。运行控制方面还提供恢复管理器和同步点:前者用于处理回放中意外出现的弹窗等中断,后者用于等待目标窗口出现,避免脚本跑在被测程序之前[3]。

发展历程

WinRunner由 Mercury Interactive 开发,英文维基百科记载其最初编写于 1993 年[1]。1994 年 2 月的《InfoWorld》评测中出现了 1.1 版本的 WinRunner,评测同时提到该产品还有面向 X Windows 的版本,名为 XRunner[1]。中文资料则多将该工具的推出时间记为 1995 年。

2002 年前后,Mercury Interactive 推出 QuickTest Professional(QTP),并逐步以新工具取代 WinRunner,建议新用户改用 QTP、老客户逐步迁移。2006 年,Mercury Interactive 被惠普收购,WinRunner 由此进入惠普产品线[1]。

2008 年 2 月 15 日,惠普软件部门宣布停止对 HP WinRunner 7.5、7.6、8.0、8.2、9.2 各版本的支持,并建议用户迁移到 HP Functional Testing 软件[1]。此后该工具退出主流产品序列,但由于 TSL 脚本在底层系统和嵌入式环境中的便利性,部分企业仍继续沿用。

应用

该工具主要用于企业级应用的功能测试与回归测试,典型对象包括 Web 应用系统、ERP 系统和 CRM 系统,这些系统在发布前和升级后都需要验证各项功能是否正常。在客户端/服务器架构的软件上,WinRunner 对 PowerBuilder、Delphi、SmallTalk 等开发环境有较好的支持,因而在 2000 年前后的 C/S 系统测试中使用较多[3]。

数据驱动向导可以把一个业务流程测试改造成使用多套数据反复执行的测试,例如从数据表中读取多个订单号或客户名称分别回放,以提高测试覆盖率[4]。批处理模式则允许把多个测试脚本组合成批次长时间连续运行,用于耐久性测试等场景[1]。

在实际工程中,该工具也被用于通信设备后台系统的界面与业务功能验证,以弥补 TCL 类工具无法操作图形界面的不足[5]。脚本还可与测试管理工具 TestDirector 集成,由后者统一调用和维护,形成自动化测试框架[6]。

局限

WinRunner的脚本依赖界面对象的识别结果,当被测软件使用工具不支持的技术栈时,控件往往无法被正确识别,导致回放失败;例如在 C# 开发的 .NET 程序上使用时,就常出现对象识别问题[6]。它对 SAP、Siebel 7.x、.NET 控件以及 Flash 等多媒体内容的支持也弱于后续的 QTP[7]。

脚本语言本身也存在限制:现代码较多的 InfoWorld 评测指出,早期版本不支持数据类型声明和指针,处理结构化数据时只能编写更多代码来弥补,调试手段也较弱,一次只能设置一个断点[1]。此外,TSL 无法直接调用 Windows 底层的 COM 对象,需借助外部编译的 DLL 或 VBS 变通实现,对团队的技术能力要求较高[6]。

从可核查性看,该工具提供的检查点类型少于其后继产品,缺少 XML 检查点等能力,验证方式的可选范围因此较窄[6]。随着厂商停止支持,老版本在新型操作系统和浏览器环境下的兼容性问题也难以通过官方途径解决[1]。

参见

  • QuickTest Professional —— 由同一厂商推出的后继功能测试工具,常用于替代 WinRunner。

  • 软件测试 —— WinRunner 所属的技术领域,功能测试是其分支之一。

  • 回归测试 —— 该工具反复回放脚本的主要使用场景。

  • 测试脚本 —— WinRunner 以 TSL 编写的可重复执行的操作序列。

  • 惠普 —— 2006 年收购 Mercury Interactive 后接管该产品的公司。

词条评价
词条统计

浏览次数:4 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-19T13:35:17Z

历史版本

本条目引用的词条
Mercury Interactive QuickTest Professional 软件测试 回归测试 测试脚本 惠普