|
在Winrunner的三大检查点中有一个数据库检查点,可以很方便的检查、对比回放过程中被测软件对数据库的记录操作,同时它也提供一个参数化的功能,允许用户根据需求替换你要查询的条件。这里我来简单介绍一下如何设置参数化的数据库检查点
仍然是以WR自带的Flight为例,打开软件录制一个order的插入过程,脚本如下:
# Flight Reservation
set_window ("Flight Reservation", 15);
obj_type ("MSMaskWndClass","111111");
list_select_item ("Fly From:", "London"); # Item Number 2;
list_select_item ("Fly To:", "Paris"); # Item Number 3;
obj_mouse_click ("FLIGHT", 26, 57, LEFT);
# Flights Table
set_window ("Flights Table", 1);
button_press ("OK");
# Flight Reservation
set_window ("Flight Reservation", 6);
edit_set ("Name:","yangmh" );
button_press ("Insert Order");
list_check_info("Fly From:","value","London");
wait(10);
在脚本最后插入custom的数据库检查点,WR->Insert->Database Checkpoint->Custom Check 选择Specify SQL statement(这里已ODBC为例)
next,在选择连接中点击Create,选择系统自带的Flight32(这是安装WR时自动注册上去的)
在下面的SQL语句中写入你要参数化的语句,注意,把你想要参数化的地方用问号“?”代替,并用括号括起来:
SELECT Flights.Day_Of_Week
FROM Flights, Orders
WHERE (Orders.Customer_Name=?) AND (Flights.Departure=?) AND (Flights.Flight_Number=Orders.Flight_Number)
这里我把订票人和起飞地点参数化了,从Flight和Orders两个表中取数据并关联,最后查询符合记录中Flights.Day_Of_Week的值
如果你不确定语句是否正确,可以打开Microsoft Query 记载你的数据库并执行一下,如果正确的话它会提示你输入查询参数值并最后给出查询结果。
点击finish后WR会提示你这是一个参数化的数据库检查点,它的预期结果WR没有得到,你必须提前使用Update模式运行一下。之后可以看到数据库检查点的窗体弹出,点击ok后会提示你是否要更改选择,这里点击no
之后参数化的检查点语句会自动出现在脚本最后,但我们还需要给参数赋值,赋值语句是一个数组,你有多少个参数就写多少数组元素,且必须写在检查点语句之前:
dbvf2_params[1]="yangmh";
dbvf2_params[2]="London";
db_check("list2.cdl", "dbvf2", NO_LIMIT, dbvf2_params);
这里我想查询Customer_Name=yangmh,Departure=London的记录。
把WR调为Update模式运行一下,使WR得到Expect Result,之后再使用Verify模式运行,查检Test Result
WR已经成功取得预期结果并与verify模式下的实际结果进行对比。
同样我们可以把参数数组dbvf2_params[]放到脚本的前面,将操作中的部分函数用这个数组代替,如在Flight中输入订票人的时候可以这样写:
# Flight Reservation
set_window ("Flight Reservation", 6);
edit_set ("Name:",dbvf2_params[1]);
button_press ("Insert Order");
这样当我们想要查询其他订票人和其他起飞地点的时候只需在脚本前更改一下赋值并Update一下即可。
ps:在插入数据库检查点的语句前最好能等待一段时间,或者插入一个gui检查点,让操作完全记录到数据库中,这样Update时才能得到正确的预期结果
附件:
|
|