情况: 我正在使用JMeter加载测试我的通信应用程序(Cleo VLTrader)。我是JMeter的新手,能够让HTTP通信工作,但不能使用FTP。当我尝试使用JMeter FTP请求采样器时,我可以在服务器端看到JMeter正在发出“PASV”命令,并且由于“502 PASV命令不可用”错误而在此后不久失败。
问题: 如何配置JMeter FTP请求采样器以连接到我的FTP服务器?
答案 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();
也许我也错了,你问题的原因隐藏在另一个地方 希望这能帮助您诊断并解决您的问题。