QTP高级应用(7)

QTP高级应用(7)

一、实验目的

二、实验的步骤和方法

1.创建Action

1.1使用Call new Action命令创建一个新的Action

1.2使用Call copy of Action命令复制其他测试的Action

1.3使用Call Existing Action命令调用其他测试的Reusable Action

1.4通过分割方式产生新的Action

2.Action的参数化

3.专家视图

3.1在专家视图中编辑测试脚本的方法

3.2输入代码注释

3.4自动化VBScript语法识别和完成

4.QTP内置函数的使用

4.1使用Print函数显示信息

4.2使用Wait函数暂停测试脚本的执行

4.3使用ExecuteFile执行VBScript脚本


一、实验目的

1)掌握QTP的Action和Action参数化

2)熟悉专家视图

3)了解QTP内置函数的使用

二、实验的步骤和方法

首先录制一段脚本

1.创建Action

1.1使用Call new Action命令创建一个新的Action

执行菜单【Insert】【Call new Action】命令,

或者单击工具栏上的按钮,

在弹出的对话框中可以创建一个新的Action

Reusable Action:如果选中此复选框,则该Action可以被其他测试脚本调用。但其他测试脚本不能对其进行修改。

每个Action都有一个对应的数据表,右击测试脚本本身的Action(而不是调用其他脚本中的Action),在右键菜单中执行【ActionProperties】命令。

在弹出对话框中单击【General】选项卡,可以设置Action的基本属性。

1.2使用Call copy of Action命令复制其他测试的Action

执行菜单【Insert】|【Call copy of Action】命令,可以复制其他测试的Action到当前测试中来。

复制时系统会先提示一个选择Action的对话框

Edit New action properties:指定是否要更改该Action的属性,如果选中该复选框,则单击【OK】按钮后,系统会弹出Action的属性对话框,让测试人员根据需要进行更改

1.3使用Call Existing Action命令调用其他测试的Reusable Action

执行菜单【Insert】|【Call Existing Action】命令,可以调用其他测试的Reusable Action到当前测试中来。

调用时,系统首先提示选择Action对话框。

该方法只能调用外部脚本中具有“Reusable Action”属性的Action。

1.4通过分割方式产生新的Action

QTP还提供了一种创建Action的特殊方式,就是把一个Action分割成多个Action,这样测试人员就可以先录制一个整体的测试脚本,然后再根据需要将脚本分割成不同的Action。

在分割Action对话框中,根据需要对如下参数项进行设定

在【The actions are】选项区域中,可以设定分割后两个Action的从属关系。如果选中第一个【Independent of each other】单选按钮,表明两个Action是并列的关系;选中第二个【Nested】单选按钮,表明这两个Action是嵌套关系,第二个Action属于第一个Action,是被第一个Action调用的。

在【1st action】和【2nd action】两个选项区域中,可以分别设定两个Action的名称和描述信息

2.Action的参数化

在QTP中每创建一个Action,在Data Table中就会增加一个相应的Sheet,也就是说,除了所有脚本都可以使用的Global Sheet外,QTP还在Data Table中为每个Action创建了一个单独的Sheet(后面的介绍中,称为Action Sheet)。

Global Sheet是针对脚本的,Action Sheet是针对对应的Action的,这有点像程序中全局变量和局部变量的概念。测试人员向Data Table中输入数据或者将测试中的数据输出到数据表时,可以根据需要选择使用哪一种,这在参数化脚本的时候比较重要,如果指定Global Sheet中的数据作为参数化数据,那么将应用到整个脚本,即整个脚本执行多次反复。如果指定Action Sheet中的数据作为参数化数据,则只有相应的Action执行多次反复。

系统默认情况下,不管一个ActionSheet中有多少条记录,被参数化的Action都只执行一次反复,如果想让一个Action执行多次反复,则需要在Action Call Properties中进行设定

3.专家视图

3.1在专家视图中编辑测试脚本的方法

关键字视图与专家视图使用的是同一套对象库。在关键字视图中,通过单击【item】列中的单元格来选择测试对象,

而在专家视图中,则是使用以下方式。

