Jmeter跨线程组传递参数
jmeter的線程組之間是相互獨立的,各個線程組互不影響,所以線程組A中輸出的參數,是無法直接在線程組B和線程組C中被調用的。
但是有時為了方便管理,我們可能是把各個接口單獨存放在不同的線程組中。拿token來說,雖然每一個線程組中我們也可以在放一個登錄請求,然后輸出一個token供此線程組使用,但這樣就比較繁瑣且冗余。此時我們就可以使用跨線程組傳遞參數來解決這樣的問題
方法:jmeter本身的內置函數${__setProperty(requestToken,${Token},)};可以把某參數的值設置成jmeter本身的內置屬性,是全局變量,各個線程都可調用。調用時,只需使用調用jmeter屬性的函數${__property(requestToken)}來調用相應的屬性即可。
1、創建線程組A(登錄采樣器、正則表達式提取器、beanshell后置處理器、采樣器A、查看結果樹)
登錄采樣器,登錄接口返回token
正則表達式提取器,提取token
beanshell后置處理器,將提取的token賦值并設置為全局變量,待其它線程調用
采樣器A,調用beanshellToken值${__property(requestToken)}
2、創建線程組A(采樣器A、查看結果樹)、創建線程組A(采樣器B、查看結果樹)
采樣器B,調用beanshellToken值${__property(requestToken)}
采樣器C,調用正則提取Token值${Token}
3、設置測試計劃為獨立運行每個線程組(順序運行線程)
4、查看登錄接口響應
5、登錄接口下添加正則表達式提取器,提取token
6、Bean Shell PostProcessor設置
Parametres:傳遞需要操作的參數${Token},前面正則提取出來的Token值,就把參數Token寫入
Script:${__setProperty(requestToken,${Token},)};?調用函數__setProperty,把Bean Shell PostProcessor中的參數Token的值賦值給requestToken,并設置requestToken為jmeter內置屬性,全局變量,所有線程組可調用。
7、我們查看最終結果樹顯示A線程和B線程調用${__property(requestToken)}都生效了,而C線程調用${Token}未生效
?
?
?
總結
以上是生活随笔為你收集整理的Jmeter跨线程组传递参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 写入json数据到数据库
- 下一篇: 【Python】PyMuPDF模块将PD