2017-03-20 34 views
1

我在嘗試上傳JMeter 3.1中的文件時遇到問題。 在HTTP請求中,我選中了「用戶多部分/表單數據用於POST」選項的POST請求。然後我有文件路徑,參數名稱和MIME類型設置,沒有問題。JMeter 3.1 - 上傳文件問題

問題是腳本正在JMeter 2.13上工作,但在3.0或3.1上運行時仍會失敗。響應代碼爲200,但在預期的文本「File successfully uploaded」上失敗。

2.13和3.1之間的唯一區別在於3.1在Conent-Type請求標題中添加了字符集值(請參閱附加的屏幕截圖)。

JMeter 2.13

Jmeter 3.1

提前感謝!

+0

你的斷言配置是什麼?另外,請在「文件路徑」中檢查文件的路徑。 –

+0

在聲明中,我只是驗證響應消息,沒有問題。而文件的路徑是好的,因爲如果沒有,我會得到_FileNotFoundException_,情況並非如此。 – uru917

回答

1

我的期望是,你有不同的HTTP Client Implementations

HTTP請求 這已被使用一個實現下拉框,選擇HTTP協議實現:

的Java 使用由JVM提供的HTTP實現。與HttpClient實現相比,這有一些限制 - 參見下文。

HTTPClient3.1 (DEPRECATED SINCE 3.0)使用Apache Commons HttpClient 3.1。這不再被開發,並且在未來的JMeter發行版中將不再支持它。

HTTPClient4 使用Apache HttpComponents HttpClient 4.x.

空白值 無法對HTTP取樣的實施,使依賴於HTTP請求默認值(如果存在)或在jmeter.properties定義jmeter.httpsampler財產

確保您使用的是相同的這兩個JMeter版本都會得到相同的行爲。如果該值爲空白,您可以檢查jmeter.httpsampler屬性值jmeter.properties和/或user.properties文件。

您可以使用HTTP Request Defaults快速更改所有采樣器的實施。

+0

感謝您的快速回復。但是,我已經在使用HTTPClient4實現來使用HTTP請求默認值。我認爲問題在於HTTP請求中的_Content encoding_,我已將其設置爲空,但請求將其作爲** charset = US-ASCII **發送。對此有何評論?謝謝。 – uru917

+0

如果您將HTTP請求採樣器的「內容編碼」字段留空,則2.13和3.1版本都會添加「US-ASCII」字符集。 –

+0

你確定嗎?請看截圖,US-ASCII僅在3.1中添加 – uru917