项目中常常会有直接对数据库进行压测的需求,以前都是通过Jmeter实现的,但是Jmeter本身图表及结果收集方面没有Loadrunner那么强大,所以利用loadrunner工具自己的函数整理了一个脚本。思路大致如下:

1、环境准备

Oracle 11g

LR11

适用于WebService协议

2、Oracle数据库环境说明

Oracle安装步骤这里不进行说明,详细步骤请参考:https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html

重点注意:Oracle安装完毕后,在本地计算机命令行解释器键入“regsvr32 D:oracle11.0dbBINOraOLEDB11.dll”,其中路径为Oracle安装路径BIN目录下的OraOLEDB11.dll,否则会报“未在计算机注册‘OraOLEDB.Oracle.1’”错误。

3、lr_db_connect函数连接目标数据库

 脚本如下:

1 //创建Oracle数据库连接
2 lr_db_connect("StepName=Connect", 
3      "ConnectionString=Provider=OraOLEDB.Oracle.1, "
4     "Data Source=SID;Server=服务器IP;Port=端口号;"
5     "Persist Security Info=True; "
6     "User ID=username;Password=pw", 
7     "ConnectionName=db1", 
8     "ConnectionType=OLEDB", 
9     LAST); 

注意:一定要先进行上一步的环境注册

执行脚本,报“Error: DB Connection failed {"ORA-01017: invalid username/password; logon denied"}”错误,但是在本地登录时用户名、密码都是对的,最后修改用户名(可以改成一样的)或新建用户登录成功

原因可参考:http://www.51testing.com/html/36/614336-858335.html

4、SQL执行及查询结果判断

成功连接数据库后,执行SQL语句,具体脚本如下:

 

 1     int i=0;
 2     #数据条数
 3     int NumRows=0;
 4 
 5     //执行SQL
 6     i = lr_db_executeSQLStatement("StepName=Query",
 7     "ConnectionName=db1",
 8     "SQLStatement=select * from TEST.table1",
 9     "DatasetName=MyDataset",
10     LAST );
11 
12     //查看数据条数
13     lr_output_message("数据条数:%d",i);
14 
15     //打印执行结果
16     lr_db_dataset_action("StepName=RemoveDataset", 
17     "DatasetName=MyDataset", 
18     "Action=PRINT", 
19     LAST );    
20     
21     //利用循环获取具体字段的取值-----根据DatasetName
22     while (i<3) {
23         lr_db_getvalue("StepName=GetValue",
24             "DatasetName=MyDataset",
25             "Column=id",
26             "Row=next",
27             "OutParam=ID",
28             LAST );
29         lr_output_message("The value is: %s", lr_eval_string("{ID}") );
30         i=i+1;
31         }
32 
33 
34     //释放结果
35     lr_db_dataset_action("StepName=RemoveDataset", 
36     "DatasetName=MyDataset", 
37     "Action=REMOVE", 
38     LAST); 

 

5、场景设计及执行

脚本调试好(事务、判断等自行添加即可)就可以根据实际需求进行场景设计了,执行场景等测试流程。。。

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!