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,而不是字符串,因此

  1. 您需要使用 vars.getObject() 方法而不是 vars.get();

  2. 确保引用变量名

  3. 去掉“;”在 SQL 查询结束时

  4. 您需要将 ArrayList somehow or serialize 迭代到文件中。

  5. 如果结果集很大,最好考虑通过 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 脚本引擎支持的说明。

  6. 要将输出写入文件,请参阅:

    Append data into a file using Apache Commons I/O

如果您决定使用 Groovy,它会更容易: