JMeter(活动?)FTP到VLTrader

时间:2012-03-08 17:37:30

标签: ftp jmeter

情况: 我正在使用JMeter加载测试我的通信应用程序(Cleo VLTrader)。我是JMeter的新手,能够让HTTP通信工作,但不能使用FTP。当我尝试使用JMeter FTP请求采样器时,我可以在服务器端看到JMeter正在发出“PASV”命令,并且由于“502 PASV命令不可用”错误而在此后不久失败。

问题: 如何配置JMeter FTP请求采样器以连接到我的FTP服务器?

1 个答案:

答案 0 :(得分:0)

1。对此抱歉,但只是为了确保:您是否确保FTP连接手动成功,即不是来自jmeter脚本中的FTP请求,而是通过控制台/ telnet连接或任何FTP客户端实用程序?< / p>


2。 FTP被动模式

可能的原因:
由于您的FTP请求在PASV命令执行期间失败,可以假设根本原因是您的ftp服务器不支持被动模式,而jmeter的FTP请求默认使用被动模式。

要确保在从控制台连接到ftp后尝试切换到被动模式, e.g。

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请求使用的被动模式。

参见例如this解释两种模式的差异。


可能的解决方案:
根据{{​​3}}:

ftp.enterLocalPassiveMode();

默认情况下使用切换到被动模式,并且无法在jmeter sources外部设置模式。

但您可以自己实施ftp请求,避免使用FTP请求 您可以使用FTP Request configuration screen中的FTPClient实现和Apache Commons Net中的脚本ftp连接。

非常简化,这可能看起来像:

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

也许我也错了,你问题的原因隐藏在另一个地方 希望这能帮助您诊断并解决您的问题。