昨天學會了動態獲取token,今天測試接口時但願可以實現跨線程調用token值。函數
實現原理:測試
jmeter自己的「__setProperty」函數能夠把某參數的值設置成jmeter自己的內置屬性,而jmeter的內置屬性是全部線程組均可以調用的,是全局變量。各個線程組調用時,只需使用調用jmeter屬性的函數「__P」來調用相應的屬性便可。線程
操做過程:3d
在昨天已經能動態獲取到token的基礎上,在登陸接口下再添加一個Bean Shell PostProcessor 的後置處理器 :blog
Parametres:就是以前獲取token時設置的變量名。token
Script:就是把Bean Shell PostProcessor接收到的參數值,賦值給某參數,0是第一個值。調用函數__setProperty,把Bean Shell PostProcessor中的參數token的值賦值給loginToken,並設置loginToken爲jmeter內置屬性。loginToken是自定義的變量名。接口
String token = bsh.args[0];
log.info("token:" + token);
${__setProperty(loginToken,${token},)};ip
登陸接口這個線程組就設置好了,其餘線程組要調用token值的話直接用「__P」函數調用。登錄
能夠在其餘線程組下添加一個HTTP Header Manager, http header manager設置以下:基礎
以上都設置完後基本上就能夠了,還要注意的一個就是線程組執行順序問題,把獲取token的這個線程組放在第一位,在Test Plan裏把下面這一項前面勾上:
好了(*^▽^*)~