1. WinRunner在项目中的作用

可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。

  1. WinRunner的测试过程

主要包括如下6个阶段:

1).    创建GUI Map文件:WinRunner可以通过它来识别被测试应用程序中的GUI对象。

2).    创建测试脚本:通过录制,编程,或两者的组合创建。在录制测试脚本时,在你想检查被测试应用程序响应的地方插入验证点。

3).    调试脚本:用调试(Debug)的模式运行测试脚本以确保它们可以平稳地运行。还可以使用WinRunner提供的Step, Step Into, Step out功能来调试脚本。

4).    运行测试:用验证(Verify)的模式运行测试脚本来测试你的应用程序。当WinRunner在运行中碰到验证点时,它会将被测应用程序中的当前数据和以前捕捉的期望数据进行比较,如果发现了任何不匹配,WinRunner将会把目前的情况捕捉下来作为真实的结果。

5).    检查结果:确定测试脚本的成功或是失败。在每次测试脚本运行结束之后,WinRunner会将结果显示在报告中。它描述了所有在运行中碰到的重要的事件,例如验证点,错误信息,系统信息或是用户信息。如果发现在运行中有任何不匹配的验证点,你可以在测试结果窗口中查看期望的和实际的结果。

6).    提交缺陷:如果一个测试脚本是由于所测试应用程序中的缺陷而导致失败的,你可以直接从测试结果窗口中提取缺陷的相关信息。

  1. 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在一个特定的窗口上运行脚本时,它可以用这些在内存中的信息识别对象。

  1. WinRunner的脚本语言

WinRunner的脚本语言是Mercury Interactive’s Test Script Language (TSL),这是一种类C的脚本语言。你可以通过增加另外的TSL函数和编程元素(例如Windows API)或WinRunner的虚拟编程工具(函数生成器(Function Generator))来增强你录制的脚本。

  1. WinRunner的录制模式

在WinRunner中,有两种不同的录制模式:

·              环境判断录制(Context Sensitive recording):通过识别GUI对象录制你在被测应用程序中执行的操作。

·              模拟录制(Analog recording):录制键盘的输入,鼠标的点击,和鼠标指针在屏幕上精确的x,y轴

  1. WinRunner的运行模式

在WinRunner中,有三种不同的运行模式:

·              验证Verify:使用这种方式来检查你的应用程序

·              调试Debug:使用这种方式来帮助你识别测试脚本中的bug

·              更新Update:使用这种方式来更新测试脚本的期望结果或创建一个新的期望结果文件夹

  1. WinRunner的Add-In

载入Add-Ins实际上是将在Add-In中的特殊的函数装载到内存中。当创建测试脚本时,只有这些选中的Add-In中的函数会列在函数生成器中,在运行脚本时,只有那些在载入的Add-In中的函数可以被执行,否则WinRunner将会给出一个不能识别函数的错误信息。

  1. WinRunner的验证点(Checkpoint)

验证点可以把被测应用程序的当前行为和早前版本的行为进行比较。

在WinRunner中有4种验证点:

·              GUI checkpoints:验证GUI对象的信息。例如,你可以检查一个按钮是否可用或查看在一个列表中哪一个选项被选中。

·              Bitmap checkpoints:给窗口或所测试应用程序的部分做快照,并把它和早先版本中捕捉的图像做比较。

·              Text checkpoints :在GUI对象或位图中读取文字,使你可以验证它们的内容。

·              Database checkpoints:基于你创建在数据库的查询,检查一个结果集的内容和列、行的数量

Checklist文件包含了我们正在验证的对象的属性和相关信息 。gui*.chk文件包含了期望的结果,并储存在exp文件夹中。

  1. 同步点(synchronization points)

同步点使你可以解决预期的在测试脚本和你应用程序之间的时间问题。例如,如果你创建一个打开数据库应用程序的测试脚本,你可以增加一个同步点以让测试脚本等待直到数据库中的记录载入到屏幕上。

