情況: 我正在使用JMeter來加載測試我的通信應用程序(Cleo VLTrader)。我是JMeter的新手,能夠使HTTP通信正常工作,但不能使用FTP。當我嘗試使用JMeter FTP請求採樣器時,我可以在服務器端看到JMeter正在發出一個「PASV」命令,此後不久由於「502 PASV命令不可用」錯誤而失敗。JMeter(Active?)FTP到VLTrader
問題: 如何配置我的JMeter FTP請求採樣器以連接到我的FTP服務器?
情況: 我正在使用JMeter來加載測試我的通信應用程序(Cleo VLTrader)。我是JMeter的新手,能夠使HTTP通信正常工作,但不能使用FTP。當我嘗試使用JMeter FTP請求採樣器時,我可以在服務器端看到JMeter正在發出一個「PASV」命令,此後不久由於「502 PASV命令不可用」錯誤而失敗。JMeter(Active?)FTP到VLTrader
問題: 如何配置我的JMeter FTP請求採樣器以連接到我的FTP服務器?
1.對不起,您只是爲了確保:您是否確保手動FTP連接成功,即不是來自FTP請求在Jmeter腳本中,而是通過控制檯/ Telnet連接或任何FTP客戶端實用程序?
2. FTP被動模式
可能的原因:
由於您的FTP請求PASV命令執行過程中失敗可以假設的根本原因是,你的FTP服務器不支持被動模式而Jmeter的FTP請求默認使用被動模式。
爲確保在從控制檯連接到您的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請求使用的被動模式。
參見例如this解釋兩種模式的差異。
可能的解決方案:
作爲每jmeter sources:
ftp.enterLocalPassiveMode();
切換到被動模式是用於通過缺省,並且沒有可能在FTP Request configuration screen外部設置模式。
但是你可以自己實現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();
也許也是我錯了,在別的地方你的問題的原因隱藏。
希望這會幫助你診斷和解決你的問題。