loadrunner9 0動態訪問oracl資料庫

2021-06-20 04:44:20 字數 1742 閱讀 5122

最近在

公司搞loadrunner

指令碼,需要訪問

資料庫取乙個

動態值,在

網上看到的乙個是通過loadrunner的parameters自動生成乙個**,但這個東西是靜態的,不會隨著指令碼的執行而變化,還有就是大神kernzhang流傳的getdata.dll,但是執行sql無法獲得結果,他的個人主頁也打不開了-_-!!!無法得到原始碼,根本不知道咋用

最後通過lrd系列的函式解決了這個問題,現在跟大家分享一下!!!它是基於odbc訪問資料庫的原理,主要的東西除了在幫助中,還有就是看看lrd.h中的定義說明

#include

static lrd_init_info initinfo=;

static lrd_default_db_version dbtypeversion=};

//這裡的lrd_var_desc資料結構宣告是很重要的,他是用來儲存sql結果資料集的結構體,第乙個引數標頭檔案中就是這麼寫的,第二個引數是最大行數,第三個引數是每一行的最大長度,如果獲得的查詢結果比定義的長,執行時就會報錯,提示列被截斷,最後乙個引數是查詢結果的型別,可以再幫助中的索引輸入data types, database,列出的**中是各種變數型別的名稱

static lrd_var_desc num =,dt_long_varchar};

//下面這些控制代碼等變數的申請都可以照著幫助中的例子寫

static void far * oraenv1;

static void far * orasvc1;

static void far * orasrv1;

static void far * orases1;

static void far * orastm1;

static void far * oradef1;

unsigned long rownum;

vuser_init()

action()

"));

return 0;

}vuser_end()

到此就結束了,但是這個東西目前我只是支援取出乙個結果放到parameter中,還搞不懂如和將所有資料放入parameter中,來作為自動化時多使用者使用的引數。在此拋磚引玉,希望有達人能夠解決!!!

另外要注意的是,如果你是

錄製了乙個http協議的指令碼,那麼編譯時無法通過的,需要建立乙個odbc和http協議的混合指令碼寫入這些**,然後再建立乙個http指令碼進行錄製,然後將http中錄製的指令碼內容拷貝過來。俺也不知道為什麼,如果我先錄製指令碼再插入這些**總是提示lrd_init()未知錯誤:

vuser_init.c(19): error: c interpreter run time error: vuser_init.c (19):  error -- unresolved symbol : lrdfnc_init.

vuser_init.c(19): notify: cci trace: compiled_code(0): vuser_init()

這個東西後來我將sql語句進行了引數化,這樣可以保證每個模擬的使用者得到不同的值(別忘了在引數中選擇unique)。關聯也可以取得這些引數,但是我那個錄製的指令碼中無法自動關聯,手動關聯只有調出所有日誌,才能找到

伺服器傳送的引數,一次20分鐘。。。。。。而且長

時間執行有時候會偶爾出現找不到引數

資訊,懷疑是由於傳送訊息超時的原因。

使用資料庫會造成資料庫伺服器的負荷,如果進行資料庫

測試,建議使用關聯,否則可能

影響伺服器效能

LoadRunner中的90 響應時間

loadrunner中的90 響應時間是什麼意思?這個值在進行效能分析時有什麼作用?為什麼要有90 使用者響應時間?這個跟超女 舞林大會等比賽那樣在比賽後都要去掉乙個最高分乙個最低分在取平均值有點類似。因為在評估一次測試的結果時,僅僅有平均事務響應時間是不夠的。單單根據平均事務響應時間是無法滿足效能...

LoadRunner中90 響應時間的理解

官方解釋 solution the 90th percentile is the value for which 90 of the data points are smaller the 90th percentile is a measure of stastical distribution ...

Loadrunner動態從mysql取值

loadrunner中有引數化從資料庫中取值,但是只是靜態的,對於一些要實時取值的資料就game over了,比如取簡訊驗證碼,因為mysql中有乙個libmysql.dll,裡面提供了可以運算元據庫的方法,所以我們可以呼叫這個dll連線資料庫實時從資料庫中取值 action db connecti...