您的当前位置:首页正文

使用LR对MySQL数据库进行性能测试

来源:化拓教育网
使用LR对MySQL数据库进行性能测试

在web service协议中,可以使用LR(LoadRunner)内置的数据库连接函数lr_db_connect来完成对各种常见数据库的链接,从而进一步通过场景并发进行数据库性能测试。对数据库进行性能测试可以观察到在多个用户同时对数据库操作的情况下数据库的响应效果,通过分析结果优化语句从而缩短响应时间。

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

• • • •

SQL(原生MS SQL Server) OLEDB(使用OLEDB连接数据库) ODBC ORACLE

下面以ODBC连接模式为例对MySQL数据库进行性能测试。 1.配置相应的环境

1)在网上下载一个MySQL数据库的ODBC驱动程序:

MyODBC-standard-3.51.07-win.msi,以默认选项安装该文件。 2)打开数据源:开始—>设置—>控制面板—>管理工具—>数据源。 3)在用户DSN选项卡中单击“添加”打开“创建新数据源”对话框。

4)在“创建新数据源”对话框中选中MySQL ODBC 3.51 Driver,点击“完成”按钮。

5)弹出“MySQL ODBC 3.51 Driver-DSN Configuration,Version 3...”对话框,按照要求进行正确的信息填写。(Data Source Name:数据源名称,数据源的位置在MySQL Datafiles文件夹中 Database Name:数据源所要连接的数据库)

6)配置完后,点击“Test Data Source”按钮,根据提示判断配置是否成功。

7)如果成功,点击“OK”返回用户DSN选项卡,增加一条记录,名为所配置的数据源名称。

2.在LR连接MySQL数据库

需要完成一个对MySQL数据库的连接,通过ODBC的方式来完成,代码如下:

lr_db_connect(\"StepName=databaseConnect\\"ConnectionString=DRIVER={MySql ODBC 3.51 Driver};SERVER=mysername;PORT=3306;DATABASE=mydemodb;USER=username;PASSWORD=password;OPTION=3\\"ConnectionName=mysql\\"ConnectionType=ODBC\LAST); 在这里SERVER属性需要填写服务器的名称,通常使用localhost;DATABASE是数据库的名称;USER、PASSWORD分别是数据库的用户名和密码。

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

ON=3\

int NumRows=0; int i;

lr_db_connect(\"StepName=databaseConnect\

\"ConnectionString=DRIVER={MySql ODBC 3.51

Driver};SERVER=localhost;PORT=3306;DATABASE=kocla_ke;USER=root;PASSWORD=1234;OPTI

\"ConnectionName=mysql\\"ConnectionType=ODBC\LAST);//连接数据库

lr_start_transaction(\"SQL\");

NumRows = lr_db_executeSQLStatement(\"StepName=PerformQuery\

\"ConnectionName=mysql\

\"SQLStatement=SELECT * FROM users\\"DatasetName=MySQL\LAST);//执行SQL语句 \"DatasetName=MySQL\ \"Column=realname\ \"Row=1\

\"Outparam=idParam\ LAST);*/ //从数据集中检索值

/*lr_db_getvalue(\"StepName=getValue\

//注意:LR帮助文档中从数据集中检索值的函数为lr_db_getValue,但是在脚本中这样写的话//运行时会报错,写成lr_db_getvalue运行时正常

/*lr_output_message(lr_eval_string(\"{idParam}\"));*/ lr_end_transaction(\"SQL\

lr_output_message(\"The query returned %d rows.\/*lr_db_dataset_action(\"StepName=actionPrint\

\"DatasetName=MySQL\ \"Action=PRINT\

LAST);*/ //对数据库执行操作

lr_db_disconnect(\"StepName=disconnect\

\"ConnectionName=mysql\LAST);//与数据库断开连接

//ConnectionName的值与lr_db_connect中的ConnectionName值要相同

3.设置场景运行脚本、分析结果

根据需求设置合理的场景运行脚本,观察图形对结果进行分析得到数据库的性能测试结果。

下图是10个用户同时运行5分钟的结果。

图一:Summary Report

图二:Average Transaction Response Time —Running Vusers

表格中Graph是图形的名称,Measurement是事务的名称(Action_Transaction事务可以通过修改配置文件让脚本在运行的过程中不记录),Graph’s Minimum是事务响应的最小时间,Graph’s Average是事务的平均响应时间,Graph’s Maximum是事务响应的最大时间,Graph’s Median是事务响应时间的中间值,Graph’s Std.是事务响应时间的标准值。

因篇幅问题不能全部显示,请点此查看更多更全内容