loadrunner 测试mysql性能lib驱动实现

上一篇 / 下一篇  2016-05-18 16:04:06 / 个人分类:loadrunner

1、下载mysql驱动包,里面包含lib和bin两个目录,把lib和bin下的文件分别拷贝到loadrunner安装路径下的lib和bin目录里。
http://down.51cto.com/data/403722

2、创建lr脚本,选择http协议即可

3、vuser_init代码

#include "Ptt_Mysql.h"

#define MYSQLSERVER "x.x.x.x"    //mysql目标地址

#define MYSQLUSERNAME "root"     //链接用户名

#define MYSQLPASSWORD "password" //密码

#define MYSQLDB "wind"           //目标数据库名称

#define MYSQLPORT "3306"         //端口号

MYSQL *Mconn;

vuser_init()
{

    lr_load_dll("libmysql.dll");//加载dll文件

    Mconn = lr_mysql_connect(MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT));//创建mysql链接。

    return 0;
}
4、action代码

Action()
{
char chQuery[1024];

sprintf(chQuery,"select * from aa01 limit 1;");

lr_rendezvous("myQuerySql");

lr_start_transaction("myQuerySql");

lr_mysql_query(Mconn,chQuery); //执行sql语句

lr_end_transaction("myQuerySql",LR_AUTO);

mysql_close(Mconn);//释放mysql链接,这一步千万不要忘了。

return 0;
}

5、注意点 sql语句的参数化
比如需要对select * from a where b='1'里b的赋值参数化,sprintf(chQuery,"select * from a where b='{parameter}';")这种方式提取出来的sql语句为select * from a where b='{parameter}',将查不到任何值。

根据上述例子设计action代码

Action()
{
char chQuery[1024];

strcpy(chQuery,"select * from a where b='");

strcat(chQuery,lr_eval_string("{parameter}"));

strcat(chQuery,"'");

lr_rendezvous("myQuerySql");

lr_start_transaction("myQuerySql");

lr_mysql_query(Mconn,chQuery); //执行sql语句

lr_end_transaction("myQuerySql",LR_AUTO);

mysql_close(Mconn);//释放mysql链接,这一步千万不要忘了。

return 0;
}

6、一次测试过程中并发跑到300就报如下错误,试了各种办法没有解决。今天在其他环境里重新跑了一次脚本1000个都能通过,MYSQL版本是否一致还没确定,操作系统都是linux,里面的数据库不一致,该问题有机会深究一下。
Abnormal termination, caused by mdrv process termination.




TAG: 性能测试 LoadRunner loadrunner MySQL mysql

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 11806
  • 日志数: 7
  • 建立时间: 2016-05-11
  • 更新时间: 2017-07-12

RSS订阅

Open Toolbar