2016-08-10 135 views
1

我想通過使用多部分數據體的JMeter構造一個HTTP請求。JMeter多部分JSON請求表單數據

我有一個HTTP標頭管理器,其具有COntent-Type設置爲multipart/form-data;邊界= AaB03x。我選擇了「使用多部分/表單數據進行POST」。

我再有作爲創建的數據體,

`-----------------------------AaB03x 
Content-Type: application/json 
Content-Disposition: form-data; name="part1" 
{"jsonKey1": "JsonValue1" } 

-----------------------------AaB03x 
Content-Type: application/json 
Content-Disposition: form-data; name="part2" 
{ 
    "jsonKey2": "JsonValue2" 
} 

-----------------------------AaB03x 
Content-Type: application/octet-stream 
Content-Disposition: form-data; name="part3" 
File Content here!!!! 

-----------------------------AaB03x` 

當我運行它,我看到該請求犯規正確發送的身體,而是僅僅發送一些隨機數據,

POST數據:

--vKOghkU7riRQbaANmmGpMs7j9TxCTUp3S2T0vE-- 

並給出錯誤響應,

`{"errorMsg":"Unable read headers from MultipartStream.","messageCode":"UnableReadHeadersFromMultipartStream","httpStat  us":"BAD_REQUEST","requestName":"RequestName"}` 

我的第二個問題是: 請求的第3部分發送文件上傳。我能以某種方式傳遞文件路徑嗎?

回答

0
  1. 給你設定自己的邊界,建立自己的請求,以手動我相信你需要取消選中Use multipart/form-data for POSTHTTP Request Sampler
  2. 如果你的文件的編碼是不是很「異域風情」,你可以嘗試使用__FileToString()功能只是而不是File Content here!!!!

展望RFC 7578,看來你還需要一個尾隨--在最後一行

+0

取消勾選的multipart/form-data的沒有的伎倆。 – user2626431

0

你應該嘗試發送JSON數據作爲參數的結束。還要將文件路徑放在該部分中......甚至有些服務器實際上並不需要明確聲明MIME類型,您可以使用一些在線工具(如this one)來檢查您的文件路徑。

你的HTTP請求可能看起來像smethnig:

enter image description here

+0

是否可以將單獨的標題傳遞給每個部分? – user2626431

+1

@Dmitrit @Ivan:這個問題與meis有關,我無法修改jMeter填充的一些頭文件。例如,我允許jMeter填充「Content-Type:multipart/form-data;邊界= ZWOOhTp6nROvG_qX2xFawuP8Y8VG97a0ICnMBy6L;字符集= US-ASCII''。但我不希望字符集被指定。另一方面,如果我在標題管理器中將Content-Type定義爲標題,那麼我指定的多部分邊界不會在請求體中使用。 – user2626431