2016-12-27 26 views
0

我無法找到一種方法來初始化一個int變量作爲屬性(全局)只有一次當我的測試開始。我的測試計劃有多個線程,多個循環迭代,我想在我的beanshell腳本中使用一個變量,但在此之前,我希望它具有一定的值,然後讓循環和線程根據需要定義它。 我嘗試通過UDV配置,但沒有運氣。此外,我希望將其作爲全球(作爲屬性,爲多個線程組),但無法找到它的方式。JMeter一次只有全局變量初始化

回答

1

任何不使用該屬性的原因?例如,您可以在下一行添加到user.properties文件

foo=100 

或通過像-J命令行參數把它傳遞給JMeter的:

jmeter -Jfoo=100 -n -t yourscript.jmx 

一旦這樣做,你可以使用的值有3種方式:

  1. 使用__P()功能在需要:

    ${__P(foo,)} 
    
  2. 轉換成使用User Defined Variables配置元素

    User Defined Variables - property to variable

  3. 一個全局變量,當涉及到的BeanShell - 使用props速記而不是vars

    int foo = Integer.parseInt(props.get("foo")); 
    

JMeter的屬性對整個J來說都是全球性的VM可以從多個線程組訪問。有關JMeter屬性的更多信息以及設置和覆蓋它們的方法,請參閱Apache JMeter Properties Customization Guide

+0

假設我將它添加到屬性文件中,可以通過測試更改它的值(在屬性中初始化後)? – Testerone

+0

當然,您可以通過Beanshell或[__setProperty()](https://www.blazemeter.com/blog/knit-one-pearl-two-how-use-variables-different-thread-groups)功能。 –