Я пытаюсь перебрать файлы в папке. каждый файл имеет несколько строк json, разделенных символом новой строки. Как только json будет получен, он должен получить указанный c узел json и отправить его на http-сервер.
Изначально я думал, что буду использовать конфигурацию набора данных csv, но мне удалось получить вложенные json из файлов. После некоторых уроков чтения jmeter я наконец-то выбрал JSR223, чтобы создать собственный скрипт, который считывает файл и помещает в ctx, который будет использоваться сэмплером для отправки данных.
Вот что я делал до сих пор.
Test plan
-> Thread group
-> JSR223 PreProcessor : This is where i am reading file and adding it to vars, its like "json_{number}" and "GETfileLength"
-> ForEach Controller : This is sibling of Thread group
-> HTTP Request : Inside for Each controller has a configuration of host, port and the path and in the body i have mentioned ${json_out}
-> View Results Tree
-> Summary Report
Groovy скрипт присутствует в препроцессоре
log.info("------ start ----------");
File file = new File("/data/sample1.json")
def line;
def noOfLines=0
file.withReader { reader ->
while ((line = reader.readLine()) != null) {
noOfLines++
vars.put("json_"+noOfLines, line)
}
}
vars.put("GETfileLength",noOfLines.toString()) ;
log.info("------ end ----------");
- В приведенной выше иерархии плана тестирования я не вижу, как вызывается скрипт (проверенные журналы). Если я удаляю контроллер forEach, вызывается скрипт, но я не знаю, как дать имя переменной в теле http POST для динамических c переменных.