《QuickTest Professional Tutorial》读书笔记(10)

在QTP中Action是一个可以被重用的最小单位,当你建立一个全新的测试脚本时,测试脚本只有一个名为Action1的Action,你可以将整个测试脚本切割成多个Actions,让测试脚本更为模块化且更容易重用。
 
回顾之前录制的脚本,我们发现脚本可以分为几个业务流程:
*  登录
*  查找并预订机票
*  注销登录
 
假设我们要建立一个可以预订五张不同机票的测试脚本,那我们就必须将整个测试脚本参数化,当然这里我们可以将测试脚本分成三个动作:登录、查找并预订机票、注销登录,然后将第二个动作参数化,仿真一个比较真实的用户登陆行为,然后预订机票,最后注销登录。(当然不会有人傻到订五张机票需要登录五次去操作)
 
要将测试脚本切割成多个Action,你可以插入新的Action、将一个Action切割成二个、插入已经存在的Action、或者直接调用(Call)已经存在的Action。
 
可以选择菜单或工具栏中相应按钮来完成Action的Insert、Split、Insert Copy of Action、Insert Call to Action。
 
实例:

1.         我们重新Record一个脚本,并且命名为ActionA。

2.         前面所有步骤都一样,在Flight Confirmation网页中,我们选择BACK TO FLIGHTS,回到Flight Finder网页,之后停止录制。

3.         以上脚本包括了2个业务流程:登录与订票,所以我们将整个测试流程分成2个Action:选择第二个动作开始的网页:Find a Flight:Mercury网页,并且选择右键菜单Action->Split,在弹出的Split Action对话框中分别命名2个Action为Sign_in和FlightOrder,并且Description字段分别输入Enters user name and password to sign in和Chooses and purchases a flight,点击OK按钮关闭Split Action对话框,这时Keuword View中会列出2个Action。选择菜单View->Expand All检查每个Action内容,注意FlightOrder这个Action的开始与结束都是Find a Flight:Mercury网页。

4.         接下来我们录制一个新的Action。回到Mercury Tours首页,让这个测试脚本开始并结束于同一页面:选择Insert->Insert Call to New Action菜单,Name输入ReturnHome,并选取At the end of test单选按钮,点击OK按钮关闭对话框。

5.         开启浏览器并浏览网址:http://newtours.demoaut.com,选择QTP菜单Automation>Record and Run Settings,打开Record and Run Settings对话框,选择单选按钮Record and run test on any open browser。

6.         点击Record按钮开始录制,在IE中选择左边目录区的Home按钮回到Mercury Tours首页,关闭浏览器,然后停止录制。

7.         恢复Record and Run Settings里面的Open the following address when a record or run session begins单选按钮。

8.         保存脚本并执行,观察测试结果。

9.         至此,我们的第一个脚本已经完成,目前第一个脚本包括了三个Action,并且每个Action重复一次。下面我们想创建一个新的脚本,并且使得前一个脚本的Sigh_in和ReturnHome脚本各执行一次,而FlightOrder脚本执行多次,这里我们很自然的想到需要参数化第二个Action也就是FlightOrder。

10.     我们建立一个新的Test,取名叫ActionB。

11.     我们选择菜单Insert->Call to Existing Action,打开Select Action对话框,从ActionA中选择Sign_In这个Action,注意选择At the end of the test。

12.     依照同样的步骤我们插入ReturnHome这个Action。

13.     删除原来自动生成的Action。

14.     选择Insert->Call to Copy of Action,打开Select Action对话框,选择测试脚本ActionA中的FlightOrder这个Action,同样选择At the end of the test。

15.     Keyword View中调整各个Action的调用顺序。

16.     修改Copy of FlightOrder这个Action使之参数化:我们修改toPort为Parameter Name是ArrivalCity,Location in Data Table为Current action sheet(local)。由于同一名旅客同一时间到达2个不同地点是不合理的,所以我们对出发和到达日期同样做参数化。我们这里修改ArrivalCity第二列为Portland,在departure和arrival(分别表示出发月份与到达月份)第二列中输入October。

17.     设定以数据表中所有数据重复执行动作:我们回到Test Flow,在Copy of FlightOrder这个Action中选择右键菜单Action Call Properties,打开Action Call Properties对话框,选择Run on all rows。

18.     保存、执行并分析脚本,在Test Results中可以看到Copy of FilghtOrder被重复执行了二次。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值