Jmeter 的 vars 和 props 用法

2022-03-03 17:27:25 字數 1964 閱讀 4664

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", );

讀取物件

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()

python dir 和vars 的區別

dir 預設列印當前模組的所有屬性,如果傳乙個物件引數則列印當前物件的屬性 vars 預設列印當前模組的所有屬性,如果傳乙個物件引數則列印當前物件的屬性 vars 函式以字典形式返回引數中每個成員的當前值,如果vars函式沒有帶引數,那麼它會返回包含當前區域性命名空間中所有成員的當前值的乙個字典。h...

華為mate40pro和小公尺10pro的區別

華為mate40pro正面採用了大曲率瀑布屏設計,下巴進一步收窄,在整體外觀設計方面與前代差異不大。但是在前攝設計上mate 40 pro做了一些改變,摒棄了堅持已久的劉海設計,採用居中三挖孔代替,屏佔比進一步提高,加強了使用者的視覺體驗。華為手機更多使用感受和評價 小公尺10pro手機採用6.67...

關於dlg和pro的問題

構造cdialogex物件。cdialogex uint nidtemplate,cwnd pparent null cdialogex lpctstr lpsztemplatename,cwnd pparentwnd null in nidtemplate 對話方塊模板的資源id。in lpszt...