3-UFT对象管理
Posted 洛白南歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3-UFT对象管理相关的知识,希望对你有一定的参考价值。
基于GUI的自动化测试主要是围绕着界面的控件元素来进行的,例如文本框、列表框、控制按钮等等,软件用户通常都是通过这些控件与程序交互,因此,编辑测试脚本的第一步就是识别测试对象。
1、测试对象、运行时对象的区分以及对象库概念
首先区分UFT中测试对象和运行时对象概念。
测试对象:Test Object,TO,是UFT定义的一些类,用它们来代表被测应用的各种对象;
TO属性: 获取对象的属性,可以理解为静态的属性,在运行时的输入东西与它无关。测试对象的属性是UFT为了识别在测试执行过程中的运行时对象而保留在对象库中的属性。 GetToProperty/GetToProperties和SetToProperty则分别用于读取和修改To的属性值 |
运行时对象:Runtime Object,RO,是实际的被测应用对象,是测试执行过程中,TO用来关联的对象;
RO属性: 是变的(用户名框输入不同的值,这个Ro属性取出来就是不一样) GetRoProperty方法用于取得运行时对象(实际对象)的某个属性的值。 |
简单以登录操作中AgentName对象来说,to属性和运行时输入的东西无关,而ro属性是实际中被测应用对象,在测试执行过程中,会看到对应属性的变化:
UFT对象库:UFT中,使用对象库对对象进行管理。记录的对象和这些对象的属性,都存储在对象库中。而对象库也可以设置为共享对象库,供多个Action调用。当发现对象库中缺少某个对象时,可以使用对象抓取工具,单个抓取对象添加到对象库中。
2、对象库工具的一些操作
1)对象识别器:Tools-----Object Identification
2)对象嗅探器:Tools----Object Spy
打开如下的嗅探器窗口,点击下图方框中的按钮,移动手型的光标,可以看到下图中显示当前光标下的空间属性
3)对象库:Resources-----Object Repository
注意这里存储的除了测试对象,还有其他的对象类型,如下面的检查点。同样在对象库中,我们可以点击工具栏中的按钮,添加对象到对象库中;也可以高亮某个测试对象;,也可以使用对象嗅探器捕获测试对象;也可以关联其他的测试对象;
4)对象库管理:Resources----Object Repository Manager
这里实际上共享对象库。在该对话框中,我们可以创建一个共享对象库、将对象库跟Action关联、添加对象到共享对象库中、保存一个共享对象库、修改共享对象库中的对象等。下面是新建一个共享的测试对象:
3、练习
录制一个Flight程序登录的脚本。脚本要求:
- 使用Systemutil.Run打开程序
- 创建三个Action,分别是Login,NewOrder,Logout。在三个Action中分别录制对应的操作
- 保存NewOrder的本地对象库为NewOrder.tsr
- 删除NewOrder的本地对象库
- 将NewOrder的Action使用共享对象库(引用已保存的NewOrder.tsr),设置为共享对象库的路径为相对路径
- 使用自定义检查点,检查Price*Ticket的价格是否等于Total,并用If语句写出判断成功或是失败后的Reporter.ReportEvent报告语句
- 点击关闭,结束录制
补充知识点:
1)可以使用Systemutil.run加上程序路径,使UFT自动打开被测程序
2)在录制脚本的过程中,可以点击“录制工具条”中的新建Action按钮,将三个部分的操作放在三个Action中
3)UFT的VBscript脚本中,使用Const声明定义常量,使用Dim声明定义变量
4)报告语句,如果程序正确,则可以书写为Reporter.ReportEvent micPass,"结果正确","总价格正确";如果程序不正确,可以使用Reporter.ReportEvent micFail,"结果错误","总价格计算错误";
结果:
NewOrder中代码:
'新建订单 Window("Flight Reservation").ActiveX("MaskEdBox").Type "121216" Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver" Window("Flight Reservation").WinComboBox("Fly To:").Select "London" Window("Flight Reservation").WinButton("FLIGHT").Click Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click Window("Flight Reservation").WinEdit("Name:").Set "jojo" Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1 Dim tiknum,price,total tiknum=2 Window("Flight Reservation").WinEdit("Tickets:").Set tiknum Window("Flight Reservation").WinRadioButton("First").Set Window("Flight Reservation").WinButton("Insert Order").Click Dim pricestr,totalstr pricestr=mid(window("Flight Reservation").WinEdit("Price:").GetROProperty("text"),2) price=CDBl(pricestr) totalstr=mid(window("Flight Reservation").WinEdit("Total:").GetROProperty("text"),2) total=CDBl(totalstr) If (price*tiknum)=total Then Reporter.ReportEvent micPass,"结果正确","总价格正确" Else Reporter.ReportEvent micFail,"结果错误","总价格计算错误" End if
以上是关于3-UFT对象管理的主要内容,如果未能解决你的问题,请参考以下文章
如何在Automation Anywhere中关闭虚拟机时使对象克隆和管理Windows控件正常工作?