jdbc - 使用带有可调用语句的 JMETER GUI JDBC 请求——我如何获取结果集/元数据?
问题描述
我已经调用了我的数据库作为 SQL 选择语句。但我正在努力使用 JMeter 调用存储过程以进行进一步测试。我正在严格处理 JMX 文件,目前还没有将 JMETER 集成到我们的主要 Java 项目中。
我已经使用 JDBC 连接配置和 JDBC 请求设置了 JMETER GUI。我已经使用带有字符串 INPUT 的可调用语句成功调用了我的数据库,并获取了字符串 OUTPUT 参数字符串。
OUTPUT 参数字符串仅包含有关调用的信息(用户、系统、成功等……),但不包含表中的任何值/数据——在 ResultSet/MetaData 中找到。但我无法弄清楚如何使用 JMETER 中的 JDBC 请求获取 ResultSet 或元数据。
在 Java 中,我知道我使用该语句,只需调用 statement.getResultSet() 并在 resultSet.next() 存在时执行一个循环。我如何在 JMETER 中做到这一点?
我尝试添加一个额外的 out 参数,但我的语句拒绝了调用,因为只有一个 in 参数。我尝试了各种 JMeter 断言 - 但由于主调用仅返回 out 参数,我无法获取其他数据。
Query: call XXXXX.readUser(?)
Parameter Values: ${inputJSONString}
Parameter Types: INOUT VARCHAR
Variable Names: ouputJSONString
Result Variable Name: ouputJSONString
查看结果树:响应代码:200,响应消息:OK,按位置输出变量:包含带有用户、系统和成功的整个 JSON 输出参数字符串。返回表列标题但不返回值。
我没有错误 - 呼叫成功。我只是不知道如何从 JMETER 访问结果集。
解决方案
Don't use the same reference name for the Variable Names
and the Result Variable Name
as the latter one will be overwritten.
So
- Change
ouputJSONString
to i.e.ouputJSONStringObject
- Add JSR223 PostProcessor as the child of the request
- You will be able to access the JMeter's representation of the ResultSet as
vars.getObject('ouputJSONStringObject')
(basically ArrayList of HashMaps
See Debugging JDBC Sampler Results in JMeter article for more details.
Unfortunately you cannot access the normal ResultSet as it is not exposed anywhere and being converted via private function
推荐阅读
- reactjs - 在 React 中更改输入的占位符
- javascript - 使用 javascript 客户端 sdk 和 Angular 启动对话客户端、加入对话以及订阅 twilio 上的对话更改
- excel - 将文本值映射到数字
- kotlin - 如何从 kotlin 中的谷歌材料时间选择器获取 am/pm 值
- angular - 如何使用从 api 接收的数组中的元素填充 mat-option
- python - 如何使用 Matplotlib 在 Python 中沿无花果添加扩展箭头
- reactjs - CopyWebpackPlugin 到 react webpack 应用程序中的 dist 文件夹
- android - Samsung Internet (Chromium) 未正确显示网站顶部
- python - 计算给定列表中所有可能的组合
- python - Python:排序列表和保留索引的最快方法