場景:性能測試或者接口測試,如果想跨線程引用(案例:A線程組里面的一個輸出,是B線程組里面的一個輸入,這個時候如果要引用),這個時候你就必須要設置全局變量;全鏈路壓測也需要分不同場景,通常情況,一個場景就是一個線程組;
實現方法:beanshell腳本和函數助手_setPerproty,目前這種方法都可以跨線程的全局變量;
操作流程如下:beanshell腳本如下:
- 輸出結果的處理,使用方法正則、json提取器或者json/yaml,提取的教程這里就不需要贅述,等我有空專門或者你們百度去
- 提取的數據后面加上beanshell后置處理器,腳本如下
String userId=bsh.args[0];
//print (token);
${__setProperty(newtoken,${token},true)} - 全局變量設置了就需要引用了,這里我就講述2種引用方法,第一個很簡單,在另外一個線程組對應的參數后面,直接把上述全局的前部分拿來就用,即${__setProperty(newtoken,)};還有一種就是使用__P函數,${__P(newtoken,0000)},0是默認值,都是可以調用;
還有另外一種方式設置全局變量:
- 增加beanshell sampler,在需要提取的請求后面;
- 打開函數助手:Ctrl+shift+f1;找到setProperty函數,填寫設置變量名稱和將那個變量設置為全局變量:第一個值是下一個線程引用的名稱,第二個值是被設置全局的變量,第三個是默認值;
3.將函數助手生成的腳本,復制粘貼在步驟1里面;${__setProperty(newtoken,{token},0000)}
3.引用的方法和上面的一樣,沒有什么區別