Я создал минимальный рабочий пример для одного возможного решения.
В основном я читаю CSV в сэмплере JSR223 и группирую его следующим образом groovy код в сэмплере "read csv":
import org.apache.jmeter.services.FileServer
current_dir = FileServer.getFileServer().getBaseDir().replace("\\","/")
csv_lines = new File(current_dir + "/test.csv").readLines()
times = []
csv_lines.each { line ->
line = line.split(",")
time = line[0]
task_id = line[1]
if (vars.getObject(time)){
tasks = vars.getObject(time)
tasks.add(task_id)
vars.putObject(time, tasks)
}
else{
times.add(time)
vars.putObject(time, [task_id])
}
}
times.eachWithIndex { time, i ->
vars.put("time_" + (i+1), time)
}
Примечания:
- (i + 1) используется, поскольку контроллер ForEach не будет учитывать 0-й элемент
- Я использовал "," в качестве разделителя csv и пропустил строку заголовка
- Сэмплер "initialize task_ids" содержит следующий код:
.
time = vars.get("time")
tasks = vars.getObject(time)
tasks.eachWithIndex {task, i ->
vars.put(time + "_" + (i+1), task)
}
Надеюсь, это поможет!