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专家视图方法大全

.对象的方法

Activateobject.Activate [Item]

激活对象

         Item—列表中选择(名字:用引号;数字索引:不带引号;非必填项)

       1Browser("Demo of Vo Object").Page("Demo of Vo Object")

.ActiveX("VoDemoFormX").VirtualList("list").Activate 3

              激活list目录下中的第四项

       2Dialog("Login").Activate

激活该页面

 

CaptureBitmapobject.CaptureBitmap FullFileName, [OverrideExisting]

保存某一界面到本地51Testing软件测试网d"S&Y#Sq&YR Cd,C

         FullFileName文件的保存绝对路径可以为变量(必填项;后缀名不能少)

       OverrideExisting—布尔值(10truefalse;非必填项)

       例:Dialog("Login").CaptureBitmap "E:\tupian.bmp",True

       将运行时的窗口用bmp格式保存本地

 

CheckPropertyobject.CheckProperty (PropertyName, PropertyValue, [TimeOut])

将对象的属性的实际值与预期值相比;一致返回true否则false

       PropertyName—属性名称(用双引号,必填项)

         PropertyValue—预期属性值(用双引号,必填项)

       TimeOut—设置超时时间(不用引号,非必填项)

       例:a=Dialog("Login").CheckProperty("height","205",10)

       如果该对象的height属性值为205a=true否则a=false

 

ChildObjectsobject.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

 

Clickobject.click

单击对象

 

Closeobject. Close

关闭对象

 

DblClickobject. DblClick

双击对象

例:Browser("Demo of Vo Object").Page("Demo of Vo Object").ActiveX("VoDemoFormX").

VirtualButton("button").DblClick

 

Dragobject.Drag X, Y, [BUTTON]

拖拽对象到指定位置

         X—指定基于最上层对象的左上角的X轴的数值(必填项,整数)

Y—指定基于最上层对象的左上角的Y轴的数值(必填项,整数)

BUTTON1个预定义的常量或数字(非必填项)

 

Dropobject.Drop X, Y, [BUTTON]

拖放操作

         X—指定基于最上层对象的左上角的X轴的数值(必填项,整数)

Y—指定基于最上层对象的左上角的Y轴的数值(必填项,整数)

BUTTON1个预定义的常量或数字(非必填项)

 

GetTOProperty():取得仓库对象的某个属性的值
GetTOProperties():
取得仓库对象的所有属性的值
GetROProperty():
取得实际对象的某个属性的值

SetTOProperty():设置仓库对象的某个属性的值

(注:RO=runtimeobject;TO=testtimeobject

         例:buttonNum = CInt(JavaWindow("Test").JavaEdit("Record Num").GetROProperty("value"))

                   (其他类似)

 

GetTextLocationTextUtil.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

 

GetVisibleTextobject.GetVisibleText ([Left], [Top], [Right], [Bottom])

返回从指定区域的文本。

         Left—左坐标内的对象的窗口搜索范围。(非必填项)

         Top—顶部的搜索区域协调对象的窗口。(非必填项)

         Right—右边的坐标内的对象的窗口搜索范围。(非必填项)

         Bottom—底部坐标搜索范围内的对象的窗口。(非必填项)

 

Maximizeobject.Maximize

窗口最大化

 

Minimizeobject. Minimize

窗口最小化

 

MouseMoveobject.MouseMove X, Y

移动鼠标指针到对象指定的位置。

         Xx坐标的鼠标指针,相对于上对象的左上角。

Yy坐标的鼠标指针,相对于上对象的左上角。

 

Moveobject.Move X, Y

移动对话框到屏幕上指定的对应位置。

         Xx坐标的鼠标指针,相对于上对象的左上角。

Yy坐标的鼠标指针,相对于上对象的左上角。

 

Resizeobject.Resize Width,Height

调整对话框大小到指定的尺寸。

Width—宽度。整数值。窗口的新宽度,以像素为单位。

Height—高度。整数值。窗口的新宽度,以像素为单位。

 

Restoreobject.Restore

恢复对话框原来的大小。

 

ToStringobject.ToString

返回一个字符串,包含当前测试对象的属性值。

 

Typeobject.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按下应用程序键。

MicF1~F12F1~F12键。

micNumLockOn打开Num Lock                  micNumLockOff关闭的Num Lock--小键盘

micCapsLockOn打开大写锁定。                  micCapsLockOff关闭大写锁定。

micScrollOn打开滚动锁定。                          micScrollOff关闭滚动锁定。

 

WaitPropertyobject.WaitProperty (PropertyName, PropertyValue, [TimeOut])

等待至指定的对象属性达到或超过规定值,然后再继续下一个步骤指定的超时。

即同步点

PropertyName—对象的属性名(必填项)

PropertyValue—该属性要达到的值或条件(必填项)

[TimeOut])—超时时间(选填)

例:Dialog("Login").WaitProperty "abs_x", 123, 10000

