使用 CSV 数据集配置和 EOF 条件的问题

use*_*995 2 jmeter

我有一个 CSV 数据集配置,我在 while 循环中使用它。我在一个模块中有这个,并在我的测试中多次使用这个相同的模块。

我的第一个问题是我用这个条件设置了 while 循环:

${__javaScript("${data}"!="<EOF>")}
Run Code Online (Sandbox Code Playgroud)

“数据”是我的 csv 文件中的第一列。这工作正常,除了最后一次迭代 ${data} 被设置为“EOF”并对其执行所有测试。我希望它在此之前停止,而不是在所有测试都运行一次之后。

我的另一个问题是,当我稍后再次使用此模块时,${data} 仍设置为“EOF”并且根本不运行任何测试。

Dmi*_*i T 5

为了避免这<EOF>一点,只需将您的逻辑放在If Controller 下"${data}" != "<EOF>"用作“条件”

虽然控制器 + IF

有关此用例和其他常见用例的详细说明,请参阅在 JMeter 中使用 While 控制器指南。


更新。重用相同的 CSV 文件:

在第一个 While Controller 之后和第二个 While Controller 之前添加一个Beanshell Sampler,并在“脚本”区域使用以下代码:

import org.apache.jmeter.services.FileServer;
FileServer.getFileServer().closeFile("yourfile.csv");
vars.put("data", "");
Run Code Online (Sandbox Code Playgroud)

上面的脚本将“关闭”原始 CSV 文件,以便稍后在脚本中重新使用它,并“清除”${data}变量,因为它包含<EOF>值。

有关在 JMeter 测试中使用 Beanshell 脚本的详细信息,请参阅如何使用 BeanShell:JMeter 最喜欢的内置组件指南。