WinRunner在项目中的作用

WinRunner在项目中的作用可以用 WinRunner 为所测试应用程序的 GUI 功能和回归测试创建自动化脚本 WinRunner 的测试过程主要包括如下 6 个阶段 1 nbsp nbsp nbsp nbsp 创建 GUIMap 文件 WinRunner 可以通过它来识别被测试应用程序中的 GUI 对象 2 nbsp nbsp nbsp nbsp 创建测试脚本 通过录制 编程 或两者的组合创建 在录制测试脚本时 在你想检查被测试应用程序响应的地方插入验证点

可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。
WinRunner的测试过程
主要包括如下6个阶段:
1).     创建GUI Map文件:WinRunner可以通过它来识别被测试应用程序中的GUI对象。
2).     创建测试脚本:通过录制,编程,或两者的组合创建。在录制测试脚本时,在你想检查被测试应用程序响应的地方插入验证点。
3).     调试脚本:用调试(Debug)的模式运行测试脚本以确保它们可以平稳地运行。还可以使用WinRunner提供的Step, Step Into, Step out功能来调试脚本。
4).      运行测试:用验证(Verify)的模式运行测试脚本来测试你的应用程序。当WinRunner在运行中碰到验证点时,它会将被测应用程序中的当 前数据和以前捕捉的期望数据进行比较,如果发现了任何不匹配,WinRunner将会把目前的情况捕捉下来作为真实的结果。
5).     检查结果:确定测试脚本的成功或是失败。在每次测试脚本运行结束之后,WinRunner会将结果显示在报告中。它描述了所有在运行中碰到的重要的事件, 例如验证点,错误信息,系统信息或是用户信息。如果发现在运行中有任何不匹配的验证点,你可以在测试结果窗口中查看期望的和实际的结果。
6).     提交缺陷:如果一个测试脚本是由于所测试应用程序中的缺陷而导致失败的,你可以直接从测试结果窗口中提取缺陷的相关信息。
WinRunner 的GUI Map文件
WinRunner 利用GUI Map文件来识别应用程序中的对象。它将学习到的窗口或对象信息储存在GUI Map文件中。当WinRunner运行测试脚本时,它利用 GUI Map来定位对象。它从GUI Map文件中读取对象的描述并且在被测应用程序中寻找具有相同属性的对象。
在GUI Map文件 中的每一个对象都有一个逻辑名称(logical name)和一个物理描述(physical description)。对象的逻辑名称是由其类决定 的。在大多数情况下,我们可以将逻辑名称看成是显示在对象上的标签。你可以修改已分配的逻辑名称当它不是十分具有描述性或太长的时候。当对象的属性发生改 变时,你必须要修改其物理描述。
GUI Map文件的扩展名是”.gui”。
GUI Map文件分为两种类型:
·               全局GUI Map文件:一个为整个应用程序使用的GUI Map文件
·               每个测试脚本的GUI Map文件:在每个测试脚本创建之后,WinRunner会自动为其创建一个GUI Map文件。
我们可以通过工具菜单中GUI Map Editor来查看当前载入的GUI Map文件及其内容。GUI Map Editor 显示多个已创建的GUI Map文件和认识到的带有逻辑名和物理描述的窗口和对象。
在录制脚本时,WinRunner会自已学习对象和窗口,并将它们储存在临时的GUI Map文件中。我们可以在General选项中指定是否需要每次都载入这种临时GUI Map。
当我们载入一个GUI Map文件时,关于窗口和对象的信息连同其逻辑名称和物理描述都载入到内存中。因此当WinRunner在一个特定的窗口上运行脚本时,它可以用这些在内存中的信息识别对象。
WinRunner的脚本语言
WinRunner 的脚本语言是Mercury Interactive’s Test Script Language (TSL),这是一种类C的脚本语言。你可以通过 增加另外的TSL函数和编程元素(例如Windows API)或WinRunner的虚拟编程工具(函数生成器 (Function Generator))来增强你录制的脚本。
WinRunner的录制模式
在WinRunner中,有两种不同的录制模式:
·               环境判断录制(Context Sensitive recording):通过识别GUI对象录制你在被测应用程序中执行的操作。
·               模拟录制(Analog recording):录制键盘的输入,鼠标的点击,和鼠标指针在屏幕上精确的x,y轴
WinRunner的运行模式
在WinRunner中,有三种不同的运行模式:
·               验证Verify:使用这种方式来检查你的应用程序
·               调试Debug:使用这种方式来帮助你识别测试脚本中的bug
·               更新Update:使用这种方式来更新测试脚本的期望结果或创建一个新的期望结果文件夹
WinRunner的Add-In
载 入Add-Ins实际上是将在Add-In中的特殊的函数装载到内存中。当创建测试脚本时,只有这些选中的Add-In中的函数会列在函数生成器中,在运 行脚本时,只有那些在载入的Add-In中的函数可以被执行,否则WinRunner将会给出一个不能识别函数的错误信息。
WinRunner的验证点(Checkpoint)
验证点可以把被测应用程序的当前行为和早前版本的行为进行比较。
在WinRunner中有4种验证点
·               GUI checkpoints:验证GUI对象的信息。例如,你可以检查一个按钮是否可用或查看在一个列表中哪一个选项被选中。
·               Bitmap checkpoints:给窗口或所测试应用程序的部分做快照,并把它和早先版本中捕捉的图像做比较。
·               Text checkpoints :在GUI对象或位图中读取文字,使你可以验证它们的内容。
·               Database checkpoints:基于你创建在数据库的查询,检查一个结果集的内容和列、行的数量
Checklist文件包含了我们正在验证的对象的属性和相关信息 。gui*.chk文件包含了期望的结果,并储存在exp文件夹中。  
同步点(synchronization points)
同步点使你可以解决预期的在测试脚本和你应用程序之间的时间问题。例如,如果你创建一个打开数据库应用程序的测试脚本,你可以增加一个同步点以让测试脚本等待直到数据库中的记录载入到屏幕上。
对于模拟测试(Analog testing) ,你也可以使用一个同步点来确保WinRunner在一个指定的位置重新放置窗口。当你运行一个测试脚本时,鼠标指针沿着准确的坐标行进。重新放置窗口使鼠标指针接触到窗口中正确的元素。
编译模块(compile module)
编译模块实际上也是一种脚本,只不过它包含了一个可以被其它的测试脚本频繁地调用,用户自定义函数集的库文件。当你载入一个编译模块时,它的函数将自动的被编译并保存在内存中。其它的测试脚本可以直接调用它们。
编译模块可以改进脚本的组织和性能。由于你在使用它们之前已经调试过编译模块,因此你的测试脚本只需要少量的错误检查。另外,调用一个已经编译的函数明显地比解释测试脚本中的函数快得多。
当编译模块用来储存可重用的函数时,测试脚本包含了在WinRunner中的可执行文件。编译模块是不可执行的。
在保存为编译模块时,WinRunner会自动执行一次预编译。
默认情况下,包含TSL代码的模块的属性是“main”。主模块可以在其他的模块中被调用执行。除了当WinRunner识别到一个“call”语句时,主模块会被动态地被编译为机器代码。例如:
call cso_init();
call( “C://MyAppFolder//” & “app_init” );
编译模块被载入到内存中以便其他模块引用。
reload (“C://MyAppFolder//” & “flt_lib”) 或load (“C://MyAppFolder//” & “flt_lib”);
数据驱动测试(data driven tests)
当 你测试你的应用程序时,你或许想检查它如何执行有着大量数据集的相同操作。你可以用一个运行10次的循环来创建一个数据驱动测试:每次循环运行时,它由不 同的数据集驱动。为了使WinRunner 能够使用数据来驱动测试,你必须将数据连接到所要驱动的测试脚本。这就叫参数化 (parameterizing)你的测试。数据存储在一个数据表格(data table)中。你可以手工执行这些操作,或使用 DataDriver Wizard来参数化你的测试脚本并储存数据在数据表格中。
数据驱动测试的步骤如下:
·               创建一测试脚本
·               转换为数据驱动的测试脚本并准备一个数据库
·               运行测试脚本
·               分析测试结果
无法识别GUI对象的原因
WinRunner会由于以下多种原因导致不能识别GUI对象。
·                不是标准的Windows对象
·                没有安装所需的Add-In
·                如果所使用的浏览器和WinRunner的版本不兼容,GUI Map编辑器将不能认识在浏览器窗口中显示的任何对象
。。。
启动文件(start up file)
在General Options ->Environment-> Startup文本框中,选择或输入你希望作为启动文件的 测试脚本
输入测试脚本的相关信息
在创建一个测试脚本之前,你可以在Test Properties-> General

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224261.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:20
下一篇 2026年3月17日 下午12:20


相关推荐

  • 挑战10个最难回答的Java面试题(附答案)

    译者:Yujiaaosegmentfault.com/a/1190000019962661推荐阅读(点击即可跳转阅读)1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.Mybatis内容聚合5.多线程内容聚合这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。…

    2022年4月14日
    73
  • 【Python精华】100个Python练手小程序

    【Python精华】100个Python练手小程序100 个 Python 练手小程序 学习 python 的很好的资料 覆盖了 python 中的每一部分 可以边学习边练习 更容易掌握 python 程序 1 题目 有 1 2 3 4 个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 1 程序分析 可填在百位 十位 个位的数字都是 1 2 3 4 组成所有的排列后再去 掉不满足条件的排列 2 程序源代码 fori

    2026年3月20日
    2
  • Kubernetes Pod Evicted[通俗易懂]

    Kubernetes Pod Evicted[通俗易懂]一、背景以及措施近日Kubernetes测试集群Pod状态出现Evicted现象,但是项目还是能正常提供服务,最先的解决办法是手动将Evicted状态的Pod删除。#查看Evicted状态的Pod[ops@dev-gate~]#kubectlgetpods-nstaging-services|grepEvictedeureka-server-02-7f658c4dfc-zwtqk0/1Evicted

    2022年5月17日
    73
  • 基于阿里云Aliddns动态域名解析的客户端PHP实现与服务器端(包含C与PHP)实现

    基于阿里云Aliddns动态域名解析的客户端PHP实现与服务器端(包含C与PHP)实现很多朋友的公司或家里有一台上网的机器,这些上网的机器有些能够获得公网IP,但是这些IP通常不固定。大家都想充分利用这些上网设备的网络能力来搭建服务器环境,但由于IP地址老是变化,因此,即使是给这些机器分配了域名,也时常无法访问。于是,很多人想到了动态域名解析,即域名不变,IP地址变化,域名解析记录能够跟随IP地址变化,目前市场上有几种商业的解析方案实现,例如花生壳,更多的就不举例了,避免给他们做免费广告。这些都要收费,而且可能要通过CNAME(将您的域名解析成别人的域名)方式…

    2022年6月2日
    40
  • portainer添加mysql

    portainer添加mysql自己安装 mysql 的时候老是遇到问题 比如端口号没写 环境变量没写 就是想不到去 dockerhub 上去看一看 介绍两种方式安装 mysql 方式一 container Image 端口号环境变量最主要是用环境变量设置用户名和密码 MYSQL ROOT PASSWORD 比如 name MYSQL ROOT PASSWORDvalu 方式

    2026年3月17日
    3
  • 结合Java详谈字符编码和字符集

    结合Java详谈字符编码和字符集字符编码和字符集是两个基础性的概念 很多开发人员对其都并不陌生 但是很少有人能将其讲得很准确 当应用出现乱码时 如何分析和定位原因 很多人仍是一头雾水 这篇文章 将从字符编码和字符集的相关概念开始讲解 然后结合 Java 进行实例分析 字符编码和字符集的概念字符集 characterset 是一个系统支持的所有抽象字符的集合 字符 character 就是各种文字和符号 包括国家文字 标点符

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号