使用詹金斯的属性/变量值

时间:2018-08-28 12:41:46

标签: jenkins jdbc jmeter beanshell

我陷入了一个非常烦人的问题。解决起来看起来很简单,但是我看不到我在做什么错。

全部从JMeter: more than nine parameters from Jenkins开始。

我通过吐一个数组在Jmeter中从Jenkins获取了值。

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

字符串看起来像:

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

所以我有

  • words [0] = 999;
  • words [1] = 999;
  • words [2] = 8443;
  • [...]
  • words [5] = sa;

此操作在具有1个线程的BeanShell Sampler中进行。如何进一步使用这些值?即使在不同的线程组中。

我尝试过:

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

但是在用于JDBC连接配置时,$ {__ P(SqlIP)}不会检索该值:

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

如何使用属性/变量从该数组发送数据以建立JDBC连接?我需要它们用于:SQL IP,SQL实例,SQL用户名和SQL密码。所有这些都是从詹金斯发送来的。谢谢

1 个答案:

答案 0 :(得分:1)

因为JDBC Connection Configuration是一个Configuration元素,并且根据Execution Order它是在任何 Beanshell测试元素之前开始的。您将不得不提出另一种设置值的方法。

我不知道JMeter级别上的任何参数数量限制,如果您运行的是异国情调的Shell或某种形式的自定义JMeter启动脚本引入了此限制,则可以通过将配置放入来解决该问题可以通过-q parameter传递的user.properties 文件或自定义属性文件,请查看Apache JMeter Properties Customization Guide以了解有关设置和覆盖JMeter属性的更多信息