1、loadrunner虛擬用戶開發---變量詳細解析數組
變量的定義ide
局部變量和全局變量函數
1、在init action end中定義的變量就是局部變量url
2、在gloabal中定義的變量是全局變量spa
3、何時定義全局變量?指針
整個過程當中固定不變的,例如url地址,KEY 其餘,須要定義成全局變量。blog
簡單例子:內存
在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。
想要定義全局變量,須要在函數globals.h裏。
如下在globals.h定義變量p,而後在init和end裏調用變量,用來獲取內存,回放結果是正常的。
2、 LR虛擬用戶腳本開發--經常使用語法和使用誤區
1、指針的用法
如下是腳本例子以及釋義:
運行結果以下,結果打印出A和loadrunner
2、數組的用法
例子1:
打印結果中,爲何p=ABCDELoadrunner!!!,而不是p=ABCDE?這是由於在LR或者C語言中,以字符串的形式打印出一個指針,到何時結束呢,是到遇到\0的時候,,這是C語言的語法。P的結果打印從A開始,而後到E後,繼續打印Loadrunner!!!,在C語言中,字符串後邊會有默認的\0,因此打印完字符串Loadrunner!!!就結束了。
例子2:
查看以上統計字符串長度的例子。針對字符串「Loadrunner!!!」,爲何sizeof拿到的長度是14,strlen拿到的是13?由於sizeof統計了默認的\0,而strlen沒有。
例子3:
這裏的輸出結果爲何是abcdea,而不是abcde呢?由於數組定義的長度是5,而字符串abcde後邊有默認的\0的,加上這個就是長度爲6了,超長了因此\0被丟棄,打印完abcde後就繼續打印了a。
例子4:
若是把數組長度改爲了6,那麼輸出結果就是abcde了
須要注意的:
1)注意中文的分號;
2)變量使用前儘可能初始化;
3)字符數組儘可能少用;
4)在使用數組的時候,必定要保證數組足夠長