1. Извините за это, но только для того, чтобы убедиться: вы гарантировали, что FTP-соединение успешно выполняется вручную, то есть не с помощью FTP-запроса в сценарии jmeter, а через консольное / telnet-соединение или с помощью любой утилиты FTP-клиента? *
2. Пассивный режим FTP
Возможная причина:
Поскольку ваш запрос FTP не выполняется во время выполнения команды PASV, можно предположить, что основной причиной является то, что ваш ftp-сервер не поддерживает пассивный режим, в то время как FTP-запрос jmeter использует пассивный режим по умолчанию.
Чтобы убедиться в этом, попробуйте переключиться в пассивный режим после подключения к FTP с консоли,
например,
telnet your.ftp.server.url 21
USER yourusername
PASS yourpassword
PASV
или
ftp -d your.ftp.server.url
USER yourusername
PASS yourpassword
passive
или с помощью любой клиентской утилиты ftp, у которой есть возможность выбрать режим (активный / пассивный) для подключения.
Если во время этого возникает та же проблема, то проблема в том, что ваш ftp-сервер не поддерживает пассивный режим, используемый FTP-запросом.
См. Например это для объяснения различий в обоих режимах.
Возможное решение:
Согласно источникам jmeter :
ftp.enterLocalPassiveMode();
Переключение в пассивный режим используется по умолчанию, и нет возможности установить внешний режим в Экран конфигурации запроса FTP .
Но вы можете реализовать ftp-запрос самостоятельно, избегая использования FTP-запроса.
Вы можете использовать FTPClient реализация из Apache Commons Net и сценарий ftp-соединения в BeanShell Sampler .
Очень упрощенно это может выглядеть так:
import org.apache.commons.net.ftp.*;
FTPClient client = new FTPClient();
client.setDataTimeout(3600000);
client.connect(ftpHost,ftpPort);
client.login(userName, userName);
client.setFileType(FTPClient.BINARY_FILE_TYPE);
...
// FTPClient uses 'active mode' by default
if (ftp_passive_mode) {
client.enterLocalPassiveMode();
} else {
client.enterLocalActiveMode();
}
...
client.logout();
client.disconnect();
Возможно, я тоже ошибаюсь, и причина вашей проблемы кроется в другом месте.
Надеюсь, что это поможет вам диагностировать и решить вашу проблему.