Вы можете использовать конфигурацию набора данных CSV в разделе Пока контроллер, чтобы читать и отправлять предварительно созданные имена тестовых документов в цикле.
Это будет выглядеть так:
- создать коллекцию различных тестовых документов для отправки по вашему запросу;
ДОПОЛНИТЕЛЬНО: сохранить путь к папке с созданными документами в качестве переменной jmeter - использовать в скрипте;
- создать список тестовых документов;
Вы можете сделать это в BeanShell Sampler с кодом, показанным ниже;
- добавить Пока контроллер для отправки тестовых документов в цикле;
Конфигурация набора данных CSV для Пока контроллер как дочерний - для чтения имен тестовых документов из списка.
Подробно:
${__javaScript("${testFile}"!="<EOF>",)}
- прочитать список до конца файла
BeanShell Sampler-код для генерации списка тестовых файлов:
import java.text.*;
import java.io.*;
import java.util.*;
String [] params = Parameters.split(",");
String contentList = params[0];
String testDataDir = params[1];
File dir = new File(System.getProperty("user.dir") + File.separator + testDataDir);
BufferedWriter out = null;
try {
if (!dir.exists()) {
throw new Exception ("Directory " + dir.getName() + " not found.");
}
File contentFile = new File(System.getProperty("user.dir") + File.separator + contentList);
if (contentFile.exists()) {
contentFile.delete();
}
FileWriter fw = new FileWriter(contentFile, true);
out = new BufferedWriter(fw);
System.out.println("\n--------------------------------------------------------------------------------------");
System.out.println("CONTENT LIST:\n");
if ((dir.exists()) && (dir.listFiles() != null) && (out != null)) {
for (File f : dir.listFiles()) {
if (contentFile.length() == 0) {
out.write(f.getName());
} else {
out.write("\n" + f.getName());
}
out.flush();
System.out.println("Content " + f.getName() + " added to " + contentFile.getName() + ".");
}
}
System.out.println("--------------------------------------------------------------------------------------\n");
}
catch (Exception ex) {
IsSuccess = false;
log.error(ex.getMessage());
System.err.println(ex.getMessage());
}
catch (Throwable thex) {
System.err.println(thex.getMessage());
}
finally {
out.close();
}