2016-03-14 21 views
0

我對JMeter還不是很熟悉,也不是貿易程序員。 (我通常是BA/QA,他們瞭解OO編程並參加了一些編程課程。)我正在通過REST服務調用向我們的多租戶數據庫執行API測試。JMeter:POST導入不能像REST客戶端一樣工作

我試圖通過JMeter執行IMPORT並且遇到困難。我能夠通過REST客戶端(如Postman和Advanced REST Client)成功完成它,但是當我嘗試在JMeter中配置它時,它會失敗。

在郵差,配置是:

Postman Import Config

這是的時間成功100%,如圖在數據庫中。

Postman Import Results

在JMeter的,我試圖複製配置如下:

HTTP頭經理

JMeter Header Mgr

HTTP請求

JMeter HTTP Request

對於MIME類型,我已經試過 「應用程序/ vnd.ms-EXCEL」, 「vnd.openxmlformats-officedocument.spreadsheetml.sheet」,和空 - 都沒有成功。

我已經嘗試添加各種組合附加頁眉值沒有成功:

  • 內容處置:應用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • 內容類型:應用/vnd.ms-excel

任何想法,意見,見解,可能的解決方案,表示讚賞。

回答

1

當你與JMeter和瀏覽器或其他工具不一致時,找出差異的最好方法是用嗅探器(如Wireshark)捕獲來自JMeter和瀏覽器(或其他工具)的請求,檢測並解決差異。

在問候你的情況下,JMeter的:

  1. 刪除HTTP頭管理器(或至少Content-Type: multipart/form-data頭)
  2. 在HTTP請求:

    • 檢查Use multipart/form-data for POST
    • MIME類型:application/vnd.ms-excel

Performance testing: Upload and Download Scenarios with Apache JMeter文章,關於如何正確模擬文件操作在JMeter測試

+0

謝謝詳細說明。從頭中刪除multipart/form-data並添加MIME類型後,它仍然不起作用。我相信這個問題可能在包含'Content-Type:json'的「父」HTTP頭管理器(在測試計劃級別)和線程組特定的HTTP頭管理器之間,其中'Content-Type:application/vnd.ms- Excel中。我注意到在日誌記錄中邊界沒有被設置。 (例如,'Content-Type:multipart/form-data; boundary = P-oTFP1H-Auu7r0eIScXr7Mfg4dq8MgZMp3haR9c')相反,我得到了'Content-Type:application/vnd.ms-excel'。我會嘗試下載Wireshark。 – David

+0

**更新**:問題出在「父」標題管理器('Content-Type:application/json')和「子」標題管理器之間。 切換「父」標題管理器,導入工作正常。如果我再次切換「父母」,它會失敗。 是否有最佳做法,我不必指定父Header Mgr的內容。在每個線程組中避免這種情況? – David

+0

得到它的工作。 **我必須在測試計劃級別移除Header Mgr,而是將其複製到測試計劃**內的每個線程組。因此,我現在擁有_32次_(每個線程組1個)的'Content-Type:application/json',所以包含導出和導入的線程組可以有獨立的Header Mgrs,級別的線程組。我個人認爲這是不好的做法,但是我不能讓JMeter不會尊重更高級別的小組頭銜管理者。 – David