性能测试工具操作数据库Loadrunner与Mysql

1、库文件下载地址:http://files.cnblogs.com/files/xiaoxitest/MySQL_LoadRunner_libraries.zip

分别库文件和代码添加到Loadrunner bin目录和include目录下

2vuser_init文件添加代码:

[objc]  view plain  copy
  1. #include "Ptt_Mysql.h"  
  2. #include "mysql.h"  
  3. #include "mysql_com.h"  
  4. #include "mysql_time.h"  
  5. #include "mysql_version.h"  
  6. #include "typelib.h"  
  7. #include "my_list.h"  
  8. #include "my_alloc.h"  
  9. #define MYSQLSERVER "172.16.1.220"  
  10. #define MYSQLUSERNAME "dbuser"  
  11. #define MYSQLPASSWORD "1qaz@wsx"  
  12. #define MYSQLDB "sroa_lyt"  
  13. #define MYSQLPORT "3309"  
  14. char chQuery[1024];  
  15. int statu=1;  
  16. int status=0;  
  17. MYSQL *Mconn;  
  18. char sql_query[256], sql_sub_query[50];  
  19. int i=0, res=0, conn_fail=0, conn_iter=0;  
  20. char response[50];// to go   
  21. vuser_init()  
  22. {  
  23.     lr_load_dll ("libmysql.dll");  
  24.     lr_start_transaction("mysql_conn"); //设置一个连接数据库的事务  
  25.         /*------------------------------------------------------------------------*/  
  26.     /* Initialise MySQL */  
  27.     if(!(Mconn = mysql_init(NULL)))  
  28.     {  
  29.         lr_message("Error -1: Cannot initialize MySQL - %s", mysql_error(Mconn));  
  30.         //return -1;  
  31.         statu = 0;  
  32.         lr_end_transaction("mysql_conn", LR_FAIL); //初始化数据库失败判定事务失败  
  33.     }  
  34.         /*------------------------------------------------------------------------*/  
  35.     do  
  36.     {  
  37.         /* Connect to database */  
  38.         if (!mysql_real_connect(Mconn, MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT), NULL0))  
  39.         {  
  40.             conn_fail = -2;  
  41.             conn_iter++;  
  42.             sleep(100);  
  43.         }  
  44.         else  
  45.             conn_fail = 0;  
  46.     }  
  47.     while(conn_fail < 0 && conn_iter < 10);  
  48.     if (conn_fail < 0)  
  49.     {  
  50.         lr_message("Error -2: %s", mysql_error(Mconn));  
  51.         //mysql_close(Mconn);  
  52.         //return -2;  
  53.         statu = 0;  
  54.         lr_end_transaction("mysql_conn", LR_FAIL); //连接数据库失败判定事务失败  
  55.     }  
  56.     else  
  57.     {  
  58.         //lr_message("MySql - Good Connection");  
  59.         //mysql_close(Mconn);  
  60.         statu = 1;  
  61.         lr_end_transaction("mysql_conn", LR_PASS); //连接数据库成功,事务通过。  
  62.     }  
  63.     return 0;  
  64. }  


3、Action文件添加代码

[objc]  view plain  copy
  1. Action()  
  2. {  
  3.     if(statu){ //成功连接数据库后才进行执行sql的操作  
  4.         lr_start_transaction("mysql_select");  
  5.         sprintf(chQuery, "SELECT id, lb, title, nr, attachment_id, attachment_name, pic_name, fbsj, fbbm, fbr, vcount FROM sroa_lyt.oa_news;");//查询论坛用户  
  6.         //sprintf(chQuery,"UPDATE lr_test SET password = "%s" WHERE username='tom'",lr_eval_string ("{pwd}"));  
  7.         /* 
  8.         sprintf(chQuery,"update pre_ucenter_members set username='dd' where username='qq' ");//更改用户名qq为dd 
  9.         sprintf(chQuery,"delete from pre_ucenter_members ORDER BY uid desc LIMIT 1");//删除最后添加的一条数据 
  10.         */  
  11.         status = lr_mysql_query(Mconn, chQuery);  
  12.         if(status!=0){ //判断sql是否执行成功  
  13.             lr_end_transaction("mysql_select",LR_FAIL);  
  14.         }else{  
  15.             lr_end_transaction("mysql_select",LR_PASS);  
  16.         }  
  17.   
  18.         lr_start_transaction("mysql_insert");  
  19.         sprintf(chQuery,"insert into oa_news(id, lb, title, nr, attachment_id, attachment_name, pic_name, fbsj, fbbm, fbr, vcount) values(9,9,'[email protected]','test','','','teste','',6,'test',0)");//插入数据  
  20.         status = lr_mysql_query(Mconn, chQuery);  
  21.         if(status!=0){ //判断sql是否执行成功  
  22.             lr_end_transaction("mysql_insert",LR_FAIL);  
  23.         }else{  
  24.             lr_end_transaction("mysql_insert",LR_PASS);  
  25.         }  
  26.     }   
  27.     return 0;  
  28. }  

4、vuser_end文件添加代码:

[objc]  view plain  copy
  1. vuser_end()  
  2. {  
  3.     lr_mysql_disconnect(Mconn); //关闭数据库连接  
  4.     return 0;  
  5. }  

猜你喜欢

转载自blog.csdn.net/qq_37674858/article/details/80118639