《RFT软件功能自动化测试入门.ppt》由会员分享,可在线阅读,更多相关《RFT软件功能自动化测试入门.ppt(40页珍藏版)》请在三一办公上搜索。
1、RFT软件功能自动化测试培训,广州卓业信息技术有限公司项目合作处,Zerozhang 2013-4-8,目 录,RFT概述,IBM Rational Functional Tester:(简称RFT)是Rational软件公司(现在Rational公司被IBM并购,是IBM 软件集团旗下之第五大软件品牌)创造的一款先进的、自动化的功能和回归测试工具;操作平台(Eclipse):与IBM Rational整个测试生命周期软件完美集成,实现了一个平台统一整个软件开发团队的能力;测试人员只要在开发人员工作的Eclipse环境中打开Functional Test透视图,就会马上拥有专业的自动化功能测试
2、工具所拥有的全部功能;Rational Functional Tester 的基础:针对于Java、.NET的对象技术和基于 Web 应用程序的录制、回放功能;Rational Functional Tester 脚本语言和开发环境:选择 Eclipse 框架中的 Java 或 Microsoft Visual Studio.NET 开发环境中的 Microsoft Visual Basic.NET。这意味着不论开发人员选择的是什么语言或平台,都应该能够将开发和自动测试整合在一起,并利用开发工具的一些特点;基于Wizard的智能数据驱动的软件测试技术;提高测试脚本重用的ScriptAssura
3、nce技术;目前为 IBM 的专有技术,通过对用户界面细节的识别阈值的定制,来实现了一种先进的查找最合理候选对象的匹配机制,使得脚本的维护工作不再囿于界面的频繁改动,变得更加轻松。与其它生命周期管理软件的完美集成:IBM Rational的自动化功能测试工具基于Eclipse平台,提供了和需求管理工具(RequisitePro)、建模工具、代码级测试工具和变更及配置管理工具(ClearQuest和ClearCase)的完美集成,这使得系统测试人员能够和整个软件开发团队在同一个软件平台上,实现系统功能测试,完成测试脚本的配置管理和缺陷追踪。,自动化测试,自动化测试定义:把以人为驱动的测试行为转化
4、为机器执行的一种过程;与手工测试相比,测试自动化的优势:首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想;实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试,通常需要同时满足以下条件:1)软件需求变动不频繁。;2)项目周期足够长。;3)自动化测试脚本可重复使用。通常适合于软件测试自动化的场合:(1)
5、回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;(3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性;(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖;,自动化测试过程,自动化测试过程:与软件开发过程从本质上来讲是一样的,利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编
6、码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)1)自动化测试需求分析 测试需求说明书2)测试计划确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档;3)自动化测试框架的搭建确定自动化测试框架需要调用哪些文件、结构,调用的过程,以及文件结构如何划分;4)测试用例设计编写测试用例或开发测试脚本;5)测试调试测试(针对自动化测试脚本);6)评估评估测试结果并改进测试过程;,自动化测试框架,自动化测试框架:由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件
7、结构如何划分等;测试框架的典型要素:公用的对象;不同的测试用例具有的一些可被重复使用的相同的对象;公用的环境;独立封装可重复使用的测试环境;公用的方法;经常重复使用独立编写的方法;测试数据;多个测试数据放在一个独立的文件中由测试用例执行时读取到;自动化测试框架的其他定义:一套自动化测试管理系统被称之为测试框架;一个自动化测试工具被冠以关键字驱动框架之名;一段程序也被声称其实现了数据驱动的框架;自动化测试框架犹如盲人摸象中的那头大象一样,有人说它是一个软件,只不过它的功能是测试另外一个软件,有人认为它是一套流程和规范;所谓“自动化测试框架”这个概念只是一个封装了很多东西的盒子,这个盒子的外观和形
8、状对我们来说无关紧要,我们最更关心怎样构建一个高效务实的自动化测试解决方案。,STAF自动化测试框架,Software Test Automation Framework(STAF):一个开源的、跨平台、支持多语言的自动化测试框架,它是基于可重用的组件来构建的;基于 RFT 和 STAF 进行的无需人工干预的跨平台自动化回归测试;在拿到新版本的软件之后自动触发回归测试,自动记录执行结果,并且发送通知;自动触发回归测试 定时检测服务器端的软件版本,一旦检测到服务器端已经上载完全的新版本的软件,就可以调用 STAF 的信号量服务来触发自动回归测试;自动发送测试结果 在执行完回归测试的自动脚本并且将
9、结果记入数据库之后,在将结果传回 STAF 服务器的同时,还可以发送邮件将测试结果通知给相关人员;,STAF测试流程图,自动化测试流程图,RFT功能自动化测试本质,对象识别:从开发的角度看,GUI 通常都是基于某一 GUI 开发库(SWT/SWING/AWT),这些库通常是按照面向对象的方式进行建模的,它将每一个 GUI 元素映射成该库中某一个类的对象;从测试的角度看,所有的 GUI 元素,无论基于何种 GUI 库,都被 RFT 映射成对象,RFT 提供一个对象模型框架管理各种 GUI 元素;验证点:在RFT中,验证点是脚本(Script)中非常重要的组成部分,它完成对被测试程序生成的实际数据
10、和期望数据的比较,并将比较结果写入日志。一般情况下,测试的结果是通过对验证点的执行而得到的;静态验证点(Static Verification Point),RFT功能自动化测试本质,数据驱动:用一个数据文件把测试脚本驱动起来,来达到更接近用户化更智能的测试其目的是把测试人员从维护复杂的脚本程序中解放出来,只需维护好数据文件即可,减少了很多修改脚本的麻烦;关键字驱动:1)界面元素名与测试内部对象名的分离;2)测试描述与具体实现细节的分离;3)脚本与数据的分离;,RFT对象识别,从开发的角度看,GUI 通常都是基于某一 GUI 开发库(SWT/SWING/AWT),这些库通常是按照面向对象的方式
11、进行建模的,它将每一个 GUI 元素映射成该库中某一个类的对象;从测试的角度看,所有的 GUI 元素,无论基于何种 GUI 库,都被 RFT 映射成对象,RFT 提供一个对象模型框架管理各种 GUI 元素;RFT 对象识别:基于 RFT 的自动化测试,都会采用 IBM 推荐的 ITCL 框架。在这个框架下,所有的脚本被划分为三个层次:对象层,任务层,用例层。对象识别就是在 RFT 的对象模型框架下,得到被测程序的 GUI 对象。它是对象层开发中最核心的任务。常用的 RFT 的对象识别技术:可以分为两大类:静态识别与动态识别。动态和静态方法各有优缺点,静态方法识别效率高、开发成本比较低,但是脚本
12、的可维护性比较差;而动态方法刚好相反;常用的对象识别技术:可以识别出大部分的 GUI 元素,但有时也会遇到 RFT 无法识别的 GUI 元素,事实上识别这类用常用对象识别技术无法识别的 GUI 元素占用了 RFT 脚本开发的大部分时间,不同的对象识别技术:IWindow 接口用于识别 windows 标准控件;Invoke 方法用于识别应用程序定制的 GUI 控件;,RFT对象识别,使用 RFT 经常听到的一个谬论就是 RFT 只能测试基于 java 的 GUI 程序,对于 C/C+或者 windows 标准控件,RFT 无法识别。事实上,RFT 提供了 IWindow 接口用于识别平台相关的
13、控件;IWindow 接口介绍:IWindow 接口也继承自 IGraphical 接口,从这点看,IWindow 接口具有与 GuiTestObject 类似的功能。使用 IWindow 接口能够识别平台相关的 GUI 控件,但是其接口函数的具体实现与平台相关,windows 与 linux 上的实现就不一样;Invoke 方法介绍:在进行 GUI 自动化测试时,一个经常遇到的问题就是如何测试开发者定制的控件?通常一组定制的控件,是作为一个整体被 RFT 识别出来,可以对这个整体作一些操作,但是如何识别出每一个具体的定制控件呢?可以使用 TestObject 类提供的方法:Invoke 函数
14、。Invoke 方法类似于 java 中的反射机制,它可以在运行时而不是编译时调用函数。通俗地说,在 RFT 中,它可以根据字符串来调用相应的函数。这使得不仅可以调用某些确定的方法(如 GuiTestObject 的方法),还可以主动查询定制控件本身提供的方法,大大加强了对象识别能力。AutoIt 介绍:AutoIt 是一种在 windows 平台上,针对 C/C+以及 windows 标准控件的,免费、开源的自动化管理工具。AutoIt 本身有一种非常简单的脚本语言,这种脚本语言类于 Basic,并且其脚本可以直接转化为可执行程序且不依赖于任何库。事实上,AutoIt 的这些功能,RFT 提
15、供的 IWindow 接口也能够完成,但 AutoIt 具有更高的效率;,验证点,在RFT中,验证点是脚本(Script)中非常重要的组成部分,它完成对被测试程序生成的实际数据和期望数据的比较,并将比较结果写入日志。一般情况下,测试的结果是通过对验证点的执行而得到的;静态验证点(Static Verification Point):静态验证点是在录制(Record)RFT脚本的过程中通过向导插入的验证点,它在脚本回放(Playback)的过程中自动被验证;以录制-回放(Record-Playback)模式使用RFT进行图形界面(GUI)的自动化回归测试(Regression Test),较常用
16、的是静态验证点。手动验证点(Manual Verification Point):如果验证点所要验证的内容是由脚本开发人员在脚本中所提供的,则需要建立手动验证点对其进行验证。例如待验证数据来自外部数据源的情况,脚本开发人员需将数据读取后以参数的形式显式传给验证点;非图形化界面存在的大量的用户自定义类型对象,这些被测试对象并不能在录制过程中被插入对象映射表(ObjectMap)中,也就是不能使用静态验证点来进行验证,这就需要我们使用手动验证点来比较它们。动态验证点(Dynamic Verification Point):动态验证点用来处理普通验证点的期望值随着输入参数不同而发生变化的情况,可以再
17、在验证点中使用正则表达式或使用数据驱动的方法建立动态验证点。动态验证点是在脚本首次回放时建立的,验证点一旦建立,其行为就和静态验证点相同了。,验证点,动态实现验证点测试的基本思路:首先测试人员可以将被测试控件和预期结果分别配置在两个文件中。因为几乎每个被测试的控件通常都和某些特征标签文本相邻,我们只需要在文件中清楚地配置出这种相对位置关系即可。在运行的时候,主程序会读取这两个配置文件,并在测试对象树上面搜索被测试控件。一旦搜索到该控件,则从该控件的属性集合中取出对应的属性值,和配置文件中的预期结果进行比对,最终得以判断该校验点是否通过;动态验证点用来处理普通验证点的期望值随着输入参数不同而发生
18、变化的情况。静态方法和动态方法对比:,JAVA语言基础,了解一些基本的java语言概念对较好的掌握RFT有很大的帮助。面向对象的编程语言 利用类和对象将问题的数据和操作封装起来,并用标准接口与外界交互,使代表客观世界实体的各种类在程序中能独立和继承;抽象 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。抽象的角度取决于分析问题的目的;对编程者来讲,重要的是理解现实系统如何抽象转化为软件系统;在编程阶段,通过抽象找出各种类,再对各种类之间的消息进行收集和处理,把问题分解为许多标准接口 的构件,当问题有变化时通过解除和更换现实软件的某些构件代码来适应变化。封装 将抽象得到的数
19、据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,通过一个公用接口和消息与其他对象通信;通过封装使一部分成员(修饰符public等)充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。程序封装的最小单位“类”;继承 子类的派生过程称为类的继承,继承是抽象分层管理的实现机制;继承允许一个新类包含另一个已有类的状态和行为;多态 允许一个类中有多个同名方法,但方法的具体实现却不同的机制;方法的重载(复杂的多态)/方法的覆盖(简单的多态),
20、JAVA语言基础,类、对象与实例 类是对具有相同特性对象的封装组合,是java程序的基本单位;类是对象的抽象;对象是类的实例;对象与实例是两个同义词;类声明及修饰符 public/abstract/final extends/implements成员变量及修饰符成员变量定义了类的特性,修饰符说明使用该变量的权限和规则;public/protected/private/static/成员方法及修饰符成员方法定义了类的操作;public/protected/private/static/abstract/native/synchronized/final返回类型及参数列表;对象的主要属性状态和行为
21、是对象的主要属性;对象的状态用变量表示,又称为对象的静态属性;对象的 行为用方法表示,又称为对象的动态属性;包 包是java语言对一组相关的类,接口和子包进行封装的机制;java利用包来管理类名空间,有利于类和接口的安全扩展和引用,包是有唯一命名的类的集合;,JAVA语言基础,接口:为了实现多继承并简化其复杂性,其主要功能有,不管类的层次,不同的类可以有相同的接口,接口只声明方法,但并不实现任何方法;一个类可实现许多接口,但只有同一个父类;接口不仅是抽象类,其用途远胜于抽象类;当用一个类去实现接口时,该类必须实现该接口的所有方法和它的父接口;流程控制分支语句;if/if-else/if-els
22、e if/switch-case语句;循环语句;while/do-while/for循环语句;跳转语句;break/continue/return语句;嵌套及递归;数组存储一系列同类型数据元素的一种数据结构;一维数组声明:type arrayName;type arrayName;创建一维数组语法:arrayName=new typearraySize;异常为了尽量减少因程序出错而停止运行,java语言提供了异常机制;为那些可预料和非预料的异常提供统一的程序出口;将异常情况在方法调用中进行传递,将异常情况传递到合适的位置再进行处理;,配置RFT测试环境,RFT的安装操作平台(vmware虚拟机
23、平台):一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行 不同的操作系统,和进行开发、测试、部署新的应用程序的最佳解决方案。VMware Workstation 可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。操作系统:在vmware虚拟机安装winxp操作系统;集成开发环境:Eclipse;著名的跨平台的自由集成开发环境(IDE)。本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。Eclipse的基础是富客户机平台(Rich Client P
24、latform,即RCP)。Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;Eclipse的插件机制是轻型软件组件化架构Eclipse的思想是:一切设计皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上Java开发环境(JDK):java Development kit(简称JDK),RFT安装包自带,一般不需另外安装;JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK版本:SE(J2SE),standard edition;标
25、准版;EE(J2EE),enterprise edition;企业版ME(J2ME),micro edition;,调整视图及相关配置,启动RFT运行环境:双击“java scripting”;调整视图(几个重要的视图):Functional test项目视图:默认视图;点击 Window Open Perspective Other,来打开 Functional Test 视图。在 Open 视图中,选择 Functional Test,然后点击 OK,Open 视角窗口,调整视图及相关配置,脚本资源管理器视图;在 RFT 中,对 SWT 原生态控件的识别是通过测试对象映射来实现的。当用户创
26、建一个 Functional Test 脚本后,在脚本资源管理器视图中就会出现与这个脚本相关的测试资源。而这个脚本专用的测试对象映射就包含在测试对象文件夹下面,如下图所示。图 1.脚本资源管理器视图除了脚本资源管理器,用户还可以从“脚本”菜单中打开测试对象映射。双击打开专用测试对象映射,在“测试对象”菜单中点击“插入对象”,得到对象查找器。,调整视图及相关配置,Java编辑器;Functional Tester 的 Java Development Tooling(JDT)提供了一个编辑器,使用它能够使用 Java 语言进行测试脚本的编辑。这个编辑器有以下特性:语法突出表示:帮助查找和编辑脚本
27、中的不同元素。不同的语法元素(比如,注释、关键字和内建类型等)使用不同的颜色进行突出表示,这样能够使更容易的查看和编辑脚本。内容(代码)助手:当输入某些代码片断时,内容(代码)助手自动帮助完成代码。在想要自动完成代码的地方按住键。下图中的一个列表显示出来,可以在列表中选择需要的选项。代码格式化:当正在编辑一个脚本时,这个特性可以通过上下文菜单得到。右键点击想要格式化的代码,以显示上下文菜单。能够通过窗口首选项Java 代码格式器来设置代码格式化的配置。文本提示:当将鼠标光标放到一个对象或者方法上时,将会显示出这个对象的属性或者方法被定义在哪个Java包中。显示所有/显示部分源码:能够隐藏需要看
28、到的脚本部分。可以通过点击代码左侧的下拉箭头来显示和隐藏某些代码部分。导入助手:能够通过导入向导来将各种外部的资源导入到选定的项目中。,调整视图及相关配置,Java编辑器;集成开发环境可以使用 Java 编辑器来编辑一个脚本。正在编辑的脚本的名字出现在编辑器窗口顶端的标签页上。名字左边的星号(*)代表这个脚本已经被修改但没被保存。能够在Java编辑器中同时打开多个脚本,然后通过点击标签页在这些脚本间进行切换。如果脚本存在问题,一个问题标记将出现在有问题的代码行上。右键点击 Java 编辑器将显示能够帮助编辑脚本的菜单。问题视图将显示错误、警告和其他被编译器自动产生的信息。为了打开问题视图,点击
29、Test 透视图中的问题标签,或者点击窗口显示视图基本问题。当双击问题视图中的某一个问题项时,Functional Tester 将定位到这个问题在脚本中的代码行上。缺省情况下,问题视图显示所有的项目中的问题,可以通过点击过滤器按钮来应用一个过滤器。能够在脚本中使用一些方法(命令)来控制回放选项(参数设置):getOption 返回当前的一个选项的设置值。setOption 为一个选项指定值。resetOption 重置一个选项的值到它的缺省值。,调整视图及相关配置,Java编辑器;Functional Tester 测试脚本的类层次结构Rational TestScript 提供了基础的功能
30、,它是所有Functional Tester测试脚本的根层次。每一个测试脚本都从这个类扩展而来,例如,能够重载缺省的事件处理器(event handler)来提供自己的应用程序特定的事件处理器。helper super 类(可选的)提供了对基础级别方法的重载的支持。script helper 类 提供了为访问测试对象和验证点特定的脚本方法。这些特定脚本的方法简化了脚本命令并改进了Functional Tester 脚本的可读性。但是不应该去编辑 script helper 类。Functional Tester script包含了被录制的或者脚本化的命令,这些命令构成了一个特定的功能测试。能够
31、通过与Functional Tester项目相关联的模板文件定制 Functional Tester script 类和 script helper 类的格式,调整视图及相关配置,Java编辑器;Functional Tester 脚本包含的内容:一个 Functional Tester 脚本是一个由 Java 语句组成的文本文件,它是由Functional Tester 在录制脚本过程中生成的,并且可以向其中手工添加语句。当测试脚本被回放时,Functional Tester 通过执行脚本中的语句来重现功能测试的动作。一个Functional Tester 脚本包括四个主要的语句分类:由Ra
32、tionalTestScript 继承的方法,比如,startApp()和logTestResult()。在测试对象上调用的方法,比如Click()或者 Drag()。执行验证点的语句。任何需要的但没有被Functional Tester 生成的 Java 代码。,搭建RFT层次结构,新建一个“functional test项目”;新建一个“测试文件夹”(同java包的定义);新建一个“测试数据池”(数据驱动);新建一个“测试对象映射”(对象地图);新建一个“帮助程序超类”(帮助父类,可继承);新建一个“空的functional test脚本”;简化的脚本编制:Simplified Scrip
33、ts就是以一种更简单的自然语言来描述Script脚本,以这种方式创建的脚本在视图中有Script和Java两种编辑模式。这种方式一个最直接的缺点就是project视图中不显示script.java文件,而是script.rftss,如果直接在工具栏点击运行按钮运行脚本,脚本内容会被自动修改,无法运行。但是可以通过以下两种方式来继续运行:project视图中右键单击想要执行的脚本,点击run;对script做改动后不要保存,直接按工具栏按钮run,弹出是否要保存的对话框,点击是确认保存即可成功运行,脚本也不会被修改。如果想要取消该功能,菜单栏-Windows-Preferences-Functi
34、onal Test-Simplified Scripting 取消选择。如果想要对已经enable Simplified Scripts的脚本取消该功能,在RFT视图中Discconnect 项目,然后删除*.rftss文件,重新链接项目到RFT视图即可。,配置RFT系统参数,启用“web浏览器”;启用“java环境”;启用“Eclipse平台”;,配置RFT应用程序,添加“html应用程序”;添加“名称”;添加“url地址”;添加“浏览器”;,记录/回放RFT线性脚本,线性脚本:录制手工执行的测试用例得到的脚本。这种脚本包含所有用户的键盘和鼠标输入。线性脚本有以下的优点:1、不需要深入的工作
35、或计划2、可以加快开始自动化3、对实际执行操作可以审计跟踪4、用户不必是编程人员5、提供良好的(软件或工具)的演示线性脚本适用于以下情况:1、演示或培训2、执行量较少,且环境变化小的测试3、数据转换,如将数据从Notes数据库中转换到EXCEL表格中线性脚本有以下缺点:1、过程繁琐2、一切依赖于每次捕获的内容3、测试输入和比较是“捆绑”在脚本中的4、无共享或重用脚本5、线性脚本容易受软件变化的影响6、线性脚本修改代价大,维护成本高7、非常容易受意外事件的影响,引起整个测试失败,记录/回放RFT线性脚本,记录functional test脚本;设置脚本名称;设置“测试对象映射”;设置“帮助程序超
36、类”;设置“测试数据池”;设置“数据池记录选择顺序”;选择启动应用程序;,记录/回放RFT线性脚本,记录操作过程;暂停记录;插入验证点或操作命令;插入数据驱动的命令;插入脚本支持命令;显示帮助;显示监视器;停止记录;编辑回放脚本;,日志,日志:在脚本回放结束时,能够在日志中查看结果。结果包括任何被记录的事件,比如验证点失败、脚本异常、对象识别警告和其他任何回放的信息;日志类型Text-在Functional Test 脚本窗口以 ASCII 的格式显示日志;HTML-以 HTML 格式在的缺省浏览器中显示日志;Test Manager-在 Test Manager 的测试日志窗口显示 Func
37、tional Test 日志信息;日志参数设置1.在Functional Test 中,点击 窗口 首先项。2.在首选项的左侧区域展开Functional Test,展开 回放,并点击 日志记录。3.选择脚本回放后显示日志查看器选项使测试回放后日志被自动的打开。4.选择任何其他的日志选项。,日志,查看日志中的结果为了查看 Functional Test 日志,完成下面的日志参数设置:1.在Functional Test 中,点击 窗口 首先项。2.在首选项的左侧区域展开Functional Test,展开 回放,并点击 日志记录。3.选择脚本回放后显示日志查看器选项使测试回放后日志被自动的打开
38、。4.选择任何其他的日志选项。5.在日志类型列表中设定查看参数:A.为了不使用 Test Manager 查看日志,清除使用缺省值检查框,并选择Text 或 HTML。B.为了从 Test Manager 的测试日志视图查看日志,选择 Test Manager(如果Test Manager被安装这是缺省的行为)。Test Manager 将这些日志作为 Rational 项目的一部分存储,并在测试日志窗口中打开日志。6.点击应用来保存新的设置,并继续改变其他的选项,或者点击确定,保存新的设置并关闭首先项对话框。,验证点比较器,验证点比较器被用来在回放带有验证点的脚本后验证验证点的数据,并更新基
39、线文件。如果验证点失败,比较器将显示出期望值和实际值,因此能够分析他们之间的不同。然后,能够加载基线文件,并编辑它或者使用来自实际的数据值更新基线文件;验证点比较器的窗口和工具栏:测试对象(Test Objects);这是验证点比较器窗口左上方的区域。他是脚本的对象地图的一个部分版本。这个层次结果仅仅包括你的验证点中的对象。识别数据(Recognition Data);这是比较器窗口左下方的一个区域。识别(Recognition)标签显示了被Functional Test使用的识别数据,这些数据是不可编辑的。管理(Administrative)标签;显示了对象的内部管理数据,这些数据也不可编辑
40、。这些属性被用来管理和描述测试对象。识别和管理数据是来自于被用于定位和管理测试对象的脚本的对象地图中的属性。你能够使用这个信息确定什么样的对象被关联到被测试应用上。元数据(MetaData)标签;显示了一系列定义特定数据如何管理的属性。如果你加载了基线,这个表格是能够编辑的。,验证点比较器,通过点击 Functional Test HTML 日志中的查看结果链接打开比较器。如果你有一个失败的验证点,并且你使用了Functional Test 中的日志,在Functional Test项目视图中选择日志。然后右键点击日志,并选择失败的验证点菜单项。验证点比较器打开。双击层次树中的文件夹来展开和折
41、叠他们下面的对象。点击一个树状目录中的单独对象,观察右侧区域中它的属性或者数据。每个节点左边的检查框指明了这个节点是否被测试过,选中的为被测试过。在你加载基线进行编辑后,你能够选择或者清除某些对象。,验证点比较器,主工具栏:在验证点比较器顶端的工具栏,有六个按钮。文件:保存-保存任何你编辑的变化。文件:恢复-恢复到你最近保存的状态。加载基线以编辑-加载基线文件,以便你能够编辑。基线值将被显示,代替期望值。使用实际值代替基线-使用所有实际文件中的值代替基线值。之后这些值将变成用于将来回放的基线。隐藏/显示测试对象信息-触发测试对象和识别数据面板的显示。当这个信息被隐藏时,整个比较器窗口被用于为主
42、数据区域服务。帮助-提供验证点比较器使用的帮助信息。菜单:菜单包含一些与上面工具栏按钮代表相同命令的项目。文件-这些与上面介绍过的在主工具栏部分的保存、恢复、基线和代替命令是相同的。编辑-包括全部选中、全部不选和隐藏。差别-用于比较基线和实际值的区别,包括第一个、上一个、下一个和最后一个选项。测试对象 突出显示-如果你的测试应用被打开,你能够选择一个在测试对象树中的项目,然后点击此命令来在应用中查看突出显示的对象。主数据区域验证点比较器右侧的区域是验证点数据的显示区域。,结构化脚本,使用判断/分支/循环等测试逻辑控制测试脚本的执行过程;维护成本较线性低,测试更加灵活,对测试人员要求较高;需要结
43、合java流程控制编写;脚本健壮性不高;在以后阶段结合java语言详述;.,数据驱动脚本,测试数据与测试脚本分离,单独存在于数据文件或数据库中;脚本维护成本相对较低;可以针对相同测试逻辑反复进行测试;结合了结构化脚本,对测试人员要求更高;在以后阶段详述;.,关键字驱动脚本,关键字驱动测试(keyworddriven test,KDT)在数据驱动基础上,将常用的测试方法封装起来作为关键字,测试人员在需要时使用这些关键字或者自己定义新关键字描述测试。这种方法更高层地提取了测试逻辑,提高了测试代码的复用程度,可以使测试人员专注于测试的设计而无需关心其实现;界面元素名与测试工具定义对象名的分离;执行动作与具体实现细节的分离;测试脚本与测试数据的分离;脚本维护成本低,综合了数据驱动、共享、结构化等脚本的优点;需要更多的自动化程序设计工作量;对测试人员编程技巧要求更高;在以后阶段详述;.,谢谢!,