|
项目中常常会有直接对数据库进行压测的需求,以前都是通过Jmeter实现的,但是Jmeter本身图表及结果收集
方面没有Loadrunner那么强大,所以利用loadrunner工具自己的函数整理了一个脚本。思路大致如下:
1、环境准备
Oracle 11g
LR11
适用于WebService协议
2、Oracle数据库环境说明
重点注意:Oracle安装完毕后,在本地计算机命令行解释器键入“regsvr32 D:\oracle\11.0\db\BIN\OraOLEDB
11.dll”,其中路径为Oracle安装路径BIN目录下的OraOLEDB11.dll,否则会报“未在计算机注册‘OraOLEDB.Orac
le.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"}”错误,
但是在本地登录时用户名、密码都是对的,最后修改用户名(可以改成一样的)或新建用户登录成功。
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、场景设计及执行
脚本调试好(事务、判断等自行添加即可)就可以根据实际需求进行场景设计了,执行场景等测试流程。。。
|
|