LoadRunner利用ODBC編寫MySql指令碼

來源:互聯網
上載者:User

標籤:

 


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

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

 

LoadRunner利用ODBC編寫MySql指令碼(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.