2014-01-21 30 views
0

我試圖使用端口8888在JMeter中記錄文件上載,但是當使用JMeter作爲代理(記錄控制器和HTTP(S)測試腳本記錄器)時文件無法上載。我也嘗試從JMeter中運行這個選擇「開始」並查看我剛纔記錄在查看結果樹偵聽器中。以這種方式運行時,我在View Results樹偵聽器中收到了文件上傳行的500錯誤。在使用JMeter錄製期間文件上傳失敗

因此,我在執行文件上傳時運行了Charles網絡代理,以查看是否發生了相同的事情。它沒。我能夠成功上傳通過查爾斯網絡代理在同一端口8888上的文件。

此外,我拿出所有代理,併成功上傳文件。

只有當我使用JMeter作爲代理時,上傳文件時是否有問題。

在JMeter中,第一次運行後沒有任何更改,然後嘗試更改許多設置,如實現,內容編碼,瀏覽器兼容頭文件,檢索所有嵌入式資源以及其他許多設置,以查看這會有所幫助,但它沒有。

所以,我的直覺告訴我,有一個設置不正確。

我發現這篇文章談到改變在HTTP請求默認值中使用「Java」。 (Unable to upload image/file when using Jmeter HTTP Proxy server)雖然我嘗試過,但這並沒有幫助我。 我發現這篇文章也提到了一些其他類型的東西(Unable to record an upload file scenario in JMeter though it is possible by manual effort with specific browser settings)。我沒有檢查對Charles的標題,他們看起來是一樣的。

任何想法?下面

=============編輯被加入測試計劃的屏幕截圖===============

Screen shot of test plan

回答

0

所以,顯然,我必須從「路徑」行中刪除參數,並將它們移動到「發送帶請求的參數:」參數上,以使我有500錯誤的行(屏幕中突出顯示的行上面附上的鏡頭)。

總之,這裏是發生了什麼事。當我使用記錄控制器和HTTP(S)測試腳本記錄器使用JMeter記錄文件上傳時,JMeter已將JMeter爲我記錄的許多行上的所有參數放在「路徑」字段中。我甚至都沒有想到JMeter自動爲我做了什麼。因此,在我刪除了「路徑」字段中除「/」之外的所有文本,並在「發送帶請求的參數」下的每個參數中添加了一個參數之後,我收到了一條「200」狀態碼,問題。我也參加了其他所有的行,並對這些參數進行了相同的更改。我仍然不確定文件上傳是否真正起作用,但我現在不在意這一點,因爲我確實得到了一個「200」的問題。這足以讓我繼續前進...... :-)。

4

在錄製過程中,您需要將要上傳的文件放在jmeter/bin文件夾中。

這是由於瀏覽器沒有傳輸完整路徑的一些限制。

+0

這解決了我的錯誤在AjaxFileUploadHandler.axd行。但是,現在/?contextKey = ....行仍然有500錯誤。之前,我必須通過調整文件路徑來手動修復AjaxFileUploadHandler.axd行來查找文件。這次我不需要解決這個問題。但是,我被困在同一個地方,下一行有500個錯誤,這是/?contextkey = ...的行。 – toolmania1

+1

SO中的過程是如果它解決了第一個問題,則接受/ upvote答案。然後你開始另一個問題,並提供詳細信息,URL,Stacktrace .... – pmpm

+0

這是誤導我的一部分。原來的問題依然存在。我從來沒有在AjaxFileUploadHandler行上發生500錯誤。我有一個文件未找到錯誤。但是,在我開始這篇文章之前,我已經通過手動更改文件路徑來解決這個問題。我沒有開始這個帖子的文件未找到錯誤。我肯定會給你點數/贊成票,但是當500錯誤的原始問題仍然存在時,我還應該這樣做嗎? – toolmania1