51Testing软件测试论坛

标题: 如何参数化数据库检查点和参数化SQL [打印本页]

作者: hnp2008    时间: 2007-4-11 15:26
标题: 如何参数化数据库检查点和参数化SQL
如何参数化数据库检查点和参数化SQL
那位大虾指点一下,最好能给个例子,不胜感激!谢谢
作者: dionysus    时间: 2007-4-12 23:35
lz能否具体说明一下需求?我们好对应解决
作者: hnp2008    时间: 2007-4-13 10:57
标题: 参数化数据库检查点的明确需求
1.参数化SQL语句

    就是SQL查询中至少有一个字段使用了参数,这个查询就是参数化查询。以航班预定软件为例,SQL语句如下:
      SELECT Flights.Departure, Flights.Flight_Number, Flights.Day_Of_Week
      FROM Flights Flights
      WHERE (Flights.Departure=?) AND (Flights.Day_Of_Week=?)
    为了执行查询中的参数,必须给参数指定值,怎么定义一个数组?怎么把数组的值指定给它,请斑竹指点!


2.参数化数据库检查点
   
     当你创建参数化数据库检查点时,脚本中会插入db_check语句。db_check功能有parameter_array变量。例如:
     db_check(“list1.cdl”, “dbvf1”, NO_LIMIT, dbvf1_params);
     parameter_array变量包含替换这些参数的值。
     录制脚本时,WR不能捕捉期望结果集。和常规数据库检查点不同,参数化的检查点需要额外步骤来捕捉期望结果集。
     因此,必须使用数 组语句来添加用来替换参数的值。这个怎么用数组语句来添加值?请指点!

3.真的谢谢斑竹花时间来回复我帖子!我想学习winrunner的同行都会感谢斑竹无私的奉献!!!
作者: dionysus    时间: 2007-4-15 21:43
1. lz可以在脚本中编写数据库连接和查询语句,这样对sql语句的参数化会更主动一些,可以搜索一下本版内关于数据库参数化的帖子,另外可以看一下我之前写过的一个帖子,大概了解一些WR中对数据库的操作语句:http://www.51testing.com/?5939/action_viewspace_itemid_1415.html

2. 参数化数据库检查点有些复杂,用WR自带的flight举例吧,lz可以首先录制一个插入的操作,之后在脚本中插入一个custom check 的数据库检查点,选择Specify SQL statement 在下一步选择连接的时候,选择WR自动安装上的Flight32(见附图1),在下面的Editbox中写SQL语句,将你要参数化的部分用问号“?”代替,如:“SELECT Flights.Flight_Number, Orders.Order_Number  FROM Flights, Orders  WHERE (Orders.Customer_Name=?)”,点击下一步,这时WR会弹出提示告诉你参数化了部分语句,注意这时WR是没有捕捉到你的预期结果的,因为你的条件并不完全,所以这时你查看数据库检查点的时候会有如下提示(见附图2)。关闭Check Database窗体的时候还会提示如下(间附图2),选择NO,不改变选择,之后ok即可。回到脚本在这条查询语句前声明并赋值一个数组,如对应上面的customer_name,这里声明为dbvf_params[1] ="dionysus";  这时需将WR的回放模式变为Update运行一下,让WR更新一下数据,以后就可以使用Verify模式回放了

3.工作日我很少有时间来这里一一回复,只能尽我的能力来回答,大家遇到不会的问题可以首先搜索一下类似的问题,可以学到很多知识,同时也希望其他WR老手高手能不吝赐教,打造一个学习和讨论氛围浓厚的WR板块,谢谢!sdlkfj3

[ 本帖最后由 dionysus 于 2007-4-15 21:47 编辑 ]




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2