jmeter jdbc变量名查询

sqe*_*eky 3 jdbc jmeter oracle12c

再次为自己作为Jmeter新手道歉 - 我对JDBC请求有点困惑 - 我已经在这个网站上搜索了最近3个小时的帖子 - 但我找不到任何相关内容(除非我我错过了什么.

我的环境:Jmeter v2.11,JDK 7,Oracle 12

它非常简单 - 我需要设置一个JDBC Sampler来使用JDBC PreProcessor提供的值.

基本上我有一个JDBCPreProcessor设置来识别下一个(新)记录的唯一引用(称之为applicationID)

JDBC预处理器详细信息

选择Statement - >从表中选择max(applicationID)+1;

我有一个JDBC Sampler设置,我需要使用'max(applicationID)+1'值(由JDBC预处理器确定)

JDBC Sampler详细信息

选择语句 - >从表中选择状态,其中applicationID ='max(applicationID)+1'

我不确定该怎么做.我查看了指令和许多其他Jmeter JDBC请求帖子,但我恐怕找不到我需要的相关信息.

我确实尝试在JDBC PreProcessor中添加'maxrecordidvar'的'变量名'并设置JDBC Sampler查询 - >从表中选择状态,其中applicationID = maxrecordidvar

但是 - 这(显然)不起作用 - 我得到一个Oracle错误'ORA-00904:"MAXRECORDIDVAR":无效的标识符'

再次,如果这是一个愚蠢的问题,并且非常感谢所有人/任何人可以提供的任何帮助,我们再次表示歉意!

Ric*_*man 5

我使用MYSQL模拟了这个概念,但测试计划类似.

  • JDBC预处理器获取整数
  • 在以下JDBC请求中使用该整数

首先,JDBC PreProcessor和JDBC Request不仅仅发送到单个变量,而是根据您的名称公开一些变量.例如

  • 查询:选择CAST(RAND()*242 AS UNSIGNED);
  • 变量名称:foo

这意味着以后我可以访问

  • $ {foo_#} - 行数(应为1)
  • $ {foo_1} - 第一列第1行中的值

此查询只有一列和一行,否则$ {foo_2}将是第一列第2行.在JDBC请求中有更多文档

在此输入图像描述

其次,要在我的JDBC请求中使用,我必须使用Prepared Select Statement.传入$ {foo_1}作为参数值,INTEGER作为参数类型传递(我使用的是mysql).

在此输入图像描述

我发布了模拟负载测试和JMX文件.