用于Oracle DB输出的Jmeter正则表达式

时间:2016-12-28 16:28:42

标签: jmeter

在Jmeter中,我创建了一个与Oracle的数据库连接,并执行以下查询。

select address , city , zip from table where city='Delhi';

现在这是结果:

212 Kamla nagar  Delhi  11011

现在我想使用正则表达式将它用于3变量,并将所有这3个参数传递给另一个soap请求。

我尝试将正则表达式用作(\d+),但它只将值存储在变量1中。

如何提取值并在另一个请求中使用它们?

2 个答案:

答案 0 :(得分:0)

您可以使用JDBC预处理器,并使用Variable namesResult variable name

您在Variable names框中指定的地图会映射到您的查询返回的各个列,您可以通过说columnVariable_{index}来访问这些列。

<强> OR

您在Result variable name中指定的那个包含整个结果集,实际上这是一个映射到值的列表。在这种情况下,上述语法显然不起作用。您必须通过BeanShell访问它并创建变量。

...然后您可以在soap请求中将这些变量用作${name_1}${city_1}${zip_1}来访问来自DB的值。或${name}${city}${zip}如果您使用Result variable name对象 enter image description here enter image description here

答案 1 :(得分:0)

按如下方式配置JDBC Sampler:

JMeter JDBC Results

即。将下一行添加到&#34;变量名称&#34;输入:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<button id="button">click</button><br>
part1<br>
<div id="part1"></div><br/>
part2<br/>
<div id="part2"></div>

您将能够以下列方式访问提取的值:

  • address, city, zip
  • ${address_1}
  • ${city_1}

稍后在脚本中。 ${zip_1}代表结果集行,即如果JDBC响应中有2行 - 1代表第1行地址,${address_1}代表第2行地址等。

有关详细信息,请参阅Debugging JDBC Sampler Results in JMeter文章。