loadrunner虛擬用戶腳本開發(一)

一、loadrunner虛擬用戶開發---變量詳細解析

 

變量的定義

局部變量和全局變量

1、在init  action end中定義的變量就是局部變量

2、在gloabal中定義的變量是全局變量

3、什麼時候定義全局變量?

整個過程中固定不變的,例如url地址,KEY 其他,需要定義成全局變量。

 

簡單例子:

image.png


action裏,定義一個變量a,賦值10,然後打印a,可以看到結果打印出10.

可以看出,在LR中打印的時候,只需要用LR的函數lr_output_message就可以了,C語言的函數printf沒起作用。

 

C語言裏,可以使用到變量時再定義變量,但是在LR裏,需要在開始定義完,不可以在中間定義。

vuser_init \vuser_action\ vuser_ end函數內部定義的變量是局部變量,只能在該函數內部使用。

例如,在action中定義了變量,vuser_end中打印變量a,則編譯的時候出現報錯,找不到定義的 a

image.png

想要定義全局變量,需要在函數globals.h裏。

以下在globals.h定義變量p,然後在initend裏調用變量,用來獲取內存,回放結果是正常的。

 image.png

image.png

image.png



二、 LR虛擬用戶腳本開發--常用語法和使用誤區

 

1、指針的用法

以下是腳本例子以及釋義:

image.png

 

運行結果如下,結果打印出Aloadrunner


 image.png

2、數組的用法

 

例子1

image.png

打印結果中,爲什麼p=ABCDELoadrunner!!!,而不是p=ABCDE?這是因爲在LR或者C語言中,以字符串的形式打印出一個指針,到什麼時候結束呢,是到遇到\0的時候,,這是C語言的語法。P的結果打印從A開始,然後到E後,繼續打印Loadrunner!!!,在C語言中,字符串後邊會有默認的\0,所以打印完字符串Loadrunner!!!就結束了。

 

例子2

image.png

 

查看以上統計字符串長度的例子。針對字符串“Loadrunner!!!”,爲什麼sizeof拿到的長度是14strlen拿到的是13?因爲sizeof統計了默認的\0,而strlen沒有。

 

例子3

image.png

這裏的輸出結果爲什麼是abcdea,而不是abcde呢?因爲數組定義的長度是5,而字符串abcde後邊有默認的\0的,加上這個就是長度爲6了,超長了所以\0被丟棄,打印完abcde後就繼續打印了a

 

例子4

如果把數組長度改成了6,那麼輸出結果就是abcde

image.png

 

需要注意的:

1)注意中文的分號;

2)變量使用前儘量初始化;

3)字符數組儘量少用;

4)在使用數組的時候,一定要保證數組足夠長


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章