51Testing丛书:性能测试进阶指南—LoadRunner 11实战(22)

发表于:2012-6-14 10:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁    来源:51Testing软件测试网原创

8.6.5  扩展Oracle数据库性能测试

  在Web Service协议中,可以使用LR内置的数据库连接函数lr_db_connect()来完成对各种常见数据库的连接,从而进一步通过场景并发进行数据库性能测试。

  lr_db_connect()函数默认支持四种数据库连接模式:

  ● SQL(原生MS SQL Server)。

  ● OLEDB(使用 OLEDB 连接数据库)。

  ● ODBC。

  ● ORACLE。

  例如我们需要完成一个对Oracle数据库的连接,则可以通过OLEDB的方式来完成,代码如下:

lr_db_connect("StepName=Connect",
"ConnectionString=Provider=OraOLEDB.Oracle.1, Data Source=ORCL; Server= 127.0.0.1;Persist Security Info=True;User ID=cloudchen;Password=123456",
"ConnectionName=db1",
"ConnectionType=OLEDB",
LAST );

  在这里Data Source需要填写连接Oracle时需要的Net Service名称,而用户名密码需要填写在User ID和Password属性中,这里使用的连接方式是OLEDB。

  而通过lr_db_executeSQLStatement()函数可以对数据库进行SQL指令执行。如果想在数据库中执行某条语句查询数据集,并且获得该返回数据集中的部分属性,对其进行响应时间分析从而获得系统数据库的性能时,我们可以这样写:

int NumRows=0;
int i;
lr_db_connect("StepName=Connect",
"ConnectionString=Provider=OraOLEDB.Oracle.1, Data Source=ORCL; Server=172.168.11.40 ;Persist Security Info=True;
User ID=cloudchen;Password=123456",
"ConnectionName=db1",
"ConnectionType=OLEDB",
LAST );

lr_start_transaction("SQL");

NumRows = lr_db_executeSQLStatement("StepName=PerformQuery",
"ConnectionName=db1",
"SQLStatement=select * from USERS",
"DatasetName=MyDataset",
LAST );

lr_end_transaction("SQL", LR_AUTO);//获得查询记录所开销的时间

lr_output_message("The query returned %d rows.", NumRows);

while(i<NumRows) {
lr_db_getvalue("StepName=GetValue",
"DatasetName=MyDataset",
"Column=USER_NAME",
"Row=next",
"OutParam=MyOutputParam",
LAST);

lr_output_message("The value is: %s", lr_eval_string("{MyOutputParam}") );

i=i+1;
}

lr_db_disconnect("StepName=Disconnect",
"ConnectionName=db1",
LAST);

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号