Jmeter 的 vars 和 props 用法


meter 的 JSR223 控件是 代替 BeanShell 的新一代腳本控件,支持多種腳本語言,尤其是其中的 Groovy,更是重點推薦使用的腳本語言,本文研究其中的 vars 和 props 兩種對象的用法。

目錄

本文使用的 Jmeter 是 4.0 版本

二者的區別

props 和 vars 主要有兩點區別:

vars 只能在當前線程內使用,props 可以跨線程組使用
vars 只能保存 String 或者 Object,props 是 Hashtable 對象

vars

vars 中的變量僅對當前線程組內可見,跨線程組則需要使用屬性。

保存字符串變量

讀取變量值使用 vars.put(var, value) 函數,例如

vars.put("IS_OPEN", "true"); 

注意,上面的 "NEW_VALUE" 必須是字符串類型,傳遞其他類型,包括 null,都會導致報錯。如果想使用數字、數組等類型,一種方法是做類型轉換:

vars.put("MUST_BE_STRING", "" + 1); vars.put("MUST_BE_STRING", (String)1); vars.put("MUST_BE_STRING", [2, 3, 4].toString()); vars.put("MUST_BE_STRING", (String)[1,2]); vars.put("MUST_BE_STRING", "" + [2, 3, 4]); vars.put("MUST_BE_STRING", "" + true); vars.put("MUST_BE_STRING", true.toString()); 

另一種方法是使用 對象存儲方法 。

讀取字符串變量

vars.get() 方法用於讀取變量值:

vars.get("IS_OPEN"); 

如果傳遞的 "VARIABLE_NAME" 預先不存在,將返回 null.

保存對象

vars保存對象類型 (包括 List、Map、Closure 之類),使用如下方法:

vars.putObject("OBJECT_NAME", Object); 

比如

vars.putObject("NUMBER", 1); vars.putObject("ARRAY", []); vars.putObject("CLOSURE", { x, y -> x+y }); 
讀取對象

vars 讀取對象類型,使用如下方法:

vars.getObject("OBJECT_NAME"); 

props

props 繼承了 Hashtable 的類,所以擁有與 vars 類似的 get 和 put 方法,另外還繼承了 Hashtable 的其他方法 :

判斷某項屬性是否存在,返回布爾值

props.containsKey("PROPERTY_NAME") 

判斷某項值是否存在,返回布爾值

props.contains("PROPERTY_VALUE") 

刪除某個值

props.remove("PROPERTY_NAME") 

所有屬性以字符串形式表示

props.toString()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM