JMeter:正则表达式提取器获取JDBC请求返回数据后的列名

JMeter: Regular expression extractor gets the name of the column after JDBC request returned data

我遇到了一些问题: 我使用 JDBC 请求来选择用户名数据并在登录请求中重用它 JDBC 请求 returns 来自 table 的正确数据

但是我的登录请求使用列名作为数据的问题,因此它尝试使用用户名 businessId 而不是正确的用户名登录。因此,当随机 JDBC 请求 returns 第一行时 businessId 值测试 returns 401 错误。

关于如何在 JDBC 请求中获取正确的值或提取没有列名的值,您有什么想法吗?

根据JDBC Request sampler documentation

If the Variable Names list is provided, then for each row returned by a Select statement, the variables are set up with the value of the corresponding column (if a variable name is provided), and the count of rows is also set up. For example, if the Select statement returns 2 rows of 3 columns, and the variable list is A,,C, then the following variables will be set up:

A_#=2 (number of rows)
A_1=column 1, row 1
A_2=column 1, row 2

因此您不需要正则表达式提取器,您需要定义“变量名称”,例如:

并且第一行值可以引用为 businessId_1,第二行值可以引用为 businessId_2,等等

更多信息:Debugging JDBC Sampler Results in JMeter

实际上,问题出在 businessId 结果中包含的列名中。所以我的 JDBC 请求返回的值包括列名,列名存储为 businessId 值。 为了解决这个问题,我使用 ForEach Controller where Input Variable Prefix: businessId and Output variable name: currentId