2016-04-04 32 views
0

我試圖發送一個函數作爲bealshell斷言組件中的參數。 參數是Jmeter - 使用jmeter函數作爲bsh.args

${__V(SB_names_${counter})} 

它基本上是一個動態的字符串,它是在每次迭代不同。 我試圖通過

vars.get(bsh.args[2]); 

,因爲它是在列表中的第三個參數來訪問這個參數,但我不斷收到空。

enter image description here

是可以在所有使用JMeter的功能參數?或者問題是獲取參數? 謝謝。

+0

我已經做了類似的事情,我把這個函數放在一個bash腳本中調用,像這樣調用$ {__ BeanShell(source(「function.bsh」))}。也許它會幫助你。 –

+0

顯示您的BeanSHell斷言的外觀。 –

回答

0

它應該工作的罰款只是:

  1. 確保變量定義
  2. 從「參數」部分刪除所有逗號
  3. 從「參數」部分刪除所有多餘的空格。

正如你可以考慮讓從vars對象,它代表JMeterVariables像期望值的解決方法:

String sb_name = vars.get("SB_names_" + vars.get("counter")); 

演示:

Beanshell function

而且考慮遷移到JSR223 AssertionGroovy因爲從性能角度來看它更好。有關groovy引擎安裝和腳本最佳實踐的更多信息,請參閱Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!指南。

+0

謝謝! vars.get(「SB_names_」+ vars.get(「counter」));做了這項工作。由於某些原因,它不適用於bsh.args [2]。 – user2880391