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