WinRunner工具
企业级功能测试的软件
Mercury Interactive公司的WinRunner工具是一款专门用于企业级功能测试的软件,旨在检测应用程序能否达到预期功能并正常运行。
功能特点
创建测试
WinRunner工具提供了一种简单的测试创建方法,即通过点击鼠标和键盘,完成标准业务操作流程,WinRunner工具自动记录操作并生成所需脚本代码。此外,还允许直接修改测试脚本以适应更复杂的测试需求。WinRunner工具提供这两种测试创建方式,以满足测试团队中业务用户和专业技术人员的不同需求。
插入检查点
在录制测试期间,可以插入检查点,以检查应用程序在特定状态下的运行状况。WinRunner工具会在插入检查点后收集一组数据指标,并在测试运行时逐一验证。WinRunner工具提供多种类型的检查点,包括文本、GUI、位图和数据库。例如,使用位图检查点,可以检查公司图标是否出现在指定位置。
验证数据
除了创建和运行测试外,WinRunner工具还可验证数据库的数值,确保业务交易的准确性。在创建测试时,可以设置要检测的数据库表和记录;在测试运行时,测试程序会自动对比数据库的实际值和预期值。WinRunner工具会突出显示有新增、删除或插入记录,以引起关注。
增强测试
为了进行全面测试,需要使用不同类型的数据进行测试。WinRunner工具的数据驱动向导(数据 Driver Wizard)可通过简单点击鼠标,将业务流程测试转化为数据驱动测试,反映多个用户的真实行为。例如,在订单输入流程中,可以将订单号或客户名称作为可变字段,使用多组数据进行测试。使用Data Driver Wizard,可以选择订单号或客户名称,并将其替换为数据表格文件中的相应栏目。数据驱动测试不仅可以节省时间和资源,还能提高应用的测试覆盖率。
函数生成器
WinRunner工具的Function Generator可用于从目录列表中选择功能并将其添加到测试中,以提高测试能力。例如,可以选择“calendar”子目录中的Calendar_select_date()函数,并直观地输入参数,将该函数插入测试中。
虚拟对象向导
对于一些非标准对象,WinRunner工具的Virtual Object Wizard可以帮助识别先前未知的对象。使用Virtual Object Wizard,可以选择未知对象的类型、标识和命名。在录制使用该对象的测试时,WinRunner工具会自动对应其名称,提高测试脚本的可读性和测试质量。
运行测试
创建完测试脚本并插入检查点和必要功能后,即可运行测试。WinRunner工具会自动操作应用程序,就像真实用户按照业务流程执行每一步操作。测试运行期间,如有网络消息窗口或其他意外事件出现,WinRunner工具会根据预设排除干扰。
分析结果
测试完成后,需要分析测试结果。WinRunner工具通过交互式报告工具提供详细的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其他重要事件,帮助分析测试结果。这些测试结果也可通过Mercury Interactive的测试管理工具TestDirector查阅。
维护测试
随着时间推移,开发人员会对应用程序进行修改,并需要增加更多测试。使用WinRunner工具,无需对程序的每次改动都重新创建测试。WinRunner工具可以创建在整个应用程序生命周期内均可重复使用的测试,显著节省时间和资源,充分利用测试投资。每次记录测试时,WinRunner工具会自动创建GUI Map文件,保存应用对象。这些对象按层级组织,既可概览所有对象,也可查询具体对象详情。通常,对应用程序的任何改动都会影响数百个测试。通过修改一个GUI Map文件而不是无数个测试,WinRunner工具实现了测试重用。
无线应用准备
随着无线设备种类和数量的增长,应用程序测试计划需要同时满足传统基于浏览器的用户和无线浏览设备,如移动电话、传呼机和个人数字助理(PDA)。无线应用协议(Wireless Application Protocol, WAP)是一种开放的、全球性的网络协议,用于支持标准数据格式化和无线设备信号传输。使用WinRunner工具,测试人员可以利用微型浏览模拟器记录业务流程操作,并回放和检查业务流程功能的正确性。
使用技巧
通配符
WinRunner工具支持使用通配符。
文件路径
在TSL语言中,文件路径需要用双斜杠表示。
控件识别问题
在录制脚本时,如果某些控件未能识别,可能是由于未加载相应的插件,或者WinRunner工具在应用程序启动后才启动。
建立数据库检查点
建立数据库检查点时,如果无法新建查询,可能是因为系统中未安装微软 Query。解决方案是在Office 2000的安装程序中,将Microsoft Query设置为本地运行。
自动加载GUI Map文件
static test_Path = getvar("testname");
static guifile_path = test_Path + "\\GUI_File.gui";
GUI_unload_all();
GUI_load(guifile_path);
report_msg(test_Path);
```
以上代码示例展示了如何自动加载GUI Map文件。
测试过程
WinRunner工具的测试过程大致可分为六个阶段:
1. 创建GUI Map文件:WinRunner工具通过此文件识别被测试应用程序中的GUI对象。
2. 创建测试脚本:通过录制、编程或两者结合的方式创建。在录制测试脚本时,可在想要检查被测试应用程序响应之处插入验证点。
3. 调试脚本:使用调试(Debug)模式运行测试脚本,确保其顺利运行。还可使用WinRunner工具提供的Step、Step Into、Step Out等功能调试脚本。
4. 运行测试:使用验证(Verify)模式运行测试脚本,测试应用程序。当WinRunner工具遇到验证点时,会将被测应用程序中的当前数据与先前捕获的期望数据进行比较。如果有任何不匹配,WinRunner工具会捕获当前情况作为真实结果。
5. 检查结果:确认测试脚本成功与否。每次测试脚本运行结束后,WinRunner工具会将结果显示在报告中。报告描述了运行中遇到的重要事件,如验证点、错误信息、系统信息或用户信息。如果运行中发现任何不匹配的验证点,可以在测试结果窗口中查看期望结果和实际结果。
6. 提交缺陷:如果测试脚本因所测试应用程序中的缺陷而失败,可以直接从测试结果窗口中提取缺陷相关信息。
GUI Map文件
WinRunner工具利用GUI Map文件识别应用程序中的对象。它将学习到的窗口或对象信息存储在GUI Map文件中。当WinRunner工具运行测试脚本时,它利用GUI Map查找对象。它从GUI Map文件中读取对象的描述,并在被测应用程序中搜索具有相同属性的对象。GUI Map文件中的每个对象都有一个逻辑名称和一个物理描述。对象的逻辑名称由其类决定。在大多数情况下,逻辑名称被视为显示在对象上的标签。可以修改已分配的逻辑名称,使其更具描述性或缩短长度。当对象的属性发生变化时,必须修改其物理描述。GUI Map文件的扩展名为“.gui”。
脚本语言
WinRunner工具的脚本语言是Mercury Interactive's Test Script Language (TSL),一种类似C的脚本语言。可以通过添加TSL函数和编程元素(如Windows API)或WinRunner工具的虚拟编程工具(函数生成器(函数 Generator))来增强录制的脚本。
录制模式
WinRunner工具提供两种不同的录制模式:环境判断录制(Context Sensitive recording)和模拟录制(Analog recording)。
运行模式
WinRunner工具提供三种不同的运行模式:验证(Verify)、调试(Debug)和更新(Update)。
Add-In
加载Add-In实际上是将Add-In中的特殊函数加载到内存中。当创建测试脚本时,仅列出选定Add-In中的函数。在运行脚本时,仅执行已加载Add-In中的函数,否则WinRunner工具会报错。
验证点
验证点可以使您比较被测应用程序的当前行为与其早期版本的行为。WinRunner工具提供四种验证点:GUI checkpoints、Bitmap checkpoints、Text checkpoints 和Database checkpoints。
同步点
同步点解决了测试脚本与应用程序之间的预期时间差异问题。例如,如果您创建一个打开数据库应用程序的测试脚本,可以添加一个同步点,让测试脚本等待直到数据库中的记录加载到屏幕上。
编译模块
编译模块实际上是一种脚本,其中包含可供其他测试脚本频繁调用的用户自定义函数集合。当加载编译模块时,其函数将自动编译并保存在内存中。其他测试脚本可以直接调用它们。编译模块可以改善脚本的组织和性能。由于已在使用它们之前进行了调试,因此测试脚本只需要很少的错误检查。此外,调用已编译的函数的速度明显快于解释测试脚本中的函数。当编译模块用于存储可重用的函数时,测试脚本包含WinRunner工具中的可执行文件。编译模块本身是非可执行的。
数据驱动测试
当测试您的应用程序时,您可能希望检查它如何处理大量数据集的相同操作。您可以创建一个数据驱动测试,其中包含一个循环,该循环运行十次,每次循环均由不同的数据集驱动。为了使WinRunner工具能够使用数据驱动测试,您必须将数据链接到要驱动的测试脚本。这称为参数化(Parameterizing)您的测试。数据存储在一个数据表格(数据 Table)中。您可以手动执行这些操作,或使用DataDriver Wizard参数化您的测试脚本并将数据存储在数据表格中。
定制对象
定制对象是指不属于WinRunner工具使用的标准类之一的任何GUI对象。WinRunner工具将此类对象学习为通用“object”类。WinRunner工具使用obj_mouse_语句记录在定制对象上的操作。如果定制对象与标准对象非常相似,可以将其映射为标准类别之一。您还可以在环境判断测试(Context Sensitive testing)时配置WinRunner工具,以识别定制对象的属性。
虚拟对象
应用程序可能包含外观和行为类似于GUI对象的位图。WinRunner工具使用win_mouse_click语句记录操作。通过将位图对象定义为虚拟对象,当录制并运行测试时,可以教导WinRunner工具将其视为GUI对象。
无法识别GUI对象的原因
WinRunner工具可能因为多种原因无法识别GUI对象,包括非标准的Windows对象、未安装必需的插件以及所使用的浏览器与WinRunner工具版本不兼容等情况。
启动文件
在General Options -\u003e Environment -\u003e Startup文本框中,选择或输入您希望作为启动文件的测试脚本。
输入测试脚本相关信息
在创建测试脚本之前,您可以在Test Properties -\u003e General和描写文中输入与脚本相关的详细信息,如被测功能的类型、测试脚本的详细说明以及引用的相关功能说明书文档。
如何处理定制对象
定制对象是不属于WinRunner工具所使用的标准类之一的任何GUI 对象。WinRunner工具学习此类的对象为generic "object"类。WinRunner工具利用obj_mouse_语句来记录在定制对象的操作。
什么是虚拟对象
虚拟对象是指应用程序中的一些外观和行为与GUI对象类似的位图。WinRunner工具利用win_mouse_click 语句来记录操作。通过定义一个位图对象为虚拟对象,当你录制并运行测试时,你可以教WinRunner工具将它象一个GUI对象一样对待。
参考资料
功能自动化测试工具——WinRunner篇.51Testing软件测试网.2024-08-30
winrunner 测试工具.博客园.2024-08-30
目录
概述
功能特点
创建测试
插入检查点
验证数据
增强测试
函数生成器
虚拟对象向导
运行测试
分析结果
维护测试
无线应用准备
使用技巧
通配符
文件路径
控件识别问题
建立数据库检查点
自动加载GUI Map文件
测试过程
GUI Map文件
脚本语言
录制模式
运行模式
Add-In
验证点
同步点
编译模块
数据驱动测试
定制对象
虚拟对象
无法识别GUI对象的原因
启动文件
输入测试脚本相关信息
如何处理定制对象
什么是虚拟对象
参考资料