JMeter (активный?) FTP для VLTrader - PullRequest
0 голосов
/ 08 марта 2012

Положение: Я использую JMeter для нагрузочного тестирования моего коммуникационного приложения (Cleo VLTrader). Я новичок в JMeter, и смог установить связь HTTP, но не FTP. Когда я пытаюсь использовать сэмплер JMeter FTP Request, я вижу на стороне сервера, что JMeter выдает команду «PASV» и вскоре после этого происходит сбой из-за ошибки «502 PASV command not available».

Вопрос: Как мне настроить сэмплер JMeter FTP Request для подключения к моему FTP-серверу?

1 Ответ

0 голосов
/ 12 марта 2012

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();

Возможно, я тоже ошибаюсь, и причина вашей проблемы кроется в другом месте.
Надеюсь, что это поможет вам диагностировать и решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...