LoadRunner测试数据库是模拟客户端去连接数据库服务器,因此,需要协议(或者说驱动的支持)。LoadRunner本身直接支持Oracle、SqlServer数据库,这两个数据库直接选择相应的协议就可以录制脚本。而MySql数据库只能利用ODBC协议来录制(编写)脚本,所以必须要MySql的ODBC驱动,和支持ODBC的查询分析器(录脚本需要,自己编写就不需要)。

1、首先要安装MySql的ODBC驱动,MyODBC 3.51.11 WIN。

2、从“控制面板”打开“数据源ODBC”,如果没有找到(我的电脑上就没有找到)。到桌面,新建一个快捷方式,目标位置:%SystemRoot%\system32\odbcad32.exe。

3、打开ODBC管理程序,添加的驱动为“MySQL ODBC 3.51 Driver”,然后填写一些ip、用户名、密码之类的,测试一下就可以了。(这一步其实是非必须的,如果写连接串,就不需要,如果要用DNS数据库名,就需要)

4、安装一个查询分析器,这个查询分析器必须是支持ODBC 的(这是必须的,否则录不上),这很不好找。我找了一个,还不好用,叫“通用数据库查询分析器”。http://www.onlinedown.net/soft/31366.htm。

5、启动LoadRunner,Create Scripts;Application type选择Win32
Applications;Program
record选择第4步的查询分析器位置,记得查询分析器选择“ODBC”,才能录得上;录完了,运行一下是否正常。

6、Run Load Tests的时候,如果失败,看看License是否支持,用global-100的License就可以了。

录制的脚本是惨不忍睹(又臭又长),所以,我试着手工编写了一个简单的,每行都有注释,如果要高级的,请参考LoadRunner的帮助文档。

view plaincopy to clipboardprint?

#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=;
//初始
lrd_init(&InitInfo, DBTypeVersion);
//打开上下文
lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, , , );
//申请连接的内存
lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, /*Unused*/, );
//打开连接,注意DRIVER就是上面安装的
lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "","", "DRIVER=MySQL ODBC 3.51 Driver;UID=root;PWD=123456;SERVER=192.168.1.99;DATABASE=TestDB", Ctx1, , );
//打开游标
lrd_open_cursor(&Csr1, Con1, );
//Sql语句,注意1代表的意思是,立马执行
lrd_stmt(Csr1, "select column1 from table1 where colum1 = 1", -, , /*None*/, );
//统计行数到count变量中
lrd_row_count(Csr1, &count, );
//打印消息
lr_message("count= %d",count);
//先关闭游标
lrd_close_cursor(&Csr1, );
//再关闭连接
lrd_close_connection(&Con1, , );
//释放连接,和alloc相呼应,否则有内存泄露
lrd_free_connection(&Con1, /*Unused*/, );
//再关闭上下文
lrd_close_context(&Ctx1, , );
//完毕,返回0
return ;
}
#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=;
//初始
lrd_init(&InitInfo, DBTypeVersion);
//打开上下文
lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, , , );
//申请连接的内存
lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, /*Unused*/, );
//打开连接,注意DRIVER就是上面安装的
lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "","", "DRIVER=MySQL ODBC 3.51 Driver;UID=root;PWD=123456;SERVER=192.168.1.99;DATABASE=TestDB", Ctx1, , );
//打开游标
lrd_open_cursor(&Csr1, Con1, );
//Sql语句,注意1代表的意思是,立马执行
lrd_stmt(Csr1, "select column1 from table1 where colum1 = 1", -, , /*None*/, );
//统计行数到count变量中
lrd_row_count(Csr1, &count, );
//打印消息
lr_message("count= %d",count);
//先关闭游标
lrd_close_cursor(&Csr1, );
//再关闭连接
lrd_close_connection(&Con1, , );
//释放连接,和alloc相呼应,否则有内存泄露
lrd_free_connection(&Con1, /*Unused*/, );
//再关闭上下文
lrd_close_context(&Ctx1, , );
//完毕,返回0
return ;
}

写完了,自己运行一下可以查看日志如下:

------------------------------------------------------------------------------

Starting iteration 1.
Starting action Action.
Action.c(8): lrd_open_connection: User="", Server=""
Action.c(11): lrd_stmt: select column1 from table1 where colum1 = 1;
count= 1
Action.c(16): lrd_close_connection: User="", Server=""
Ending action Action.

