Jmeter - 查询,存储在变量中。现在在 post-processing 中使用该变量
Jmeter - query, store in variable. Now use that variable in post-processing
希望利用 jmeter 进行一些自动化测试,但遇到了问题。在我的测试之前,我想 运行 在我的数据库上查询,然后将结果存储在一个文本文件中。
我想我会通过这样的 JDBC 请求来完成:
然后在我想做一些 post 处理后立即将结果写入我们的文件:
我也试过,将传递给 vars.get 的参数放在引号中,但我没有这样的运气。 Jmeter 确实写了一个文件,但那个文件是空的,如果我 运行 独立查询,它会 return 结果。
有人知道如何获得这种所需的行为吗?
如果您查看 jmeter.log 文件,您应该会看到与 Beanshell 相关的错误。
这是因为“结果变量名称”是一个 ArrayList,而不是字符串,因此
您需要使用 vars.getObject() 方法而不是 vars.get()
;
确保引用变量名
去掉“;”在 SQL 查询结束时
-
如果结果集很大,最好考虑通过 JSR223 Sampler using "groovy" as a language as Beanshell has some performance limitations. See Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 基准测试结果指南和有关如何设置 groovy 脚本引擎支持的说明。
要将输出写入文件,请参阅:
Append data into a file using Apache Commons I/O
如果您决定使用 Groovy,它会更容易:
希望利用 jmeter 进行一些自动化测试,但遇到了问题。在我的测试之前,我想 运行 在我的数据库上查询,然后将结果存储在一个文本文件中。
我想我会通过这样的 JDBC 请求来完成:
然后在我想做一些 post 处理后立即将结果写入我们的文件:
我也试过,将传递给 vars.get 的参数放在引号中,但我没有这样的运气。 Jmeter 确实写了一个文件,但那个文件是空的,如果我 运行 独立查询,它会 return 结果。
有人知道如何获得这种所需的行为吗?
如果您查看 jmeter.log 文件,您应该会看到与 Beanshell 相关的错误。
这是因为“结果变量名称”是一个 ArrayList,而不是字符串,因此
您需要使用 vars.getObject() 方法而不是
vars.get()
;确保引用变量名
去掉“;”在 SQL 查询结束时
如果结果集很大,最好考虑通过 JSR223 Sampler using "groovy" as a language as Beanshell has some performance limitations. See Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 基准测试结果指南和有关如何设置 groovy 脚本引擎支持的说明。
要将输出写入文件,请参阅:
Append data into a file using Apache Commons I/O
如果您决定使用 Groovy,它会更容易: