51Testing软件测试论坛
标题:
利用lr_db_connect函数对Oracle数据库压测的完整流程
[打印本页]
作者:
MilgGtery
时间:
2018-4-24 16:01
标题:
利用lr_db_connect函数对Oracle数据库压测的完整流程
项目中常常会有直接对数据库进行压测的需求,以前都是通过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、场景设计及执行
脚本调试好(事务、判断等自行添加即可)就可以根据实际需求进行场景设计了,执行场景等测试流程。。。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2