【问题标题】:JMeter method call on start/end of test plan测试计划开始/结束时的 JMeter 方法调用
【发布时间】:2018-06-11 19:27:24
【问题描述】:

我正在寻找满足一些条件的组合 JMeter 扩展:

  1. 在测试计划/线程组的开头打开文件。用于输入的 excel 文件中的文件之一。我有代码可以使用 apache poi 通过在 jmeter lib 文件夹中包含 apache tika jar 来读取它。然后输入应该在线程中用作变量,就像使用CSV Data Set Config 测试元素一样。

  2. 在测试计划/线程组结束时聚合所有结果以对所有结果集进行计算。

对于#1,也许可以通过扩展配置元素来做到这一点,但我还没有看到如何做到这一点。我也不确定如何模仿CSV Data Set Config 的行为。

对于#2,目的是将从结果中提取的最终信息发送到服务器,因此将结果保存到文件不是最佳选择。 View Results TreeView Results in Table 元素都创建了所有结果的报告,因此看起来应该可以这样做。

编辑: 如何实现以上目标?

【问题讨论】:

  • 你有什么问题?

标签: java jmeter


【解决方案1】:

假设您的问题是'如何实现上述目标?'

对于#1:

首先,我相信使用CSV Data Set Config 让 excel/app 为 jmeter 提供 csv 文件以使用它更容易/更简单(因为 简单胜于复杂)。我的意思是,将读取逻辑写入其他地方,这将输入到 jmeter 的测试数据文件中。另一种选择是在set up threadgroup 中写入JSR223 sampler 以读取excel 并生成CSV。

但是,如果您无论如何需要它,您将需要编写一个自定义插件,该插件将从ConfigTestElement 继承,并且需要实现TestBeanLoopIterationListener 接口。好的起点是here.CSV Data Set Config 的代码是here.

对于#2:

如果您需要 POST 将结果文件发送到服务器,那么您可以在 jmeter 中使用 tearDown thread group,它将在测试结束时获取文件并使用 HTTP Request 采样器进行 HTTP 发布请求。

希望我能给你一些指导。

【讨论】:

  • 感谢您的指导。使用您建议的第一种方法,我想在 setUp 线程组中设置一些属性。问题是似乎CSV Data Set Config 在setUp 线程组之前运行。这是真的吗?没有办法在设置线程组期间添加属性以在配置元素中使用?此外,我在 setUp 线程组 JSR223 采样器中设置的属性,例如,props.put("csv", csv); 不会为主线程组保留:props.get("csv")(返回 null)
  • 是的,你是对的,CSV 数据集配置在任何线程组之前运行。如果您想在 jmeter 启动期间设置它,您可以通过在命令行参数 (jmeter.apache.org/usermanual/get-started.html#override) 中传递它并使用 ${__P()} 函数 (jmeter.apache.org/usermanual/functions.html#__P) 像这样通过 jmeter 函数访问它。如果您需要帮助,请告诉我。
  • 我通过在filename 字段中为CSV Data Set Config 使用${__groovy()} 函数实现了我想要的,并调用了我的代码来创建csv 文件并返回新文件的名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多