loadrunner如何對mysql進行增刪改查

libraries.zip  地址:連接:https://pan.baidu.com/s/1kIZ2aBCOFSJ9l727MxgIKQ 密碼:40vqmysql

*   說明一下,由於 lr 有不少庫文件都沒有,因此須要額外的從外部下載 公共庫,並放到相應的位置。
*          推薦下載: MySQL  LoadRunner libraries.zip  這樣的一個外庫。
*   下載完後,你會發現一共 9個文件,8個 .h 文件 1個 .dll 文件
*     將 .h文件 都放在 lr安裝目錄中的 include 文件夾中, .dll 放在 bin 目錄中
*   
*/
 注意:花點時間把下載的 .h 文件快速的過一遍,下面我會對幾個 用到的方法解釋
      lr_load_dll('dll文件名');  加載動態庫,這個很重要,能夠防止 init 中 也能夠放在 操做 Action中。
      lr_abort();  這個能夠理解爲退出。
      
 
      mysql_init(); 建立一個  mysql 對象。畢竟是調用別人家的,不拿到人家的許可怎麼弄用方法呢。
      mysql_real_connection(); 數據庫鏈接,你能夠在Ptt_mysql.h 文件中查找該方法的原形,或者  百度
      mysql_query();  sql 語句。
-- 若是是 查詢語句使用率額mysql_query();就要使用 mysql_use_result() 和 mysql_fetch_row();
      mysql_use_result(); 返回一個 結果集 ;
      mysql_fetch_row();  遍歷結果集的每一個row.  
      
      
// #include "Ptt_MySql.h"   // 若是調用了這個 .h 文件,下面有些 有些方法須要更換名稱
 
 
#define MAX 100
 
Action()
{
    char *server="127.0.0.1";  // 本地
unsigned int port = 3306;    //端口號
char *username = "ndouser";  // 用戶名
char *password = "ndopassword";  // 密碼
char *db_name = "main";    //數據庫名稱
    unsigned long client_flag = 0;
int db_connection;  // databases connecion
 
 
int QueryData;
char **ResultRow;
 
 
 
// 鏈接數據庫
//一、首先先把動態庫文件導入,mysql 安裝目錄下的lib 文件中的libmysql.dll 加載進來。
int flags = lr_load_dll("libmysql.dll");
//rc = lr_load_dll("C:\\Program Files\\MySQL\\MySQL Server 5.6\\lib\\libmysql.dll");  // 我的建議直接把 dll 放到 lr安裝目錄中,這樣能減小不少麻煩的配置
// 固然你也能夠不用這條判斷語句,可是爲了代碼的安全性,加上不爲錯
     if(flags !=0 )
{
// 若是 加載失敗,輸出信息,並退出當前程序。
lr_output_message("加載失敗");
lr_abort();
}    
 
 
// 二、開始連接數據庫 mysql_real_connect() 這個函數來着與 mysql.h 這個頭文件中,例子前作過解釋
         //a、建立mysql對象
    db_connection = mysql_init(NULL);
if(db_connection == NULL)
{
lr_output_message("分配內存失敗");
             lr_abort();
}
  flags = mysql_real_connect(db_connection,server,username,password,db_name,port,NULL,client_flag);
  if(flags == NULL)
  {
  lr_output_message("鏈接數據庫失敗,錯誤信息:%s",mysql_error(db_connection));
  mysql_close(db_connection);
  lr_abort();
  }
 
// 對數據庫進行操做,增刪改查。
  // 增長 insert  
 
      lr_save_string ("INSERT INTO students  VALUES(991105,'幫主',22,'man','HuNan')","paramInsertQuery");  
      flags = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));
      if (flags != 0) {
         lr_error_message("paramInsertQuery 語句錯誤,錯誤信息:%s", mysql_error(db_connection));
         //mysql_close(db_connection);
         mysql_close(db_connection);
         lr_abort();
      }
 
 // 刪除 delete
      lr_save_string ("delete from students where sname='幫主'","paramDeleteQuery");  
      flags = mysql_query(db_connection, lr_eval_string("{paramDeleteQuery}"));
      if (flags != 0) {
         lr_error_message("paramDeleteQuery 語句錯誤,錯誤信息:%s", mysql_error(db_connection));
         //mysql_close(db_connection);
         mysql_close(db_connection);
         lr_abort();
      }
 
 // 改  alter/update 均可以修改,修改的類型不同,這裏就不詳細說明了。
 lr_save_string ("update students set sname='花農' where sname = '幫主'","paramUpdateQuery");  
 flags = mysql_query(db_connection, lr_eval_string("{paramUpdateQuery}"));
 if (flags != 0) {
lr_error_message("paramUpdateQuery 語句錯誤,錯誤信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
 }
 
 
  // 查 select 
      lr_save_string ("select * from students limit 1","paramSelectQuery");  
 flags = mysql_query(db_connection, lr_eval_string("{paramSelectQuery}"));
 if (flags != 0) {
lr_error_message("paramSelectQuery 語句錯誤,錯誤信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
 }
 
      QueryData = mysql_use_result(db_connection);
      if (QueryData == NULL) {
             lr_error_message("%s", mysql_error(db_connection));
             mysql_free_result(QueryData);
             mysql_close(db_connection);
             lr_abort();
       }
       // 若是結果集包含多行數據,須要屢次調用 mysql_fetch_row 直到返回NULL
 
 
       ResultRow = (char **)mysql_fetch_row(QueryData);
   if (ResultRow == NULL) {
           lr_error_message("Did not expect the result set to be empty");
           mysql_free_result(QueryData);
           mysql_close(db_connection);
           lr_abort();
        }
 
 //lr_output_message("%d",mysql_num_rows(ResultRow));
 
         // 保存參數,用於刪除這行數據
          lr_save_string(ResultRow[0], "paramID");
          lr_output_message("Order ID is: %s", lr_eval_string("{paramID}"));
          mysql_free_result(QueryData);
//for(flags=0; ;flags++)
 //{  }
   
 
  mysql_close(db_connection);
     
 
}
相關文章
相關標籤/搜索