(1)输入测试对象顶层对象的控件类型名,例如Dialog,然后输入“(”,则QTP的脚本编辑器会自动列出对象库中匹配的测试对象,如果匹配的仅有一项,则会自动完成测试对象的选择和输入,例如“Dialog("Login”)”

(2)输入一个测试对象后,就可以访问其下的属性、方法,以及下级对象,如

其中,“Activate”、“Click”等都是该测试对象的可用方法,而“Exist”则是该测试对象可用的属性。另外,还可以访问该测试对象下级的测试对象

(3)选择“WinEdit”后,再输入“(”,则QTP会自动列出“Login”窗口所包含的类型为“WinEdit”的下级控件

(4)完成测试对象的选择后,可输入“.”,选择针对该测试对象作出的操作。例如,给输入框输入文字,可用“Type”方法,也可用“Set”方法

3.2输入代码注释

在关键字视图中,有专门的一列“Comment”用于输入测试步骤的注释,而在专家视图中,则需要像编写VBScript代码一样编写注释语句。在VBScript中,注释符号为“.”或“REM”。例如,下面两段代码的注释效果是一致的。

另外,注释语句可以写在测试步骤的语句前面,也可以写在语句后面,例如:

Dialog(“Login”).Activate’定位到登录窗口

但是,写在前面与写在后面在关键字视图中的表现是不一样的

可看到,如果注释写在上面,则在关键字视图中会以单独的一行表示。在“Item”中,以“Comment”表明这个测试步骤是一个注释。

3.4自动化VBScript语法识别和完成

在QTP的专家视图中,支持自动化的VBScript语法识别和完成。例如,在脚本编辑器中输入“if”,然后按空格键,则QTP将自动输入如下代码:

这是由于QTP识别出输入的关键字“if”,只要【Auto expand VBScript syntax】复选框被选中,就能自动识别和完成VBScript语法的输入。通过执行菜单【Tools】【View Options】命令,打开该界面,确保【Auto-expand VBScript syntax】复选框被选中。

4.QTP内置函数的使用

4.1使用Print函数显示信息

Print函数可用于在测试过程中显示输出信息,在测试脚本的运行过程中,Print Log窗口将保持打开状态。例如,下面的脚本在测试过程中,将显示如下界面。

' 定位到FlightsTable窗口的WinList控件

Set FlightsList = Window("Flight Reservation").Dialog("Flights Table").WinList("From")

' 获取WinList控件中的所有项,并通过Print方法显示出来

For i = 1To FlightsList.GetItemsCount - 1

    Print FlightsList.GetItem(i)

Next

Print函数可用于测试脚本的调试,用于检查测试脚本中的某些逻辑、数据是否正确。另外一种方法是使用MsgBox。例如,上面的信息可用下面的代码,通过消息框的形式显示出来。

Dim str

'定位到Flights Table窗口的WinList控件

Set FlightsList = Window("Flight Reservation").Dialog("Flights Table").WinList("From")

'获取WinList控件中的所有项,并通过Print方法显示出来

For i = 0 To FlightsList.GetItemsCount - 1

       str = str + FlightsList.GetItem(i) + vbCrLf

Next

MsgBox str

4.2使用Wait函数暂停测试脚本的执行

在脚本的一个阶段结束后可以增加例如wait 2的代码,意思是等待两秒,后面可以加入循环语句,让前面的脚本重复执行。

4.3使用ExecuteFile执行VBScript脚本

ExecuteFile函数可用于执行指定的VBScript脚本文件,并且一旦脚本文件运行起来后,脚本文件中的函数都可以被直接调用。例如,假设“MyFunctions.vbs”脚本文件包括以下内容:

那么可以在QTP中编写如下代码来执行该VBScript脚本,并且调用其中的AddTest函数,如以下代码所示:

测试脚本运行过程中,将弹出两个消息框,第一个是执行“MyFunctions.vbs”脚本中的“AddTest1,1”所产生的,第二个是直接调用AddTest函数所产生的,并且通过调用函数AddTest,在PrintLog窗口中显示返回结果。

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值