【问题标题】:JMeter: Passing Results of SQL Query as a VariableJMeter:将 SQL 查询的结果作为变量传递
【发布时间】:2016-07-02 16:47:42
【问题描述】:

我一直在阅读论坛、Apache JMeter 指南以及 BlazeMeter 的 The Real Secret to Building a Database Test Plan With JMeterUsing JDBC Sampler In JMeter,但我还是有点迷茫。

我需要发出查询以从表中提取 Obj ID 值并将该值传递给 HTTP READ 请求。我已经完成了以下设置:

JDBC 请求
变量名称:Pool-1
查询类型:选择语句
查询:select distinct ObjId from dbo.CommonRuleSet where Name like '%ABC%';
参数。价值观:
参数。类型:
变量名:abcObjId
结果变量名:abcCommonRule = vars.getObject("resultObject").get(0).get("ObjId");
查询超时(秒):5000
处理结果集:存储为对象

执行结果如下:
ObjId
1136682203

我试图弄清楚如何将此 ObjId 值作为变量传递以附加 URL.

HTTP 请求
数据库:端口/applicationServer/../../crud/CommonRuleSet/????

我尝试使用以下方法追加:

  1. 变量名称值:${abcObjId}
  2. 结果变量名称:${abcResult}

每次,JMeter 都不会翻译变量,从而导致解析器错误。
(例如,http://database:port/.../.../.../crud/CommonRuleSet/${abcResult}

我只是不明白如何获取成功查询的结果并将其作为变量传递给 HTTP 请求。非常感谢任何见解/启示!

【问题讨论】:

    标签: jdbc jmeter


    【解决方案1】:

    解决办法是:

    //数据库:端口/.../.../.../crud/CommonRuleSet/${abcObjId_1})。

    我想在发布我的问题之前我没有浏览足够多的 BlazeMeter 页面。我在Debugging JDBC Sampler Results in JMeter 上找到了解决方案。

    解释变量名称和结果变量名称之间的区别和用法的部分使所有的不同。我现在明白 Result Variable Name 是 HashMaps 的 ArrayList,在这种情况下我不需要它。

    所以我将 Result Variable Name 字段
    从: abcCommonRule = vars.getObject("resultObject").get(0).get("ObjId");
    改为: 结果,

    接下来,由于我想直接访问变量名称“abcObjId”,我修改了附加我的URL的变量
    来自: ${abcObjId}
    到: ${abcObjId_1}。

    我是如此接近...如此接近....

    感谢 dmitri-t 和 Blazemeter 的人们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      相关资源
      最近更新 更多