但是有時為了方便管理,我們可能是把各個介面單獨存放在不同的執行緒組中。拿cookie來說,雖然每乙個執行緒組中我們也可以在放乙個登入請求,然後輸出乙個cookie供此執行緒組使用,但這樣就比較繁瑣且冗餘。此時我們就可以使用跨執行緒組傳遞引數來解決這樣的問題 ;
思路:將某一線程組內的變數通過「__setproperty」函式設定成jmeter的全域性變數,在另一線程組中通過「$」函式呼叫即可。
說明:jmeter本身的內建函式中,「__setproperty 」 ($,)})函式可以把某引數的值設定成jmeter本身的內建屬性,而jmeter的內建屬性是所有執行緒組都可以呼叫的,是全域性變數。各個執行緒組呼叫時,只需使用呼叫jmeter屬性的函式「$」來呼叫相應的屬性即可。
1.在http請求下新增正規表示式提取器 :
2.在請求下再新增bean shell postprocessor(bean shell後置處理器) ;
parametres:把需要操作的引數傳遞給bean shell postprocessor。前面提取出來的cookie的值,就把引數cookie寫入
script: string cookie=bsh.args[0]; 把bean shell postprocessor接收到的引數值,賦值給某引數。0是第乙個值。
$,)}; 呼叫函式__setproperty,把bean shell postprocessor中的引數cookie的值賦值給newcookie,並設定newcookie為jmeter內建屬性。
2.其他執行緒組中引用----$
jmeter多執行緒組間的引數傳遞
1.登入後,新增正規表示式提取器,提取伺服器返回資料 2.新增beanshell postprocessor後置處理器,使用 setproperty函式設定jmeter屬性值,全域性變數,指令碼如下 3.在其餘執行緒組需要用到該引數時,使用 p函式呼叫jmeter屬性值 注意有個逗號 ps 我使用多...
jMeter執行緒間cookie共享
在壓力測試下,有這樣的場景,需要獲取登陸後的sessionid給後面使用,解決思路 先登入一次,獲取cookie將其儲存到 jmeter 全域性屬性中,至此事情就好辦了 1 後置處理器使用正則獲取登陸後的sessionid 2 獲取cookie將其儲存至全域性屬性中 3 新增全域性http cook...
多執行緒共享全域性變數(執行緒間通訊)
修改全域性變數一定需要加global嗎?num 100lis 11 22 def demo global num num 100def demo1 33 未修改指向 只是修改了指向空間的資料 不用加global defdemo2 global lis lis lis 44 修改了指向 要加上glob...