LoadRunner關聯函數

發表于:2008-08-28來源:作者:點擊數: 標簽:loadrunnerLoadRunnerLoadrunnerloadRunner關聯函數
Loadrunner腳本中進行關聯的時候,用到了一些函數,作用是把字符串保存到參數中,并且在需要的時候檢索出來.C Vusers中用到的函數有: lr_eval_string 所有出現參數的地方用它的當前值來代替. lr_save_string 把null-terminated字符串保存到參數中.其中,null-ter


 

   Loadrunner腳本中進行關聯的時候,用到了一些函數,作用是把字符串保存到參數中,并且在需要的時候檢索出來.C Vusers中用到的函數有:

lr_eval_string  所有出現參數的地方用它的當前值來代替.

lr_save_string   把null-terminated字符串保存到參數中.其中,null-terminated的意思,我從網上查了下是:"以空字符為結束標志的字符串",也就是以"\0"結束的字符串,其中的0是ASCII碼的0,是不能用顯示字符表示出來的,只有用轉義字符表示了.

lr_save_var 把變長字符串保存到參數中.

下面再來看下每個函數的具體解釋(參考幫助):

lr_eval_string:

C Language

char * lr_eval_string (const char * instring );

返回內嵌參數賦值后的字符串。


instring: 需要賦值的字符串。

lr_eval_string函數返回任何內嵌參數賦值后的輸入字符串。如果字符串變量只包含一個參數,函數返回參數的當前值。

內嵌參數必須在括號中。

注:lr_eval_string是內部地分配內存。在每一次迭代之后會釋放。如果你在循環中給參數賦值,不要使用lr_eval_string保存內存。你需要使用lr_eval_string_ext,并且在每個循環迭代中使用lr_eval_string_ext_free釋放內存。

這里我再補充一下:lr_eval_string_ext 在關聯的數據是二進制數據,例如,數據包含嵌入的NULL字符時是非常有用的。

例子:下面的例子使用lr_eval_string來代替參數row_cnt的當前值。使用lr_output_message把這個值輸出到輸出窗口。

lrd_stmt(Csr1, "select count(*) from employee", -1, 1 /*Deferred*/, 2 /*Ora V7*/, 0);

lrd_bind_col(Csr1, 1, &COUNT_D1, 0, 0);

lrd_exec(Csr1, 0, 0, 0, 0, 0);

lrd_save_col(Csr1, 1, 1, 0, "row_cnt");

lrd_fetch(Csr1, 1, 1, 0, PrintRow2, 0);

lr_output_message("value : %s",

       lr_eval_string("The row count is: {row_cnt}"));

lr_save_string:

C Language

int lr_save_string (const char *param_value, const char *param_name);

param_value:給參數賦值的值,參數值

param_name:參數名稱

lr_save_string函數把指定的以空結束的字符串賦值給參數。這個函數在關聯查詢的時候非常有用。需要使用lr_eval_string來確定參數的值。

例子:

在下面的例子中,lr_save_string給參數emp_id賦值為777。然后這個參數被用在另一個查詢中。

lrd_stmt(Csr1, "select id from employees where name='John'", ...);

lrd_bind_col(Csr1,1,&ID_D1,...);

lrd_exec(Csr1, ...);

lrd_fetch(Csr1, 1, ...);


   ID_D1
 
0
 777
 


lr_save_string("777", "emp_id");

lrd_stmt(Csr1,"select salary from payment where id ='{emp_id}'",...);

lrd_exec(Csr1, 0, 0, 0, 0, 0);

lr_save_var

C Language

int lr_save_var (const char * param_value, unsigned long const value_len, unsigned long const options, const char * param_name);

param_value:參數值

value_len:值的字節長度

options:參數選項,一般為0。

param_name:參數名稱。

lr_save_var函數把指定的變長字符串賦值給參數。這個函數在關聯查詢的時候非常有用。需要使用lr_eval_string來確定參數的值。

例子:

在下面的例子中, lr_save_var 用來限制參數的長度。

Action()

{

       #define MAX_NAME_LEN 4


// 創建參數, InName

       lr_save_string("Fitzwilliam", "InName");

// 把 "InName"的前四個字節保存到 "ShortName"

       lr_save_var( lr_eval_string("{InName}"),

              MAX_NAME_LEN, 0, "ShortName");

       return 0;

}

Output:

Action.c(8): Notify: Saving Parameter "InName = Fitzwilliam"

Action.c(10): Notify: Saving Parameter "ShortName = Fitz"

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97