博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LoadRunner利用ODBC编写MySql脚本(转)
阅读量:6872 次
发布时间:2019-06-26

本文共 3778 字,大约阅读时间需要 12 分钟。

 

    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 的(这是必须的,否则录不上),这很不好找。我找了一个,还不好用,叫“通用数据库查询分析器”。。

    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=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, "", "","", "DRIVER=MySQL ODBC 3.51 Driver;UID=root;PWD=123456;SERVER=192.168.1.99;DATABASE=TestDB", Ctx1, 1, 0);  //打开游标  lrd_open_cursor(&Csr1, Con1, 0);      //Sql语句,注意1代表的意思是,立马执行  lrd_stmt(Csr1, "select column1 from table1 where colum1 = 1", -1, 1, 0 /*None*/, 0);  //统计行数到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;  } #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, "", "","", "DRIVER=MySQL ODBC 3.51 Driver;UID=root;PWD=123456;SERVER=192.168.1.99;DATABASE=TestDB", Ctx1, 1, 0);//打开游标lrd_open_cursor(&Csr1, Con1, 0); //Sql语句,注意1代表的意思是,立马执行lrd_stmt(Csr1, "select column1 from table1 where colum1 = 1", -1, 1, 0 /*None*/, 0);//统计行数到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);//完毕,返回0return 0;}

 

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

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

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表示查询成功了

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

 

转载地址:http://qdpfl.baihongyu.com/

你可能感兴趣的文章
Android源代码下载编译
查看>>
nhmicro添加信审功能
查看>>
eclipse安装maven插件-解决requires ‘bundle org.slf4j.api
查看>>
jsp---语句对象Statement
查看>>
java进阶之路
查看>>
优化Android Studio
查看>>
zabbix二次开发-flask-获取告警
查看>>
我的友情链接
查看>>
java实现MD5加密处理
查看>>
实用JVM参数总结
查看>>
oracle 11g R2 64位 安装详细步骤
查看>>
Jpeg 库的解码OpenCL优化
查看>>
正则表达式
查看>>
『中级篇』docker之虚拟机创建vagrant技巧(番外篇)(81)
查看>>
交换机SPAN功能配置
查看>>
MySQL 架构组成—存储引擎
查看>>
基于数值分析思想对多项式求值的原理和应用进行探究
查看>>
vue-devtools vue开发调试神器
查看>>
PHP扩展模块的安装
查看>>
BGP基础操作
查看>>