对于模拟测试(Analog testing),你也可以使用一个同步点来确保WinRunner在一个指定的位置重新放置窗口。当你运行一个测试脚本时,鼠标指针沿着准确的坐标行进。重新放置窗口使鼠标指针接触到窗口中正确的元素。

  1. 编译模块(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");

  1. 数据驱动测试(data driven tests)

当你测试你的应用程序时,你或许想检查它如何执行有着大量数据集的相同操作。你可以用一个运行10次的循环来创建一个数据驱动测试:每次循环运行时,它由不同的数据集驱动。为了使WinRunner 能够使用数据来驱动测试,你必须将数据连接到所要驱动的测试脚本。这就叫参数化(parameterizing)你的测试。数据存储在一个数据表格(data table)中。你可以手工执行这些操作,或使用DataDriver Wizard来参数化你的测试脚本并储存数据在数据表格中。

数据驱动测试的步骤如下:

·              创建一测试脚本

·              转换为数据驱动的测试脚本并准备一个数据库

·              运行测试脚本

·              分析测试结果

13.  启动文件(start up file)

在General Options ->Environment-> Startup文本框中,选择或输入你希望作为启动文件的 测试脚本

14.  输入测试脚本的相关信息

在创建一个测试脚本之前,你可以在Test Properties-> General和 Description中输入和脚本相关的信息,如被测功能的类型,测试脚本的详细描述,引用的相关功能说明书文档

15.  如何处理定制对象(custom objects)?

定制对象是不属于WinRunner所使用的标准类之一的任何GUI 对象。WinRunner学习此类的对象为generic "object"类。WinRunner利用obj_mouse_语句来记录在定制对象的操作。

如果定制对象和一个标准的对象很相似,你可以映射它为标准类别之一。你也可以在环境判断测试(Context Sensitive testing)时配置WinRunner用于识别定制对象的属性。

16.  什么是虚拟对象(virtual object)并且如何使用它们?

应用程序可能会含有一些外观和行为和GUI对象相似的位图。WinRunner利用win_mouse_click 语句来记录操作。通过定义一个位图对象为虚拟对象,当你录制并运行测试时,你可以教WinRunner将它象一个GUI对象一样对待。

12.  无法识别GUI对象的原因

WinRunner会由于以下多种原因导致不能识别GUI对象。

·               不是标准的Windows对象

·               没有安装所需的Add-In

·               如果所使用的浏览器和WinRunner的版本不兼容,GUI Map编辑器将不能认识在浏览器窗口中显示的任何对象

。。。

WinRunner介绍 (不断更新)相关推荐

  1. 失落城堡手游获取服务器信息99,失落城堡手游更新情况介绍 游戏更新大全

    大家好,在最近的失落城堡的游戏中就有很多的更新,具体的更新情况和改动就让我们一起来看看吧. 落城堡手游1.1.0.20优化什么?作为活动副本,有着出色玩法.小编带来玩法详情,新版战斗来临. ios同步 ...

  2. 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新

    一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...

  3. 官方在线会议详细介绍CISSP更新及知识域讲解

    [官方.权威]关于CISSP,您想知道的都在这里! CISSP考试大纲将于5月1日更新,同时考试费也将上调为749美元!还有什么更新和详情您需要了解? 3月30日下午2:00,CISSP官方中文在线宣 ...

  4. 点云格式介绍(更新中,待补充)

    常见点云存储方式有pcd.ply.txt.bin文件. 一.点云的基本组成 点云组成可以是以下几种形式数据的排列组合. (1)x.y.z:点云的空间坐标. (2)i:强度值,强度反应了点的密集成度. ...

  5. iapp退出软件按钮代码_番茄·人生软件介绍 及 更新日志

    软件网址:www.tomatolist.com 软件介绍:有哪些好用的番茄工作法软件? 功能建议和Bug反馈,请反馈至知乎用户群 番茄人生软件用户圈 - 知乎​www.zhihu.com 0805版 ...

  6. 【在线实习】推推项目课程介绍—小说更新就通知

    正式秋招即将开始,没有项目经历或者简历上毫无亮点的同学们这个时候就开始着急.今天给大家介绍一下校招VIP的在线实习推推-小说更新就通知. 推推简介 1. 免费的直播课程项目 一个真实的大学生商用项目. ...

  7. 电气备自投笔记书籍介绍(持续更新中)

    本文为介绍自己的读书整理笔记. 把笔记整理成自己的书籍. 具体见微信公众号:小余学电气 文章目录 备自投目录 备自投目录 一 备自投装置的作用 2 二 备自投的基本作用 4 三 备自投的动作条件 6 ...

  8. Windows10 2021年5月更新正式推出,驱动人生详细介绍win10更新新功能

    驱动人生最新消息,Windows 10 2021年5月更新现已正式推出啦! 驱动人生8手把手教你如何操作,两种下载教程如下 方法1 ①.在官网(160.com)下载驱动人生8 ②. 打开驱动人生8,选 ...

  9. 从零学起之安卓篇《按键精灵安卓版找图找色应用汇总介绍》更新20

    本期主题:介绍目前手机按键(按键精灵安卓版)在编写脚本中,都需要用到哪些方式进行图色识别. 惯例先讲好处: 1.找色,如何计算颜色相似度,解决不同款式手机中画面颜色差异的问题. 2.找图,不太推荐,我 ...

  10. Instruments模板介绍(更新中...)

    第一章.Instruments(仪器)快速入门 Instruments可以用来收集关于一个或者多个系统进程的性能和行为的数据,并跟踪睡着时间产生的数据.它提供了好几个分析模板: Blank 任何类型都 ...

最新文章

  1. extend 与 append 的区别
  2. mongodb 的windows 下安装
  3. 重学java基础第六课:markdown语法
  4. 信号扫描_微观世界扫描电子显微镜(SEM)
  5. 【Java程序设计】类与对象的基本概念(下)
  6. sql server从数据库导出导入教程
  7. 分布式作业 Elastic Job 如何动态调整?
  8. 【Hoxton.SR1版本】Spring Cloud Ribbon负载均衡服务调用
  9. 程序员代码面试指南:IT名企算法与数据结构题目 PDF 版
  10. wireshark抓包QQ查IP
  11. SSD-caffe踩keng
  12. 2-3、迭代法计算定积分
  13. 使用python来进行用户流失预测的实战
  14. A_A03_005 STM32程序J-LINK下载
  15. 计算图替代——一种DNN框架计算图优化方法
  16. 卸载wps后桌面上的office文件图标变成了白色(亲测有效)
  17. 计算机各键的知识,联想电脑各功能键的说明
  18. 安卓刷量技术揭秘(一) 工具篇
  19. 【NOIP 2016】Day1 T2 天天爱跑步
  20. Linux的网络配置及jdk的安装

热门文章

  1. Galaxy+note3+android+5.0,三星NOTE3 SM-N9008S原厂刷机包5.0Rom固件ZCSCQD1线刷包
  2. 微型计算机原理考试试卷,微机原理与应用试题库(附答案)
  3. 京东下单接口sdk java,Flutter 插件开发-接入京东SDK唤醒(ios篇)
  4. matlab绘图颜色RGB
  5. java项目开发——使用MAP和实体类作为参数的优缺点
  6. keil c51v952详细安装教程
  7. 车辆动力学模型在仿真测试中的应用实践
  8. java版简易计算器,java 简易计算器
  9. 软件工程专业学生的自我反思
  10. EPLAN软件卡顿的解决办法