分類: 4.軟體設計/架構/測試舉報
loadrunner
mysql
指令碼資料庫
sqlserver測試
最近做了幾周的loadrunner測試,有一些心得,記錄下來,以便以後查詢。
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的(這是必須的,否則錄不上),這很不好找。我找了乙個,還不好用,叫「通用資料庫查詢分析器」。 。
6、run load tests的時候,如果失敗,看看license是否支援,用global-100的license就可以了。
錄製的指令碼是慘不忍睹(又臭又長),所以,我試著手工編寫了乙個簡單的,每行都有注釋,如果要高階的,請參考loadrunner的幫助文件。
[cpp]view plain
copy
#include "lrd.h"
action()
; static lrd_default_db_version dbtypeversion =
,
};
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;
}
寫完了,自己執行一下可以檢視日誌如下:
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表示查詢成功了
交叉編譯odb
libodb 2.4.0 odb原始碼 libodb sqlite 2.4.0 sqlite 支援外掛程式原始碼 cd到原始碼根目錄 configure host arm linux gnueabihf 指定平台 cxx arm linux gnueabihf g 指定g cc arm linux ...
odb訪問mysql資料庫(odb的簡單用法2)
1.odb事務 odb事務有如下介面 namespace odb 事務脫離作用域的時候會被自動回滾。如果我們試圖提交或者回滾乙個已經結束的事務會丟擲異常,odb transaction already finalized。我們要盡量在事務內部宣告變數,以避免事務回滾時應用程式和資料庫中物件不一致的問...
ODB庫安裝使用簡介
編譯libodb vc10.sln 編譯libodb sqlite vc10.sln 注意 編譯example專案的access sqlite vc10工程 ifndef person hxx define person hxx include include pragma db object cl...