jmeter jdbc 变量名查询

jmeter jdbc variable names query

再次向我自己道歉,因为我是 Jmeter 的新手 - 我对 JDBC 请求有点困惑 - 我在过去 3 小时里浏览了这个网站上的帖子 - 但我可以找不到任何相关的东西(除非我遗漏了什么)。

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

非常简单 - 我有一个 JDBC 采样器,我需要设置它以使用 JDBC 预处理器提供的值。

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

JDBC 预处理器详细信息

Select 语句 --> select max(applicationID)+1 from table;

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

JDBC 采样器详细信息

Select 语句 --> select status from table where applicationID = 'max(applicationID)+1'

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

我确实尝试在 JDBC 预处理器中添加 'maxrecordidvar' 的 'Variable Name' 并设置 JDBC 采样器查询 --> select 状态table 其中 applicationID = maxrecordidvar

然而 - 这(显然)不起作用 - 我收到 Oracle 错误 'ORA-00904: "MAXRECORDIDVAR": invalid identifier'

再次,如果这是一个愚蠢的问题,我深表歉意,非常感谢 all/any 任何人都可以提供的帮助!

我已经使用 MYSQL 模拟了这个概念,但是测试计划是相似的。

  • JDBC 预处理器得到一个 Integer
  • 在后续 JDBC 请求中使用该整数

首先,JDBC 预处理器和 JDBC 请求不只是简单地发送到单个变量,而是根据您的名字公开一些变量。例如

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

这意味着稍后我可以访问

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

此查询只有一列和一行,否则 ${foo_2} 将是第一列第 2 行。更多文档位于 JDBC Request

其次,要在我的 JDBC 请求中使用 with 我必须使用准备好的 Select 语句。传入 ${foo_1} 作为参数值,传入 INTEGER 作为参数类型(我使用的是 mysql)。

我发了一个模拟的load test and JMX File

我相信使用 __intSum() or longSum() 函数更容易将 "applicationID" 变量递增 1。

请参阅How to Use JMeter Functions 帖子系列,了解有关不同 JMeter 功能、放置位置、使用方法等的高级信息。