1. 对此感到抱歉,只是为了确保:您是否已确保FTP连接手动成功,即不是通过jmeter脚本中的FTP Request,而是通过控制台/
Telnet连接或任何FTP客户端实用程序?
2. FTP被动模式
可能的原因:
由于您的FTP请求在PASV命令执行期间失败,因此可以认为根本原因是您的ftp服务器不支持被动模式,而jmeter的FTP请求默认情况下使用被动模式。
为了确保此操作,请从控制台连接到ftp后尝试切换到被动模式,例如
telnet your.ftp.server.url 21USER yourusernamePASS yourpasswordPASV
要么
ftp -d your.ftp.server.urlUSER yourusernamePASS yourpasswordpassive
或使用任何具有选择连接模式(主动/被动)的选项的ftp客户端实用程序。
如果在此期间出现相同的问题-那么,问题是您的ftp服务器不支持FTP请求所使用的被动模式。
有关这两种模式之间差异的说明,请参见此内容。
可能的解决方案:
根据jmeter来源:
ftp.enterLocalPassiveMode();
默认情况下使用切换到被动模式,并且在FTP请求配置屏幕上无法在外部设置模式。
但是您可以自己实现ftp请求,避免使用FTP请求。
您可以从Apache Commons
Net使用FTPClient实现,并在BeanShell
Sampler中使用脚本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 defaultif (ftp_passive_mode) { client.enterLocalPassiveMode();} else { client.enterLocalActiveMode();}...client.logout();client.disconnect();也许我也错了,而您的问题的原因隐藏在另一个地方。
希望这将帮助您诊断和解决问题。



