数据驱动实现参数化包括全局驱动和本地驱动,全局驱动主要是实现的是整个脚本的循环,本地驱动实现的是脚本中的部分操作进行参数化循环,在本例中主要是验证订票是否成功的脚本,但是前提就是先登录到系统,但是登录过程在脚本中就没有必要循环操作,所以在这里用到本地数据驱动,对订票功能的各个检查点进行验证。
验证点 测试数据 预期结果(空表示数据位正确数据)
(1) 时间限制 110512
11623 enter a flight date
110423
110301 Valid flight date are
11062 enter a flight date
(2) 出发地 Frankfurt Frankfurt
Paris Paris
Denver Denver
(3) 数据库 乘客姓名(自定义) 数据库中是否存在此乘客 (乘客姓名需要参数化)
(4) 记录值 无数据 能够在界面上显示记录值
下面将具体录制和编辑脚本,首先要明白预期的结果,所以说QTP是回归测试的辅助工具。
1.录制脚本,把需要的对象都录制到对象库中,录制脚本过程就不在赘述了,添加对象到对象库前面文章也有讲到。
2.编辑脚本
(1)首先分离登录界面和订票界面,分为两个Action
在Keyword View中,在Login的最后一步操作,也就是Flight Reservation的前一步操作上点击右键,Action->Insert call to new action,在弹出的对话框中把描述信息填好,并选择“after the current step”,点击确定即可。在 插入位置即可看到action2。
(2)把订票操作加入到action2中
切换到expert view页面,看到action2内容为空,选择action1,把订票界面中的内容除了最后一句全部复制到action2中。复制到action2中后,发现对象都不能识别了,所以要让action2的对象库和action1关联。
先把action1的对象库导出,Resources->Object Reository,进入弹出界面,File->Export Local Object,进行导出保存。
关联对象库,Resources->associatet Reositories ,点击“+”按钮,选择刚才导出的文件,把Available actions中的action2 添加到associated Actions 中,点击确定即可。此时action2中的对象可以识别了,但是不能对其进行删减。
(3)本地驱动参数化飞行时间和出发地,插入出发地验证点
本地驱动方法和全局驱动发发一样,区别就是在参数化对话框中,选择“current action sheet[local]”,参数化过程就不在详细讲解,参数化的内容存在于在DataTable中的action2中,而不是原来的Global中,需参数化的内容:起飞时间,出发地,乘客姓名,起飞时间预期结果。
插入出发地是否显示正确,右击“FlyFrom”操作步骤,插入标准检查点,选择默认的“selection”属性进行本地参数化,数据和出发地的参数一一对应。
(4)数据库检查点
在机票预订成功后,要插入到数据库中,验证是否插入成功,本例中验证数据库中是否存在乘客姓名。
在Keyword View中,选中“insert order”操作步骤,Insert->checkpoint->database checkpoint,
进入对话框中,选择“Specify SQL statement manually”,点击下一步,create->机器数据源,选择QT_Flight32,点击“确定”,在SQL statement中输入“select Customer_Name from Orders”,在弹出的表格中选择第一行,进行参数化,和乘客姓名参数化相同,并一一对应。
产生的语句:DbTable("DbTable").Check CheckPoint("DbTable")
(5)记录值检查点(主要判断是否为空值)
Window("Flight Reservation").WinEdit("Order No:")GetRoProperty("text")
(6)编辑脚本,进行各个检查点判断,下面是编辑好后的Action2脚本
到这里,基本上简单的检查点已将熟练了,下一步就是研究录制.net程序,安装.net插件