|
我昨天也是需要测下mysql,但是我只是测试指定的查询语句的响应时间问题,不知道跟楼主的问题是否相同,我选的是web(http/html)协议,但是里面的东西都是自己写的,操作如下:
vuser_init()
{
int rc;
/* 加载mysql的dll */
rc=lr_load_dll("C:\\Program Files\\HP\\LoadRunner\\scripts\\sql_test\\libmySQL.dll");
/* 加载成功返回 */
if(rc!=0)
{
/* 输入错误信息 */
lr_error_message("Could not load libmysql.dll");
/* 停止该脚本运行 */
lr_abort();
}
return 0;
}
Action()
{
int result;
int rc;
int db;
db = mysql_init(NULL);
lr_start_transaction("connect");
/* 连接数据库,其中参数分别为,int类型的数据库标识,IP地址,用户名,密码,数据库名,端口号,Unix socket,flag */
rc=mysql_real_connect(db, "192.168.90.80", "root", "root", "ad_db", 3306, NULL, 0);
lr_end_transaction("connect", LR_AUTO);
/* 如果数据库连接失败则返回NULL */
if(rc==NULL)
{
lr_error_message("%s", mysql_error(db));
mysql_close(db);
lr_abort();
}
/* 将要查询的语句存入变量 */
lr_save_string(lr_eval_string("select d.cid,a.advid,c.columnId,c.hname,c.hstatus,c.showMethod,b.smallerect,"
"b.smallacross,b.bigerect,b.bigacross "
"from advertisement a left join AD b on a.advid=b.advid left join hole c on a.hid=c.hid "
"left join adcase d on a.cid=d.cid left join preArrange e on e.advid=a.advid "
"where e.pano in(SELECT DISTINCT b.pano from subarrange b "
"where b.pano in(select a.pano from prearrange a where a.Status=3) and b.ArrangeDate>=curdate());"),
"queryvalue");
lr_save_string(lr_eval_string("select * from testview"),"queryvalue");
lr_rendezvous("Befor_sql");
lr_start_transaction("sql");
/* 执行查询语句 */
rc=mysql_query(db, lr_eval_string("{queryvalue}"));
lr_end_transaction("sql", LR_AUTO);
/* 操作成功返回0 */
if(rc!=0)
{
/* 输入错误信息 */
lr_error_message("%s",mysql_error(db));
/* 关闭数据库 */
mysql_close(db);
/* 停止运行脚本 */
lr_abort();
}
/* 获取查询结果 */
result = mysql_use_result(db);
/* 无结果时result为NULL */
if (result == NULL) {
/* 输出错误信息 */
lr_error_message("%s", mysql_error(db));
/* 释放结果 */
mysql_free_result(result);
/* 关闭数据库 */
mysql_close(db);
/* 停止运行脚本 */
lr_abort();
}
/* 关闭数据库 */
mysql_close(db);
return 0;
}
其中libmySQL.dll在安装mysql服务器的bin中可以找到。 |
|