十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

LoadRunner利用ODBC编写MySql脚本

上一篇 / 下一篇  2011-11-20 19:59:13 / 个人分类:loadrunner

文章来源
  • 文章来源:【转载】

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

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

Z8{#P9| ahkG4B0

    2、从“控制面板”打开“数据源ODBC”,如果没有找到(我的电脑上就没有找到)。到桌面,新建一个快捷方式,目标位置:%SystemRoot%/system32/odbcad32.exe。51Testing软件测试网^3j;Saj m'?,xa

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

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

    5、启动LoadRunner,Create Scripts;Application type选择Win32 Applications;Program record选择第4步的查询分析器位置,记得查询分析器选择“ODBC”,才能录得上;录完了,运行一下是否正常。51Testing软件测试网`$}+Q&pI}+z+z\

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

O`,G {)[#W I!P5F0

 

e(^)Wq*] jgp!l0

    录制的脚本是惨不忍睹(又臭又长),所以,我试着手工编写了一个简单的,每行都有注释,如果要高级的,请参考LoadRunner的帮助文档。51Testing软件测试网b.~]q4h BN:{lf z

  1. #include "lrd.h"  
  2. Action()  
  3.  
  4. static LRD_INIT_INFO InitInfo {LRD_INIT_INFO_EYECAT};  
  5. static LRD_DEFAULT_DB_VERSION DBTypeVersion[]  
  6.  
  7.   {LRD_DBTYPE_ODBC, LRD_DBVERSION_ODBC_30},  
  8.   {LRD_DBTYPE_NONE, LRD_DBVERSION_NONE}  
  9. };  
  10. static LRD_CONTEXT FAR Ctx1;  
  11. static LRD_CONNECTION FAR Con1;  
  12. static LRD_CURSOR FAR     Csr1;  
  13. //上面的定义的代码如果录制脚本,在vdf.h中就有定义,同时还有一些其他文件  
  14. //如果手写脚本,则需要手工添加,主要是定义各种变量  
  15. //查询行数  
  16. unsigned long count=0;  
  17. //初始  
  18. lrd_init(&InitInfo, DBTypeVersion);  
  19. //打开上下文  
  20. lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);  
  21. //申请连接的内存  
  22. lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0);  
  23. //打开连接,注意DRIVER就是上面安装的  
  24. 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);  
  25. //打开游标  
  26. lrd_open_cursor(&Csr1, Con1, 0);      
  27. //Sql语句,注意1代表的意思是,立马执行  
  28. lrd_stmt(Csr1, "select column1 from table1 where colum1 1"-1, 1, 0);  
  29. //统计行数到count变量中  
  30. lrd_row_count(Csr1, &count, 0);   
  31. //打印消息  
  32. lr_message("count= %d",count);  
  33. //先关闭游标  
  34. lrd_close_cursor(&Csr1, 0);  
  35. //再关闭连接  
  36. lrd_close_connection(&Con1, 0, 0);  
  37. //释放连接,和alloc相呼应,否则有内存泄露  
  38. lrd_free_connection(&Con1, 0);  
  39. //再关闭上下文  
  40. lrd_close_context(&Ctx1, 0, 0);  
  41. //完毕,返回0  
  42. return 0;  
  43.  

 51Testing软件测试网:pPSh-M-}+F

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

`_2d.R-g+b#^,Lu0

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

0Kp#Ru,[U6aD5H0

Starting iteration 1.
#|p o4S}#X0f;l0Starting action Action.51Testing软件测试网;G^*?g1v
Action.c(8): lrd_open_connection: User="", Server="" 
K0aE2c#bC$G0Action.c(11): lrd_stmt: select column1 from table1 where colum1 = 1; 51Testing软件测试网 Kf@l+{k8N%i;M
count= 1 51Testing软件测试网K7kaa ww^
Action.c(16): lrd_close_connection: User="", Server="" 
Lk5F4^j/dh0Ending action Action.

`'~W M1O6k| I0

------------------------------------------------------------------------------51Testing软件测试网Uu(c i!Q_*N

 

;M Lt KCU u[/M0

count = 1表示查询成功了

na_Y(R t;O6I0

 51Testing软件测试网~U q,b nB

==========================================================================51Testing软件测试网 kBa:Tst)uH


TAG: LoadRunner loadrunner

Bekty的个人空间 引用 删除 Bekty   /   2013-07-18 15:20:02
打开ODBC管理程序后,添加的驱动中只是sql  server的,没有MySQL的,怎么办????
德尔惠的个人空间 引用 删除 德尔惠   /   2011-12-23 08:48:13
5
 

评分:0

我来说两句

Open Toolbar