jmeter跨線程傳參
轉自:https://www.cnblogs.com/superbears/p/7041723.html
終於搞定了Jmeter跨線程組之間傳遞參數,這樣就不用每次發送請求B之前,都需要同時發送一下登錄接口(因爲同一個線程組下的請求是同時發送的),只需要發送一次登錄請求,請求B直接用登錄請求的參數即可,直到登錄接口的參數失效了,需再次發送一次登錄接口,又可以多次使用其參數,下面舉例子:
1.登錄接口中利用 Json Path Extractor 獲取到登錄接口的響應參數,(怎麼獲取上一節講過)
響應結果是如下
2.在登錄接口下添加 BeanShell PostProcessor ,並寫入腳本如下:
3.在接口B下添加BeanShell PreProcessor,並編寫腳本
4.在需要用到登錄接口參數的地方,${ } 引用變量即可
以上用Json Path Extractor 的地方均可以用正則表達式來完成,由於本人對於正則表達式理解起來實在有點費勁,所以就在jmeter下安裝的插件
來源: http://write.blog.csdn.net/postedit/72873181
方法二:
1.登錄接口中利用 Json Path Extractor 獲取到登錄接口的響應參數,(怎麼獲取上一節講過)
2.在登錄接口下添加 BeanShell PostProcessor ,並寫入腳本如下:
String X-Timestamp=bsh.args[0];
print (X-Timestamp);
KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{X-Timestamp},)};
String X-Signature=bsh.args[1];
print (X-Signature);
KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{X-Signature},)};
String X-Nonce=bsh.args[2];
print (X-Nonce);
KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{X-Nonce},)};
此種是設置全局變量的形式
3.在接口B中直接引用全局變量即可 ${__P(newstamp,)}
如此,接口B即可能獲取到跨線程組登錄接口的響應參數
對比以上兩種跨線程組傳遞參數的方法方法二更方便些,設置爲全局變量後,其他只要用到登錄接口參數的線程組,均可以直接引用,無需像方法一 一樣添加Beanshell PreProcessor