我正在使用一些採用BeanShell斷言的JMeter測試計劃。在這些斷言中,我想獲取一些用戶屬性。有幾種方式可以訪問它們:在JMeter中使用JMeterUtils.getProperty與__P有什麼優缺點?
JMeterUtils.getProperty("propertyName")
${__P(propertyName)
props.get("propertyName")
每個選項的區別和優缺點在哪裏?它們是相互包裝還是具有特定的功能?
謝謝!
我正在使用一些採用BeanShell斷言的JMeter測試計劃。在這些斷言中,我想獲取一些用戶屬性。有幾種方式可以訪問它們:在JMeter中使用JMeterUtils.getProperty與__P有什麼優缺點?
JMeterUtils.getProperty("propertyName")
${__P(propertyName)
props.get("propertyName")
每個選項的區別和優缺點在哪裏?它們是相互包裝還是具有特定的功能?
謝謝!
在功能上它們都完全一樣。它們甚至以相同的方式實現 - 它們都在當前jmeter屬性對象上調用getProperty()
方法。
區別在於你使用它們的地方。把變量放入JMeter的GUI文本框時
的${}
表示法。例如,在HTTP採樣器的字段中。注意:__P
是簡寫,並且完全一樣__Property
props.get()
中的BeanShell腳本中使用,而無需顯式導入JMeterUtils
。您也可以將1 & 2做${__BeanShell(props.get())}
如果在BeanShell中導入JMeterUtils
,或者你正在開發一個自定義的Java類,那麼你可以使用JMeterUtils.getProperty()
。
在三者當中,我會覺得#1是最有效的,因爲它並不需要實例化和評估的BeanShell
對於BeanShell的隨意使用你喜歡的任何方式。
其推薦在JMeter測試腳本做的方式JSR223 Test Elements和Groovy語言 - 避免闖民宅使用$ {這樣},因爲它防止編譯腳本,並導致執行開銷JMeter的變量和函數。請參閱Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!文章以獲取更詳細的解釋,不同的腳本編寫方法基準和腳本編寫最佳實踐。