------------------------------------------------------------------------------

count = 1表示查询成功了

==========================================================================

LoadRunner利用ODBC编写MySql脚本(转)的更多相关文章

  1. LoadRunner利用ODBC编写MySql脚本

    最近做了几周的LoadRunner测试,有一些心得,记录下来,以便以后查找. LoadRunner测试数据库是模拟客户端去连接数据库服务器,因此,需要协议(或者说驱动的支持).LoadRunner本身 ...

  2. loadrunner通过odbc测mysql数据库语句

    #include "lrd.h" Action() { double trans_time;  //定义一个double型变量用来保存事务执行时间 static LRD_INIT_ ...

  3. loadrunner 利用JDBC操作mysql数据库

    import lrapi.lr;import java.util.ArrayList;import java.util.List; import java.sql.Connection; import ...

  4. MFC通过ODBC连接mysql(使用VS2012编写MFC)

    原创文章,转载请注明原文:MFC通过ODBC连接mysql(使用VS2012编写MFC) By Lucio.Yang 1.ODBC连接mysql 首先ODBC是什么呢? 开放数据库互连(Open Da ...

  5. 利用java编写的盲注脚本

    之前在网上见到一个盲注的题目,正好闲来无事,便用java写了个盲注脚本,并记录下过程中的坑 题目源码: <?php header("Content-Type: text/html;ch ...

  6. Loadrunner与idea编写加密的java Vusers脚本总结

    Loadrunner与idea编写加密的java Vusers脚本总结 准备工作:   jdk版本的选择:       Loadrunner11 使用版本jdk1.6 32位(如果使用1.7的Load ...

  7. Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  8. Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本

    脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...

  9. CentOS下编写shell脚本来监控MySQL主从复制的教程

    这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步 ...

随机推荐

  1. Educational Codeforces Round 11 B. Seating On Bus 水题

    B. Seating On Bus 题目连接: http://www.codeforces.com/contest/660/problem/B Description Consider 2n rows ...

  2. c++的atoi和stoi一些区别

    c++的atoi和stoi一些区别 对c++标准库中字符串转化为int的两个函数atoi()和stoi()两个有所混乱,特地研究了一下. stoi() 标准库的函数默认模板 int stoi (con ...

  3. What is the Linux High Availabi

    What is the Linux High Availabi    简介:     高可用性群集的出现是为了使群集的整体服务尽可能可用,以便考虑计算硬件和软件的易错性.如果高可用性群集中的主节点发生 ...

  4. Ubuntu14.04和Tiny6410挂载NFS服务!

    我是以root身份登录Ubuntu的: 在Ubuntu上执行   #apt-get install nfs-kernel-server    //安装NFS服务 在Ubuntu上执行   #mkdir ...

  5. 发现一个CentOS第三方源epel的仓库地址(repos.fedorapeople.org)

    这个站点(http://repos.fedorapeople.org)很有意思,比如要安装maven,官方源默认是没有的,当然可以安装epel源,而如果只要单独安装,可以直接安装一个仓库地址. 下面将 ...

  6. 更新yum源/apt-get源

    国内开源镜像站有:网易: http://mirrors.163.com/ 搜狐: http://mirrors.sohu.com/阿里云: http://mirrors.aliyun.com/北京理工 ...

  7. Dual-polarity supply provides ±12V from one IC

    LT1961 升压型稳压器造就了兼具升压和降压能力的扁平状SEPIC Transformerless dc/dc converter produces bipolar outputs Well-reg ...

  8. 初探Delphi中的插件编程

    前言 我写Delphi程序是从MIS系统入门的,开始尝试子系统划分的时候采用的是MDI窗体的结构.随着系统功能的扩充,不断有新的子系统加入系统中,单个工程会变得非常大,每次做一点修改都要重新编译,单个 ...

  9. Spring注入日期到bean属性-CustomDateEditor

    这一个Spring例子向您展示如何为bean属性注入一个“日期”. package com.yiibai.common; import java.util.Date; public class Cus ...

  10. ASP.NET Core 1.0 基础之配置

    来源https://docs.asp.net/en/latest/fundamentals/configuration.html ASP.NET Core 1.0支持不同的配置选项.应用配置数据可以是 ...