使用 Jenkins 的 property/variable 值

Using property/variable value from Jenkins

我遇到了一个非常烦人的问题。看起来很容易解决,但我看不出我做错了什么。

全部从 开始。

我设法通过吐出一个数组从 Jmeter 中的 Jenkins 获取值。

String line = "${__P(jenkinsparams)}";
String[] words = line.split(",");

字符串看起来像:

-Jjenkinsparams="999,999,8443,1433,SQL2012,sa"

所以我有:

此操作在具有 1 个线程的 BeanShell 采样器中进行。我怎样才能进一步使用这些值?即使在不同的线程组中。

我试过:

props.put("SqlIP",words[0]);
props.put("SqlInstance", words[1]);

但是 ${__P(SqlIP)} 在 JDBC 连接配置中使用时不检索值:

jdbc:sqlserver://${__P(SqlIP)}\${__P(SqlInstance)}

如何使用 properties/variables 从该数组发送数据以建立 JDBC 连接?我需要它们用于:SQL IP、SQL 实例、SQL 用户名和 SQL 密码。所有这些都是从 Jenkins 发送到那个数组中的。谢谢

因为JDBC Connection Configuration is a Configuration element and according to Execution Order它在任何Beanshell测试元素之前开始。您将不得不想出另一种设置值的方法。

我不知道 JMeter 级别的任何参数数量限制,如果你是 运行 奇异的 shell 或引入此限制的自定义 JMeter 启动脚本形式,你可以工作通过将您的配置放入 user.properties 文件或可以通过 -q parameter, check out Apache JMeter Properties Customization Guide 传递的自定义属性文件来了解有关设置和覆盖 JMeter Properties[=13 的更多信息=]