1. 程式人生 > >jmeter 多線程組間變量共享

jmeter 多線程組間變量共享

stp 函數調用 ima 調用函數 clas roc 跨線程 param 多線程

jmeter的線程組之間是相互獨立的,各個線程組互不影響,所以線程組A中輸出的參數,是無法直接在線程組B中被調用的。

但是有時為了方便管理,我們可能是把各個接口單獨存放在不同的線程組中。拿Cookie來說,雖然每一個線程組中我們也可以在放一個登錄請求,然後輸出一個Cookie供此線程組使用,但這樣就比較繁瑣且冗余。此時我們就可以使用跨線程組傳遞參數來解決這樣的問題 ;

思路:將某一線程組內的變量通過“__setProperty”函數設置成jmeter的全局變量,在另一線程組中通過“${__P(parameters,)}”函數調用即可。

說明:jmeter本身的內置函數中,“__setProperty ” (${__setProperty(newtoken,${cookieKey},)})函數可以把某參數的值設置成jmeter本身的內置屬性,而jmeter的內置屬性是所有線程組都可以調用的,是全局變量。各個線程組調用時,只需使用調用jmeter屬性的函數“${__P(parameters,)}”來調用相應的屬性即可。

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(newcookie,${cookie},)}; 調用函數__setProperty,把Bean Shell PostProcessor中的參數cookie的值賦值給newcookie,並設置newcookie為jmeter內置屬性。

2.其他線程組中引用----${__P(newcookie,)}

技術分享圖片

jmeter 多線程組間變量共享