6.4 jmeter基礎知識--變數
變數 JMeter變數是區域性變數,只能在指令碼中使用。後面我們介紹的屬性則在指令碼內和指令碼外都能使用。 變數是執行緒級。在不同試執行緒中,值可能相同,也可能不同。 若某執行緒更新了變數,那麼僅僅是更新了該執行緒中的變數值。 JMeter變數引用方法:${變數名} 注意:變數名是大小寫敏感的。
Jmeter有四種方式定義變數: 使用者定義變數 使用者引數 指令碼(如beanshell)或提取器等定義的變數。 函式
變數的引用方法: 不管Jmeter變數是怎樣定義的,使用方式都是一樣的, 在測試計劃中,用**${變數名}**就可以取得變數值。 如果要在BeanShell中使用變數, vars.get(key); vars.put(key,val);
JMeter變數對每個執行緒都是區域性的。每個執行緒的值可能相同,可能不同。 如果一個執行緒更新了變數值,則只有那個執行緒的變數副本值會改變。例如,正則表示式提取器後置處理器將根據其執行緒讀取的樣本來設定變數,而這些變數值在後面還要被執行緒使用。有關如何引用變數和函式的詳細資訊,請參見函式和變數。 注意,測試計劃定義的值和user defined variables配置元素在測試計劃啟動時為整個測試和計劃定義的。如果在不同的user defined variable元素中定義了相同變數,那麼最後一個生效,一旦執行緒啟動,變數的初始值被拷貝到每個執行緒,類似User Parameters pre-processor或者正則表示式提取後置處理器等其他元素可能用於重新定義相同的變數(或者建立新的),這些重定義只是應用於當前執行緒。 Jmeter屬性對測試計劃是全域性的,所以可以用於在不同執行緒間傳遞資訊—如果需要的話。 使用者定義變數UDVs 所有的UDVs都在測試計劃之初就被執行(建議放在最開始處,放在任何地方都是一開始就執行),該變數會複製到每個執行緒,如果User Parameters Pre-Processor or Regular Expression Extractor 定義了一個與其同名的變數,變數值將會被替換掉,所有的測試元素都能看到更新後的值、 使用方法: 1)測試計劃中直接定義UDVs. 2)也可以通過 配置元件->UDVs來定義元件。 寫一個小的測試計劃,裡面定義一個使用者變數,在dummy sampler中列印輸出該變數。 使用者引數User parameter:定義的變數是執行緒級別的變數 CSV Data Set Config