loadrunner-mysql脚本(odbc协议)

借鉴了网上的很多攻略。。感谢前人指路。

使用如下:

loadunner做mysql的性能测试脚本有两种方式,1、使用c协议做,在dll文件中封装mysql的连接方法,通过脚本调用dll文件实现。2、使用ODBC协议,通过ODBC连接mysql实现。

本帖将使用ODBC协议实现对musql的压测过程。

1、下载并安装ODBCf  for mysql的工具。

可以百度:mysql-connector-odbc-win32.zip或者到地址:http://download.csdn.net/detail/shen1936/8066789

2、在安装过odbc工具后,会在控制面板中显示ODBC的图标(可惜我的没有),通过在桌面建立快捷方式的方法来建立。

到桌面,新建一个快捷方式,目标位置:%SystemRoot%\system32\odbcad32.exe。 

              

3、设置ODBC的连接:

打开odbc,选择添加

然后选择mysql的连接



设置好连接后,就可以使用loadrunner脚本进行脚本开发。

脚本打开后,直接在Action中书写脚本就可以了。

脚本如下:

#include "lrd.h"
Action()
{

static LRD_INIT_INFO InitInfo = {LRD_INIT_INFO_EYECAT};
static LRD_DEFAULT_DB_VERSION DBTypeVersion[] =
{
  {LRD_DBTYPE_ODBC, LRD_DBVERSION_ODBC_30},
  {LRD_DBTYPE_NONE, LRD_DBVERSION_NONE}
};
static LRD_CONTEXT FAR * Ctx1;
static LRD_CONNECTION FAR * Con1;
static LRD_CURSOR FAR *     Csr1;
//上面的定义的代码如果录制脚本,在vdf.h中就有定义,同时还有一些其他文件
//如果手写脚本,则需要手工添加,主要是定义各种变量
//查询行数
unsigned long count=0;
//初始
lrd_init(&InitInfo, DBTypeVersion);
//打开上下文
lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);
//申请连接的内存
lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);
//打开连接,注意DRIVER就是上面安装的
lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "", "test", "", Ctx1, 0, 0);

//打开游标
lrd_open_cursor(&Csr1, Con1, 0);	
//Sql语句,注意1代表的意思是,立马执行
	lr_rendezvous("1111111");  //集合点
	
	lr_start_transaction("查询");//统计事务
    
	lrd_stmt(Csr1, "select * from tb_refund", -1, 1, 0 /*None*/, 0);//被测语句

	lr_end_transaction("查询", LR_AUTO);

//统计行数到count变量中
lrd_row_count(Csr1, &count, 0); 
//打印消息
lr_message("count= %d",count);
//先关闭游标
lrd_close_cursor(&Csr1, 0);
//再关闭连接
lrd_close_connection(&Con1, 0, 0);
//释放连接,和alloc相呼应,否则有内存泄露
lrd_free_connection(&Con1, 0 /*Unused*/, 0);
//再关闭上下文
lrd_close_context(&Ctx1, 0, 0);
//完毕,返回0
return 0;
}

特别说明:

lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "", "test", "", Ctx1, 0, 0);

本语句中的test为在odbc中设置的ODBC连接的名字 


压测结果如下:

Virtual User Script started at : 2014-10-22 10:33:13
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(25): lrd_open_connection: User="", Server="test"
Action.c(30): Rendezvous 1111111
Action.c(32): Notify: Transaction "查询" started.
Action.c(34): lrd_stmt: select * from tb_refund
Action.c(36): Notify: Transaction "查询" ended with "Pass" status (Duration: 0.0391).
count= 5197
Action.c(45): lrd_close_connection: User="", Server="test"
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值