当对象loginabs_x的值为123时再执行后续步骤;最大等待时间为10S

Existobject.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的方法

AddSheetDataTable.AddSheet(sheetname)

创建新的工作表

         SheetName—新的工作表名称

         例:DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")

在运行时在datatable中新建的一个MySheet工作表。

 

DeleteSheetDataTable.DeleteSheetSheetID

在测试运行时删除指定的工作表

         SheetID—要删除的工作表的标识符

         例:DataTable.DeleteSheet "MySheet"

         使用DeleteSheet方法来删除表“MySheet”。

 

ExportDataTable.Export(FileName)

在测试运行过程中导出datatable数据。

         FileName—要导出的工作表名称

         例:DataTable.Export ("C:\flights.xls")

         导出datatable中所有数据至指定路径。


ExportSheetDataTable.ExportSheet(FileName,DTSheet)

在测试运行过程中导出datatable中指定的sheet表到指定的位置。

         FileName—保存导出数据的绝对路径

         DTSheet—变量的名称或运行时数据表或你要导出的索引(指数值从1开始)

         例:DataTable.ExportSheet "C:\name.xls" ,1

         保存的运行时datatable中的第一页到name.xls文件。

 

GetCurrentRowDataTable.GetCurrentRow(全局)

返回运行时数据表的第一个工作表中的当前(活动)行。

         例:row = DataTable.GetCurrentRow

Reporter.ReportEvent 1, "Row Number", row

         检索当前正在运行时数据表中使用的行,并将其写入报告。

 

GetRowCountDataTable.GetRowCount

返回datatable数据表中单列最大行数

例:rowcount = DataTable.GetRowCount

Reporter.ReportEvent 2, "There are " &rowcount, "rows in the data sheet."

返回数据表的最大行数;并显示在报告中

 

GetSheetDataTable.GetSheet(SheetID)

返回运行时数据表的"MySheet"工作表,以便向其中添加参数。

         SheetID—要返回的工作表名称。该表ID可以是表名称或索引(指数值从1开始)

         例:a=DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"

         返回mysheet表同时向表里面添加参数;a的值为“8:00

 

GetSheetCountDataTable.GetSheetCount

返回表中的运行时数据表的总数。

         例:sheetcount = DataTable.GetSheetCount

         返回datatable数据表的sheet总数。

 

GlobalSheetDataTable.GlobalSheet

返回在运行时数据表(全局表)

例:ParamValue=DataTable.GlobalSheet.AddParameter("Time", "5:45")

         向全局表添加一个参数并返回;ParamValue的值为“5:45

         注:“time”:sheet表中的列名;“5:45”:time列中的参数

 

LocalSheetDataTable.LocalSheet

返回当前(活动)的运行时数据表的本地表。

例:ParamValue=DataTable.GlobalSheet.AddParameter("Time", "5:45")

Action表(局部)添加一个参数并返回;ParamValue的值为“5:45

         注:“time”:sheet表中的列名;“5:45”:time列中的参数

 

ImportDataTable.Import(FileName)

运行时导入指定的Excel文件的数据表。

         FileName—导入文件的绝对路径。

         例:DataTable.Import ("C:\flights.xls")

         导入指定路径的文件到datatable

 

ImportSheetDataTable.ImportSheet(FileName, SheetSource, SheetDest)

运行时导入指定的Excel文件中的指定的sheet数据表。

         FileName—导入文件的绝对路径。

         SheetSource—要导入表的变量名称或文件索引(指数值从1开始)。

         SheetDest—要替换变量的名称或数据表中的表。(导入后存放的空间)

         例:DataTable.ImportSheet "C:\name.xls" ,1,"Action1"

 导入指定数据表至指定的action数据表中

         注:1sheet的索引;可以是sheet名如“sheet1”同样效果

                   Action:指定的数据表

 

RawValueDataTable.RawValue ParameterID [, SheetID]

在运行时获取当前行指定单元格的参数值

         ParameterID—列的变量名或索引(指数从1开始)

         SheetID—要返回工作表;可以是表名称或索引(默认全局表)

         例:FormulaVal=DataTable.RawValue ("Date", "Action1")

         返回指定列的参数值

         Data:列名;action:数据表名

 

SetCurrentRowDataTable.SetCurrentRow(RowNumber)

设置当前active的行数(第一行为1)。

         RowNumber—行号

例:DataTable.SetCurrentRow(tb_i+1)

DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)

此命令可在循环运行中不断指向下一行数据

DataTable.SetCurrentRow (2)

指向第二行

 

SetNextRowDataTable.SetNextRow

设置向下一行

 

SetPrevRowDataTable.SetNextRow

设置向下一行

 

ValueDataTable.Value(ParameterID [,SheetID])(查找值)

            DataTable.Value(ParameterID [, SheetID])=NewValue(设置单元格的值)

获取或这只单元格的值

         ParameterID—列名

         SheetIDsheet名(非必填项,默认为全局变量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 

 

 

 

原创粉丝点击