QTP专家视图方法总结
来源:互联网 发布:川菜网络培训 编辑:程序博客网 时间:2024/06/05 20:22
专家视图
专家视图,也叫脚本视图,属于QTP中比较高级的功能选项。在该视图中,测试人员可以直接修改测试脚本(VB脚本)的代码,来增强测试脚本的功能,它要求测试人员具有一定VB脚本语法基础。
当然,测试脚本中也不完全是VB脚本,严格意义上来说,QTP的测试脚本应该是标准 VB脚本和QTP测试对象的组合体。
所谓的QTP测试对象,就是QuickTest定义的用来表示Windows窗体元素的对象,如同窗口,命令按钮等,每一个QTP测试对象都有若干个方法和属性,允许用户加以修改。
就是我们刚才录制的测试脚本的专家视图:
我们直接在该视图中修改和在关键字视图中修改的效果是一样的。
VB脚本是一种容易学习并且功能强大的脚本,它是VB的一个子集,遵循VB的语法。
如果读者原来没有接触过VB脚本的话,可以将关键字视图和专家视图中的对应项结合起来学习。
下面简单介绍一下其语法:
常见的对象名:
Dialog对话框,括号里面的参数表示对话框标题栏上的名字
WinEdit:Windows窗体中的文本框
WinButton: Windows窗体中的命令按钮
ActiveX: ActiveX控件
WinComboBox: Windows窗体中列表框
常见的事件名:
Set:当在文本框中输入信息时会触发该事件
Click:当点击命令按钮时会触发该事件
Select:当选择列表框或是单选按钮时会触发该事件
Close:当关闭一个标准窗口或对话框时会触发该事件
下面在为大家介绍一下QTP中VB脚本中的一些通用语法规则,供大家参考:
1.
比如下面两个例子:
Dim passengers
passengers =
Browser("MercuryTours").Page("Find Flights").WebEdit("numpassengers").GetROProperty("value")
上面的例子定义了一个名为passengers的变量名
Set UserEditBox =
Browser("Mercury Tours").Page("Mercury Tours").WebEdit("username")
UserEditBox.Set "John"
在上面的例子中,首先通过Set方法将“Mercury Tours”网页上的“username”文本框对象赋给了UserEditBox变量,然后再调用UserEditBox对象的Set方法将“John”这个字符串赋给该对象。
2.
脚本中同样可以使用VB中控制语句,如If…Then…Else;While;For…Next等
3.
脚本不区分大小写
比如,下面两行代码是可以通用的:
Browser("Mercury").Page("Find a Flight:").WebList("toDay").Select "31"
[size=10.5pt]browser("mercury").page("find a flight:").weblist("today").select "31"
4.
脚本中的字符串常量要用双引号括起来
比如下面一行代码:
Browser("Mercury").Page("Find a Flight:").WebList("toDay").Select "31"
网站名—Mercury,网页名---Find a Flight,控件名---toDay,控件选项---31,都用引号以上,表示它们都是字符串。
QTP专家视图方法大全
一.对象的方法
Activate:object.Activate [Item]
激活对象
Item—列表中选择(名字:用引号;数字索引:不带引号;非必填项)
例1:Browser("Demo of Vo Object").Page("Demo of Vo Object")
.ActiveX("VoDemoFormX").VirtualList("list").Activate 3
激活list目录下中的第四项
例2:Dialog("Login").Activate
激活该页面
CaptureBitmap:object.CaptureBitmap FullFileName, [OverrideExisting]
保存某一界面到本地51Testing软件测试网d"S&Y#Sq&YR Cd,C
FullFileName—文件的保存绝对路径可以为变量(必填项;后缀名不能少)
OverrideExisting—布尔值(1或0;true或false;非必填项)
例:Dialog("Login").CaptureBitmap "E:\tupian.bmp",True
将运行时的窗口用bmp格式保存本地
CheckProperty:object.CheckProperty (PropertyName, PropertyValue, [TimeOut])
将对象的属性的实际值与预期值相比;一致返回true否则false
PropertyName—属性名称(用双引号,必填项)
PropertyValue—预期属性值(用双引号,必填项)
TimeOut—设置超时时间(不用引号,非必填项)
例:a=Dialog("Login").CheckProperty("height","205",10)
如果该对象的height属性值为205则a=true否则a=false
ChildObjects:object.ChildObjects ([Description])
返回一个页面/窗口的所有匹配的子对象
Description—要匹配对象的条件(非必填项)
例: Set MyDescription = Description.Create() ‘设置描述性对象:
MyDescription("html tag").Value = "INPUT" '创建需寻找对象的属性
MyDescription("type").Value = "checkbox" '创建需寻找对象的属性
MyDescription("name").Value="selectedIds"'创建需寻找对象的属性
'指定在该页面下符合上述条件的控件
Set Checkboxes = Browser("test").Page("onsale").ChildObjects(MyDescription)
NoOfChildObjs = Checkboxes.Count '指定符合条件对象的数量
For Counter=0 to NoOfChildObjs-1 '根据得到的属性,进行批量操作
Checkboxes(Counter).Set "ON" '对该类型的数据赋值
Next
Click:object.click
单击对象
Close:object. Close
关闭对象
DblClick:object. DblClick
双击对象
例:Browser("Demo of Vo Object").Page("Demo of Vo Object").ActiveX("VoDemoFormX").
VirtualButton("button").DblClick
Drag:object.Drag X, Y, [BUTTON]
拖拽对象到指定位置
X—指定基于最上层对象的左上角的X轴的数值(必填项,整数)
Y—指定基于最上层对象的左上角的Y轴的数值(必填项,整数)
BUTTON—1个预定义的常量或数字(非必填项)
Drop:object.Drop X, Y, [BUTTON]
拖放操作
X—指定基于最上层对象的左上角的X轴的数值(必填项,整数)
Y—指定基于最上层对象的左上角的Y轴的数值(必填项,整数)
BUTTON—1个预定义的常量或数字(非必填项)
GetTOProperty():取得仓库对象的某个属性的值
GetTOProperties():取得仓库对象的所有属性的值
GetROProperty():取得实际对象的某个属性的值
SetTOProperty():设置仓库对象的某个属性的值
(注:RO=runtimeobject;TO=testtimeobject)
例:buttonNum = CInt(JavaWindow("Test").JavaEdit("Record Num").GetROProperty("value"))
(其他类似)
GetTextLocation:TextUtil.GetTextLocation(TextToFind, hWnd, Left, Top, Right, Bottom[, MatchWholeWordOnly])
获取对象的坐标
例:'获取"Generate Report"文本在WinObject("Menu")中的坐标范围,
‘并返回给L(left),T(top),R(right),B(bottom)
VbWindow("Window").WinObject("Menu").GetTextLocation strText,L,T,R,B,True
'点击该文本所在坐标区域的正中心位置
VbWindow("Window").WinObject("Menu").Click (L+R)/2, (T+B)/2
GetVisibleText:object.GetVisibleText ([Left], [Top], [Right], [Bottom])
返回从指定区域的文本。
Left—左坐标内的对象的窗口搜索范围。(非必填项)
Top—顶部的搜索区域协调对象的窗口。(非必填项)
Right—右边的坐标内的对象的窗口搜索范围。(非必填项)
Bottom—底部坐标搜索范围内的对象的窗口。(非必填项)
Maximize:object.Maximize
窗口最大化
Minimize:object. Minimize
窗口最小化
MouseMove:object.MouseMove X, Y
移动鼠标指针到对象指定的位置。
X—x坐标的鼠标指针,相对于上对象的左上角。
Y—y坐标的鼠标指针,相对于上对象的左上角。
Move:object.Move X, Y
移动对话框到屏幕上指定的对应位置。
X—x坐标的鼠标指针,相对于上对象的左上角。
Y—y坐标的鼠标指针,相对于上对象的左上角。
Resize:object.Resize Width,Height
调整对话框大小到指定的尺寸。
Width—宽度。整数值。窗口的新宽度,以像素为单位。
Height—高度。整数值。窗口的新宽度,以像素为单位。
Restore:object.Restore
恢复对话框原来的大小。
ToString:object.ToString
返回一个字符串,包含当前测试对象的属性值。
Type:object.Type KeyboardInput
在对象类型指定的字符串。
micCtrlDwn按下Ctrl键。 micCtrlUp释放Ctrl键。
micLCtrlDwn按下左Ctrl键。 micLCtrlUp释放左Ctrl键。
micRCtrlDwn按下右Ctrl键。 micRCtrlUp释放右Ctrl键。
micAltDwn按下Alt键。 micAltUp释放Alt键。
micLAltDwn按下左Alt键。 micLAltUp释放左Alt键。
micRAltDwn按下右边的Alt键。 micRAltUp释放右边的Alt键。
micShiftDwn按下Shift键。 micShiftUp释放Shift键。
micLShiftDwn按下左边的Shift键。 micLShiftUp释放左Shift键。
micRShiftDwn按下右Shift键。 micRShiftUp释放右Shift键。
micIns按下INSERT键。--插入键
micDel按下Delete键。
micHome按下Home键。
micEnd按下End键。
micPgUp按下Page up键。
micPgDwn按下Page Down键。
micUp按下向上键。
micDwn按下向下键。
micLeft按下向左键。
micRight按下右键。
micEsc按下Esc键。
micBack按下Backspace键。
micReturn按下回车键。
micTab按下Tab键。
micBreak按下Break键。
micPause按下暂停键。
micPrintScr按下Print Screen键。
micWinLogoDwn按下Windows徽标键。 micWinLogoUp释放的Windows徽标键。
micLWinLogoDwn按下左边的Windows徽标键.micLWinLogoUp释放左Windows徽标键。
micRWinLogoDwn按下右边的Windows徽标键.micRWinLogoUp释放右Windows徽标键。
micAppKey按下应用程序键。
Mic(F1~F12)按F1~F12键。
micNumLockOn打开Num Lock。 micNumLockOff关闭的Num Lock。--小键盘
micCapsLockOn打开大写锁定。 micCapsLockOff关闭大写锁定。
micScrollOn打开滚动锁定。 micScrollOff关闭滚动锁定。
WaitProperty:object.WaitProperty (PropertyName, PropertyValue, [TimeOut])
等待至指定的对象属性达到或超过规定值,然后再继续下一个步骤指定的超时。
即同步点
PropertyName—对象的属性名(必填项)
PropertyValue—该属性要达到的值或条件(必填项)
[TimeOut])—超时时间(选填)
例:Dialog("Login").WaitProperty "abs_x", 123, 10000
当对象login的abs_x的值为123时再执行后续步骤;最大等待时间为10S
Exist:object.Exist([Timeout])
检查对象存在。
[Timeout]—超时设置(选填项)
例:判断按钮是否存在;如果存在则给出提示
If Browser("Demo of Vo Object").Page("Demo of Vo Object").ActiveX("VoDemoFormX")
.VirtualButton("button").Exist Then
msgbox("The object exists.")
End If
二.datatable的方法
AddSheet:DataTable.AddSheet(sheetname)
创建新的工作表
SheetName—新的工作表名称
例:DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")
在运行时在datatable中新建的一个MySheet工作表。
DeleteSheet:DataTable.DeleteSheetSheetID
在测试运行时删除指定的工作表
SheetID—要删除的工作表的标识符
例:DataTable.DeleteSheet "MySheet"
使用DeleteSheet方法来删除表“MySheet”。
Export:DataTable.Export(FileName)
在测试运行过程中导出datatable数据。
FileName—要导出的工作表名称
例:DataTable.Export ("C:\flights.xls")
导出datatable中所有数据至指定路径。
ExportSheet:DataTable.ExportSheet(FileName,DTSheet)
在测试运行过程中导出datatable中指定的sheet表到指定的位置。
FileName—保存导出数据的绝对路径
DTSheet—变量的名称或运行时数据表或你要导出的索引(指数值从1开始)
例:DataTable.ExportSheet "C:\name.xls" ,1
保存的运行时datatable中的第一页到name.xls文件。
GetCurrentRow:DataTable.GetCurrentRow(全局)
返回运行时数据表的第一个工作表中的当前(活动)行。
例:row = DataTable.GetCurrentRow
Reporter.ReportEvent 1, "Row Number", row
检索当前正在运行时数据表中使用的行,并将其写入报告。
GetRowCount:DataTable.GetRowCount
返回datatable数据表中单列最大行数
例:rowcount = DataTable.GetRowCount
Reporter.ReportEvent 2, "There are " &rowcount, "rows in the data sheet."
返回数据表的最大行数;并显示在报告中
GetSheet:DataTable.GetSheet(SheetID)
返回运行时数据表的"MySheet"工作表,以便向其中添加参数。
SheetID—要返回的工作表名称。该表ID可以是表名称或索引(指数值从1开始)
例:a=DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"
返回mysheet表同时向表里面添加参数;a的值为“8:00”
GetSheetCount:DataTable.GetSheetCount
返回表中的运行时数据表的总数。
例:sheetcount = DataTable.GetSheetCount
返回datatable数据表的sheet总数。
GlobalSheet:DataTable.GlobalSheet
返回在运行时数据表(全局表)
例:ParamValue=DataTable.GlobalSheet.AddParameter("Time", "5:45")
向全局表添加一个参数并返回;ParamValue的值为“5:45”
注:“time”:sheet表中的列名;“5:45”:time列中的参数
LocalSheet:DataTable.LocalSheet
返回当前(活动)的运行时数据表的本地表。
例:ParamValue=DataTable.GlobalSheet.AddParameter("Time", "5:45")
向Action表(局部)添加一个参数并返回;ParamValue的值为“5:45”
注:“time”:sheet表中的列名;“5:45”:time列中的参数
Import:DataTable.Import(FileName)
运行时导入指定的Excel文件的数据表。
FileName—导入文件的绝对路径。
例:DataTable.Import ("C:\flights.xls")
导入指定路径的文件到datatable
ImportSheet:DataTable.ImportSheet(FileName, SheetSource, SheetDest)
运行时导入指定的Excel文件中的指定的sheet数据表。
FileName—导入文件的绝对路径。
SheetSource—要导入表的变量名称或文件索引(指数值从1开始)。
SheetDest—要替换变量的名称或数据表中的表。(导入后存放的空间)
例:DataTable.ImportSheet "C:\name.xls" ,1,"Action1"
导入指定数据表至指定的action数据表中
注:1:sheet的索引;可以是sheet名如“sheet1”同样效果
Action:指定的数据表
RawValue:DataTable.RawValue ParameterID [, SheetID]
在运行时获取当前行指定单元格的参数值
ParameterID—列的变量名或索引(指数从1开始)
SheetID—要返回工作表;可以是表名称或索引(默认全局表)
例:FormulaVal=DataTable.RawValue ("Date", "Action1")
返回指定列的参数值
Data:列名;action:数据表名
SetCurrentRow:DataTable.SetCurrentRow(RowNumber)
设置当前active的行数(第一行为1)。
RowNumber—行号
例:DataTable.SetCurrentRow(tb_i+1)
DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)
此命令可在循环运行中不断指向下一行数据
DataTable.SetCurrentRow (2)
指向第二行
SetNextRow:DataTable.SetNextRow
设置向下一行
SetPrevRow:DataTable.SetNextRow
设置向下一行
Value:DataTable.Value(ParameterID [,SheetID])(查找值)
DataTable.Value(ParameterID [, SheetID])=NewValue(设置单元格的值)
获取或这只单元格的值
ParameterID—列名
SheetID—sheet名(非必填项,默认为全局变量global)
例:DataTable.Value("目的地","Action1")="纽约"
a=datatable.Value("目的地","Action1")
msgbox a
注:以上操作大多数为全局操作global若要对单个sheet操作可以使用下列方法DataTable.GetCurrentRow Reporter.ReportEvent 1, "Row Number", row
中间加【.GetSheet("Sheetid")】
执行for循环的方法
For i=0 to datatable.GetSheet("Goods").GetRowCount-1 '定义循环执行次数
'要循环的测试脚本
...
DataTable.GetSheet("Goods").SetNextRow '获取DataTable中的下一行数据
Next
- QTP专家视图方法总结
- 如何成为QTP专家
- 如何成为QTP专家
- 如何成为QTP专家
- QTP总结
- QTP总结(转)
- QTP论坛帖总结
- QTP同步功能总结
- [总结]QTP Timeout Settings
- QTP实习总结
- QTP知识点总结
- 对话框上创建视图方法总结
- 视图搜索排序方法总结(NotesView.FTSearchSorted)
- MVC中部分视图调用方法总结
- MVC中部分视图调用方法总结
- QTP 10和QTP 11 破解方法
- 【QTP】最小化QTP运行的方法
- QTP 10和QTP 11 破解方法
- FS寄存器的作用
- MyEclpise lib下的包不和tomcat下包冲突的方法
- 采集网页选定部分全攻略
- LAMP兄弟连-smarty模板技术全套课程
- windows 8 开启AP HOC
- QTP专家视图方法总结
- 抽象类HttpServlet继承GenericServlet
- PHP专题(持续更新)
- CMMI 项目管理9大知识领域,5大过程组
- VB form 控制窗口BorderStyle 属性
- NOJ [1019] 拔树 模拟小水题
- 拖动效果和放大缩小效果
- 如何用Arduino做一个智能水表
- Ubuntu技巧之 is not in the sudoers file解决方法