关闭

关闭

封号提示

内容

首页 RFT自学.doc

RFT自学.doc

RFT自学.doc

上传者: 青梅竹马_一辈子 2017-10-27 评分 5 0 174 24 790 暂无简介 简介 举报

简介:本文档为《RFT自学doc》,可适用于财会税务领域,主题内容包含RFT自学三层架构:技巧清晰分离appobjects层和tasks层如图所示appobjects层存放的是GUI元素其方法将被tasks层调用。在设符等。

RFT自学三层架构:技巧清晰分离appobjects层和tasks层如图所示appobjects层存放的是GUI元素其方法将被tasks层调用。在设计appobjecs层时本文建议除了GUI元素获取方法还要将针对元素的基本操作封装进去。因为针对元素的基本操作通常都需要调用RFT提供的底层接口方法如果将其统一封装进appobjects层tasks层就避免了与RFT接口方法直接作用。并且当GUI元素属性发生变更引起其操作方式的变化时只需要维护appobjects层即可。图是一个登陆窗口自动化测试要求输入用户名、密码选择LOB最后点击登陆按钮下面结合代码实例具体说明如何清晰分离appobjects层和tasks层。潜在于应用对象、任务和测试用例包之下的基本原理是层次化的体系架构将“做什么”与“如何做”分离开来代码重用一致和清晰的组织结构快速增强的能力迅速的调试有效地组织文件启用协作学习他人下面是对应用对象、任务和测试用例的解释说明应用对象储存有关你的应用程序中的GUI元素信息。同时在这里也可以编写你的Getter方法这些Getter方法可以返回对象使调用者能够对这些GUI元素进行查询和操作。一般情况下这些方法在Task层中进行调用。任务在这里你将编写可重用的方法这些方法在你的应用程序中执行通用功能。同时在这里你将编写可以处理和查询复杂的特定应用程序控件的方法。在任务中的方法可以被测试用例调用。测试用例导航一个应用程序验证其状态并记录其结果的方法。IBM自动化测试三层架构图是一个登陆窗口自动化测试要求输入用户名、密码选择LOB最后点击登陆按钮下面结合代码实例具体说明如何清晰分离appobjects层和tasks层。图登陆窗口实例为使代码更清晰我们将appobjects进一步细分为两层其中一层用于封装RFT的find方法将页面上同一类型的GUI元素的查找方法放到一个Java文件中这些查找方法为获取GUI元素提供了公共接口并只会被get方法调用另外一层包括GUI元素的get方法和针对GUI元素的基本操作方法这一层返回的方法会被tasks层调用如图。图appobjects层结构解析代码清单是登陆窗口中的Text类型测试对象的查找方法在此省略登陆窗口上其他类型的GUI元素的查找方法此方法将被appobjects上层的getUserNameObj和getUserPwdObj两个方法调用。下面是tasks的例子下面是testcases的例子一个FunctionalTester测试脚本的类层次结构如果你使用的是RationalFunctionalTesterJavascripting那么测试脚本是使用Java语言进行编写的。一个FunctionalTester的测试脚本存在于一个类的层次结构中并从相应的父类继承而来。下面的图显示了这个类的层次级别和每一个特定的级别所提供的功能。RationalTestScript提供了基础的功能它是所有FunctionalTester测试脚本的根层次。每一个测试脚本都从这个类扩展而来例如你能够重载缺省的事件处理器eventhandler来提供你自己的应用程序特定的事件处理器。helpersuper类可选的提供了对基础级别方法的重载的支持。scripthelper类提供了为访问测试对象和验证点特定的脚本方法。这些特定脚本的方法简化了脚本命令并改进了FunctionalTester脚本的可读性。但是你不应该去编辑scripthelper类。FunctionalTesterscript包含了被录制的或者脚本化的命令这些命令构成了一个特定的功能测试。你能够通过与FunctionalTester项目相关联的模板文件定制FunctionalTesterscript类和scripthelper类的格式。FunctionalTester脚本包含的内容一个FunctionalTester脚本是一个由Java语句组成的文本文件它是由FunctionalTester在录制脚本过程中生成的并且可以向其中手工添加语句。当测试脚本被回放时FunctionalTester通过执行脚本中的语句来重现功能测试的动作。一个FunctionalTester脚本包括四个主要的语句分类由RationalTestScript继承的方法比如startApp和logTestResult。在测试对象上调用的方法比如Click或者Drag。执行验证点的语句。任何你需要的但没有被FunctionalTester生成的Java代码。在FunctionalTester脚本中启动被应用程序如果你没有手工修改脚本在FunctionalTester脚本中的第一条语句应该startApp语句。例如publicvoidtestMainObjectargsstartAppquotClassicsJavaAquotstartApp方法的参数是你要启动的应用程序的名字。因为FunctionalTester脚本应该能够在不同的计算机和操作系统下被执行的因此FunctionalTester将应用的启动信息存储在一个配置文件中而不是脚本中。回放用户操作用户操作包括所有在录制测试期间被测试应用在GUI对象上执行的动作。例如包括点击一个按钮、选择一个列表中的某一项和向一个表单内输入数据。在一个脚本中点击动作表示为一个在对象上执行的方法比如点击一个名为PlaceOrder的按钮。FunctionalTester如何能够定位测试回放要点击的目标对象呢首先当前脚本的helperscript包含一个命名为PlaceOrder的相应的方法这个方法会去与PlaceOrder按钮相关联的MappedTestObject的对象地图进行搜索。MappedTestObject包含了被测试应用中相应对象的识别属性。接下来FunctionalTester将MappedTestObject中对象的识别属性与目标对象的属性进行比较。最后如果比较结果是匹配的PlaceOrderhelper就构建一个与PlaceOrder关联的GuiTestObject对象然后FunctionalTester调用GuiTestObject对象上的click方法执行点击动作。验证点脚本中的验证点也是以方法的形式表示的验证点名字是在验证点被录制时由测试人员指定的验证点决定的。验证点的名字总是表示为VPperformTest例如OrderTotalAmountVPperformTest编辑脚本脚本编辑特性FunctionalTester的JavaDevelopmentToolingJDT提供了一个编辑器使用它你能够使用Java语言进行测试脚本的编辑。这个编辑器有以下特性语法突出表示帮助查找和编辑脚本中的不同元素。不同的语法元素比如注释、关键字和内建类型等使用不同的颜色进行突出表示这样能够使你更容易的查看和编辑脚本。上图中quot注释是绿色的quot绿字漏了内容代码助手当你输入某些代码片断时内容代码助手自动帮助你完成代码。在你想要自动完成代码的地方按住ltCtrlgtltSpacebargt键。下图中的一个列表显示出来你可以在列表中选择你需要的选项。代码格式化当你正在编辑一个脚本时这个特性可以通过上下文菜单得到。右键点击你想要格式化的代码以显示上下文菜单。你能够通过窗口gt首选项gtJavagt代码格式器来设置代码格式化的配置。文本提示当你将鼠标光标放到一个对象或者方法上时将会显示出这个对象的属性或者方法被定义在哪个Java包中。显示所有显示部分源码你能够隐藏你需要看到的脚本部分。你可以通过点击代码左侧的下拉箭头来显示和隐藏某些代码部分。导入助手你能够通过导入向导来将各种外部的资源导入到选定的项目中。集成开发环境你可以使用Java编辑器来编辑一个脚本。你正在编辑的脚本的名字出现在编辑器窗口顶端的标签页上。名字左边的星号代表这个脚本已经被修改但没被保存。你能够在Java编辑器中同时打开多个脚本然后通过点击标签页在这些脚本间进行切换。如果脚本存在问题一个问题标记将出现在有问题的代码行上。右键点击Java编辑器将显示能够帮助你编辑脚本的菜单。问题视图将显示错误、警告和其他被编译器自动产生的信息。为了打开问题视图点击Test透视图中的问题标签或者点击窗口gt显示视图gt基本gt问题。当你双击问题视图中的某一个问题项时FunctionalTester将定位到这个问题在脚本中的代码行上。缺省情况下问题视图显示所有的项目中的问题你可以通过点击过滤器按钮来应用一个过滤器。在参数页面的设置值将影响每一个FunctionalTester用户的全局设置。如果你想仅仅改变一个单独的测试脚本的设置而不影响其他的脚本设置你可以编辑脚本来覆盖被全局的设置。你能够在脚本中使用一些方法命令来控制回放选项参数设置getOption返回当前的一个选项的设置值。setOption为一个选项指定值。resetOption重置一个选项的值到它的缺省值。例如为了对一个单独的脚本降低回放速度你能够在脚本中改变时间累加器。FunctionalTester对所有的脚本应用在参数页面设置的时间累积器的值除了在脚本中设置时间累加器的这种情况。设置参数的代码例子setOptionIOptionNameTIMEMULTIPLIER被用来改变参数设置的方法getOptionsetOptionandresetOption是被定义在IoptionName接口中的这个接口是comrationaltestftscript包中的一部分。要想了解这个接口的更多信息你可以查看FunctionalTester的APIReference。FunctionalTester的代码内容助手特性能够帮助你准确并高效的编写设置参数的代码。处理未预期的活动窗口在GUI测试中的一个通常问题是未预期活动窗口的出现。如果你在录制期间点击一个窗口的OK按钮点击动作将被录制下来。如果在回放的时候这个窗口没有出现OK按钮没有被找到脚本将失败。如果你将按钮点击从脚本中删除在回放时如果这个窗口出现了脚本同样还是会失败。我们如何来处理这种情况呢在FunctionalTester脚本中onTestObjectMethodException事件被用来处理一个未预期激活窗口出现的情况。实现onTestObjectMethodException事件添加一个方法来使用这个事件调用一个helpersuperscript来处理FunctionalTest脚本可以处理情况的事件当未预期激活窗口的情况发生时处理事件。处理一个未期望的活动窗口Whattodo为了处理一个未期望的活动窗口修改脚本添加一个方法来重载onTestObjectMethodException事件。添加if语句来判断WindowActivateFailedException异常是否发生。在这个循环中调用Iwindow接口来获取导致问题的活动窗口的信息。在调用IWindow接口下添加一个if语句来判断是否活动窗口已经出现。如果出现了发送一个回车命令给它。活动窗口接到回车命令后在期望的对象上执行命令。代码例子:publicvoidonTestObjectMethodExceptionITestObjectMethodStatetestObjectMethodStateTestObjectfoundObject场景录制一个脚本向脚本代码添加一个消息框步骤启动ClassicsJavaA应用程序。在目录树中展开Haydn节点选择SymphoniesNosamp选项。点击PlaceOrder按钮。会员登陆对话框出现。添加一个Password文本框的数据验证点。点击OK按钮。进入PlaceanOrder窗口。在CardNumber域输入在ExpirationDate域输入。点击PlaceOrder按钮。在记录监视器中停止录制。测试脚本被生成并在Java编辑器中打开。回放脚本。使用缺省的日志设置。查看日志结果。关闭日志。在测试透视图中确认Script已经在Java编辑器中打开。在代码行importcomrationaltestftvp的下一行添加importjavaxswingJOptionPane在StartApp的上一行添加一段注释。确认代码的正确性保存代码。运行脚本Script。在回放监视器出现后请注意一个消息对话框弹出。这个对话框正式我们在脚本中添加的代码所产生的。点击确定按钮。ClassicsJavaA应用程序启动。等到回放完成。查看日志。脚本正确的执行了。日志中没有显示失败和警告。场景在脚本中重载参数设置步骤点击帮助gtFunctionalTestAPIReference。展开APIReference选中comrationaltestftscript。点击IOptionName链接你可以在这里查看关于使用IOptionName接口设置选项的内容。关闭帮助窗口。在测试透视图中打开场景录制的脚本Script。将在场景中添加的代码注释掉。在StartApp行的下一行输入setOptionIOptionName在下拉列表中选择TIMEMULTIPLIER。再输入。完成以下代码。确保代码的正确性并保存脚本。回放脚本。注意观察控制台视图的内容显示出了我们添加的代码已经将时间累加器的值从变为了。测试对象地图和对象识别测试对象地图FunctionalTest测试对象地图列出了被测试应用中的测试对象。它是一个描述了在被测试应用中FunctionalTest能够识别的测试对象的静态视图。一个测试对象地图能够包括来自多个应用的对象。测试对象地图提供了一种向一个脚本添加测试对象的快速方法。因为测试对象地图包含了每个对象的识别属性所以你能够在一个地方更新这些信息。任何引用了测试对象地图的脚本都会共享被更新的信息。当你录制一个脚本时FunctionalTest创建一个对象地图或者使用一个已存在的共享地图。每个脚本与一个测试对象地图文件相关联。地图文件可以是仅仅被一个脚本专用的rftxmap或者是在多个脚本之间共享的rftmap。你能够将专用的或者共享的测试对象地图合并成为一个共享的测试对象地图。脚本与测试对象地图每个FunctionalTester脚本都要与一个测试对象地图相关联。一个测试对象地图可以是专用的也可以是共享的。专用的仅仅与一个脚本相关联当你录制测试脚本时自动生成共享的可以与一个或者多个脚本相关联必须与脚本录制分开创建脚本与测试对象的引用一个FunctionalTester脚本是一个在应用程序对象上执行的Java指令序列并搜寻关于对象的信息。一条指令命名一个对象并指定在对象上执行的动作。一个脚本是不包括测试对象的它仅仅是对对象进行引用。FunctionalTester的脚本浏览器列出了在脚本中引用的所有测试对象。从下图中可以看到脚本代码与测试对象地图的映射关系。从下图中可以看到脚本中应用的测试对象在脚本浏览器中显示出来。创建并使用一个测试对象地图下面描述了如何创建和编辑一个在测试中能够使用的测试对象地图。你创建一个测试对象地图然后对它进行细化以能够更加准确的描述应用并且与你创建的其他脚本共享这个测试对象地图。使用FunctionalTestJavaScripting创建一个新的测试地图。注意:当你录制一个脚本时FunctionalTest会创建一个测试对象地图或者使用一个已存在的共享地图。为测试对象地图分配一个名字。启动要测试的应用。包括所有应用中你想要测试的对象。编辑对象属性。例如你可以将一个识别属性值转化成一个正则表达式这将使对象的识别更加灵活。为每个对象描述它的目的以反映你为什么要创建它。录制一个脚本。在选择脚本资产页面中的测试对象图域中点击浏览来选择一个你已经创建的共享对象图。回放脚本。你现在拥有了一个用于测试你的应用程序的测试对象地图了。你能够将这个对象地图在其他脚本之间进行共享。如果测试对象地图被多个脚本使用你就非常有必要改变对象地图中的识别和管理属性这将允许被关联的脚本使用这个改进了的应用定义来运行。创建一个新的测试对象地图为了创建一个自定义的、共享的测试对象地图启动创建新的测试对象地图向导在FunctionalTest工具栏中点击创建测试对象地图按钮。从FunctionalTest菜单中点击文件gt新建gt创建测试对象地图。输入或者选择一个项目路径。在创建测试对象地图页面图名称域中输入新的测试对象地图的名字。为了将新的对象地图作为项目的缺省地图选中将该测试对象地图设置为新脚本的缺省选择检查框。无论你录制或创建一个新的脚本FunctionalTest都将使用这个测试对象地图。提示:为了清除这个缺省的分配在项目视图中右键点击测试对象地图并点击作为项目缺省值清除。你也可以个通过在项目视图中右键点击测试对象视图选择设置为项目缺省值来将一个测试对象地图设置为项目的缺省对象地图。点击下一步。在将测试对象复制到新的测试对象图页面选择你想要创建的测试对象图的类型创建一个空的测试对象图a点击不复制任何测试对象。b点击完成。为了创建一个使用一个或者多个已存在的测试对象图作为模板的对象图a点击选择要从中复制测试对象的测试对象图和脚本。b选择一个或多个对象图为了选择多个对象图和脚本按住Ctrl键。c为了继续使用你选择的脚本新建测试对象图选择将选中的脚本与新的测试对象图相链接。d点击完成。FunctionalTester将合并来自被选中的对象图和脚本的测试对象成为一个测试对象图。如果有必要相对象图中添加测试对象。编辑对象属性。向一个测试对象图中添加对象为了向一个测试对象图中添加对象从测试对象图的菜单中点击应用程序gt运行来打开选择应用程序对话框。在应用程序名称域选择包含你想要添加的测试对象的应用并点击确定。在测试对象图的工具栏点击测试对象插入对象按钮。FunctionalTester打开将GUI对象插入对象图对话框。在选择一个对象页面点击对象查找器图标并将它拖到你想要添加的测试对象图中的对象上方。在选择对象选项页面选择下列选项之一仅选中的对象选择你选中的对象插入到测试对象图中。包含所选中对象的兄弟对象选中包含被选对象的直接子对象。包含本窗口所有可用的对象选择包括当前窗口所有可见的控件对象进入测试对象图。点击完成。如果有必要重复上面的步骤添加其他的控件对象。保存测试对象图点击文件保存按钮。编辑对象属性你能够在测试对象地图窗口的下方的区域编辑属性集合中的信息。为了编辑每个标签中的一个值鼠标双击这个值。识别标签显示出在执行期间被用于发现对象的数据。例如你能够为识别标签中的一项改变权重来设置执行过程中发现对象的强调程度。权重的值从到表示最重要表示最不重要。管理标签显示出测试对象的内部管理信息。这些属性被用来管理和描述测试对象。更新这个标签中的属性将会影响到使用这个测试对象的脚本代码的生成。例如更新了描述性名称属性将导致下一次这个测试对象的新名字被添加到脚本中。被标记为只读的属性是不可编辑的。显示相关联的脚本为了查看与一个测试对象图相关联的脚本列表打开测试对象图。以两种方法之一开打关联的脚本对话框在测试对象图的工具栏点击关联的脚本按钮。在测试对象图菜单点击测试对象gt关联的脚本。FunctionalTester显示出一个与测试对象图相关联的脚本列表。你能够使用这个列表选择多个脚本来向他们中添加测试对象。添加测试对象到脚本为了使用测试对象在一个或者多个脚本中包含一个对象打开测试对象图。为了添加测试对象到多个脚本点击测试对象gt关联的脚本。在关联的脚本对话框选择你想要向其中添加测试对象的脚本并点击确定。在测试对象图中选择你想要包含在测试脚本中的测试对象。在测试对象图的工具栏点击测试对象添加到脚本按钮。将被选中的对象放到了脚本浏览器中。在Java编辑器中将鼠标的光标放置在你想要添加对象的地方。在脚本浏览器中右键点击你在脚本中应用的对象。点击在光标处插入。FunctionalTester显示了一个这个对象可用的方法列表。双击你想使用的方法。FunctionalTester将在光标处插入对象和被选中的方法。重复步骤到插入其他你想使用的测试对象到脚本中。对象识别处理对象识别问题如果日志显示识别警告和失败我们应该怎么办

类似资料

该用户的其他资料

干洗店合作协议书.doc

...“远古遗迹防守“, 是一个基于魔兽争霸3:冰封王座(由暴....doc

静脉采血双向针及真空负压管的应用.doc

托玛琳口罩,远红外口罩,抗菌磁疗口罩.doc

张卜中学2013年庆元旦文艺演出活动方案.doc

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 歌德 郭沫若译 浮士德 第二部 …

  • 傻瓜科学系列.遗传学Geneti…

  • Using Chinese.pdf

  • Business Law, 4t…

  • Drawing in Colou…

  • Solid State Phys…

  • Translating Chin…

  • (美)孙隆基:中国文化的深层结构…

  • 国朝献征录(明)焦竑.pdf

  • 资料评价:

    / 10
    所需积分:0 立即下载

    意见
    反馈

    返回
    顶部