在LoadRunner中对数据库进行表查询or执行存储过程

上一篇 / 下一篇  2011-01-19 14:17:22 / 个人分类:LoadRunner

执行完LR脚本后,相应的数据状态都会改变,如何能保证下次执行呢?这就需要把数据状态置回,可以通过在lr脚本中调用sql,对相应的数据库进行操作;下边是我们目前使用的两种方法:

一、通过BAT文件调用sql执行

方法:1)在lr脚本中调用bat文件

     2)在bat文件中写调用的sql文件

举例说明:

**************************************************************************

目标:通过loadrunner执行sqlupdate tableset name = ''

具体实现方法:

首先,在LR脚本中写出一句调用bat的语句:system("E:\\**.bat");

注:语句中路径是双\,最后有一个;

 

第二,创建一个bat文件,来调用一个sql脚本。内容类似:osql -U sa -P 11111111  -S DBserver -i E:\**.sql

其中,-U后面是数据库用户名,-P后面是数据库密码,-S后面是数据库所在服务器名称,-i后面是具体sql路径。注意每一个具体值前面都有一个空格。

 

第三,写恢复自己数据的sql脚本。在脚本开头可以写具体操作哪个库。例如

USE [DBname]

GO

update tableset name = ''

这样就可以在LR中操作数据库了。

*******************************************************************

弊端:1.不能在sql中做变量,或者说不支持参数化,只能固定的执行某一些sql

     2.batsql文件的路径在不同机器上,需要随时更改

二、在lr脚本中执行存储过程(该方法是对一的优化)

 方法:1)首先在相应的数据库中执行创建存储过程

      2)然后在lr脚本中调用此存储过程

****************************************************************************

举例说明:

目标:通过LoadRunner执行含变量的存储过程

具体实现方法:

1)在相应的数据库上执行存储过程:

use[DBname]

GO

CreateProcedureQA_LR

as

 @namevarchar(30)

begin

 

  update tableset name = '' where name = @name

end

2)LoadRunner脚本中写入

char command[1024];

        sprintf(command, "Sqlcmd -U sa -P 11111111 -S DBserver -dDBname-Q \"exec QA_LR%s \" ", lr_eval_string("{name}") );

        lr_output_message(command);

        system(command);

其中-U后面是数据库用户名,-P后面是数据库密码,-S后面是数据库所在服务器名称,-d后面是具体数据库名称,-Q后面是要执行的sql。注意每一个具体值前面都有一个空格。

这样就可以在LR中执行存储过程了。

*******************************************************************************

优点:1.对执行的sql可以进行参数化,这样更灵活的对指定某个变量进行sql执行

2.摆脱了修改路径的繁琐


TAG:

 

评分:0

我来说两句

xinhai526

xinhai526

快乐工作,简单生活

日历

« 2024-05-08  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 7492
  • 日志数: 10
  • 书签数: 1
  • 建立时间: 2011-01-19
  • 更新时间: 2011-11-29

RSS订阅

Open Toolbar