LR 测试数据库总结

今天工作中需要对mysql进行性能测试

我尝试用LR来做;但是mysql需要现在电脑上安装一个OBDC的mysql驱动器,然后在电脑的管理工具中的数据源中加入这个mysql驱动,测试连接数据库成功,OK

返回LR,我们需要用到lr_db_connect这个函数来连接数据库,这个函数只有在webservice录制中才可用。

 Action()
{


//打开连接,注意DRIVER就是上面安装的  
   // int NumRows=0;
int i=0;
    lr_db_connect("StepName=databaseConnect",
"ConnectionString=DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=58.215.41.2;PORT=3306;DATABASE=dbo;USER=XXXXXXX;PASSWORD=XXXXXXX;OPTION=3",
"ConnectionName=mysql",
"ConnectionType=ODBC",LAST);
lr_start_transaction("SQL");
while(i<1000){

lr_db_executeSQLStatement("StepName=PerformQuery",
"ConnectionName=mysql",
"SQLStatement=SELECT * FROM himall_members",
"DatasetName=MySQL",LAST);
i++;
}//执行SQL语句
/*lr_output_message(lr_eval_string("{idParam}"));*/
lr_end_transaction("SQL", LR_AUTO);
//lr_output_message("The query returned %d rows.",NumRows);
/*lr_db_dataset_action("StepName=actionPrint",
 "DatasetName=MySQL",
 "Action=PRINT",
 LAST);*/ //对数据库执行操作
lr_db_disconnect("StepName=disconnect",
"ConnectionName=mysql",LAST);
//ConnectionName的值与lr_db_connect中的ConnectionName值要相同
//与数据库断开连接


}

但是webservice需要支持websevice的license才能运行场景。

找到了一个超级license 支持所有类型 支持65000并发

 AEACFSJI-YJKJKJJKEJIJD-BCLBR
 
连接数据库进行测试,这样的并发测试场景最好只在一台压力机上运行,否则连接数据库会出错,比如会报错说:无法连接已关闭的资源,等等。localhost
 
结果分析:平均每个用户执行一次1000次查询的脚本的耗时为11s(回放时可知),那么每秒一个用户对系统的交互次数约为100次,若要1s中系统承受5000的并发数,就需要50个并发用户去执行这个脚本。

50个用户 每个用户每次执行1000次查询,那么在压力场景中的每秒钟查询次数就为5000次(11/50*1000=1/5000),平均每次查询的响应时间是0.41s,

那么就是在5000的并发数的压力下集群数据库对读操作的响应时间为0.41s。

主要用于对集群后数据库性能优化的验证。当然其中的sql语句最好是基于常用业务的,这样结果更有用。

 
 
 
 
Never give up !
原文地址:https://www.cnblogs.com/AmilyWilly/p/4676257.html