根据外部变量改变"User Defined Variables"
Change "User Defined Variables" based on external variable
我在尝试根据现有变量更改用户定义变量时遇到了一些问题。
BeanShell:
String databaseSize;
if (${__P(DBsize,${DB_size})} == '0') {
vars.put("databaseSize","SmallDB"); }
else if (${__P(DBsize,${DB_size})} == '1')
{vars.put("databaseSize","LargeDB");}
用户自定义变量
名称:路径
值:${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}\ ${databaseSize}
我想根据我在 databaseSize 中存储的内容更改 path。我在给定路径中有两个文件夹:SmallDB 和 LargeDB。据我所知,UDV 在 JMeter 设法 运行 我的 BeanShell 之前被分配。
是否有其他方法可以根据另一个变量(从 Jenkins 接收或从文件接收的默认值)更改 path?
谢谢
您可以使用vars.put
添加JMeter变量:
import org.apache.jmeter.services.FileServer;
vars.put("path", FileServer.getFileServer().getBaseDir());
- Since JMeter 3.1 it is recommended to use Groovy language for any form of scripting mainly because Groovy performance is much better than Beanshell 和朋友
- 您可以将 __groovy() function 直接放入用户定义变量的
Value
节中 - 它会在处理配置元素时进行评估
您可以选择 ternary operator 以便将您的代码转换为更小的一行,例如:
${__groovy((props.getProperty("DBsize").equals("0")) ? "SmallDB" : "LargeDB",)}
所以你的配置是:
我在尝试根据现有变量更改用户定义变量时遇到了一些问题。
BeanShell:
String databaseSize;
if (${__P(DBsize,${DB_size})} == '0') {
vars.put("databaseSize","SmallDB"); }
else if (${__P(DBsize,${DB_size})} == '1')
{vars.put("databaseSize","LargeDB");}
用户自定义变量
名称:路径
值:${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}\ ${databaseSize}
我想根据我在 databaseSize 中存储的内容更改 path。我在给定路径中有两个文件夹:SmallDB 和 LargeDB。据我所知,UDV 在 JMeter 设法 运行 我的 BeanShell 之前被分配。
是否有其他方法可以根据另一个变量(从 Jenkins 接收或从文件接收的默认值)更改 path?
谢谢
您可以使用vars.put
添加JMeter变量:
import org.apache.jmeter.services.FileServer;
vars.put("path", FileServer.getFileServer().getBaseDir());
- Since JMeter 3.1 it is recommended to use Groovy language for any form of scripting mainly because Groovy performance is much better than Beanshell 和朋友
- 您可以将 __groovy() function 直接放入用户定义变量的
Value
节中 - 它会在处理配置元素时进行评估 您可以选择 ternary operator 以便将您的代码转换为更小的一行,例如:
${__groovy((props.getProperty("DBsize").equals("0")) ? "SmallDB" : "LargeDB",)}
所以你的配置是: