2017-06-13 52 views
-1

以下是HTTP POST请求中的设置。我尝试将客户端实现更改为所有可能的选项 - Java,空白,HTTPClient4。但是,没有运气无法通过Jmeter中的HTTP请求上传文件

POST 
http://192.168.7.101/R3.Web/File/SaveFileentityID=Contact&entityIId=0&companyId=PRGDATA 

POST data: 
--79pPqMQy27etoiZ9KD_ZvALl72vJyd 
Content-Disposition: form-data; name="excelupload"; filename="R3 Product Backlog_V2.xlsx" 
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

<actual file content, not shown here> 
--79pPqMQy27etoiZ9KD_ZvALl72vJyd-- 


[no cookies] 

Request Headers: 
Connection: keep-alive 
Origin: http://192.168.7.101 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 
Content-Type: multipart/form-data 
Accept: */* 
Referer: http://192.168.7.101/R3.Web/Account/AccountAccessWizard 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 
Connection: keep-alive 
Content-Length: 23562 
Host: 192.168.7.101 

我得到如下回应

isSuccess:假

如果我通过浏览器的同样的要求,它的工作原理。请让我知道如果 我需要更改设置。

HTTP标头Manager的详细信息:

Origin http://${host} 
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 
Content-Type multipart/form-data 
Accept */* 
Referer http://${host}/R3.Web/Account/AccountAccessWizard 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.8 
Host ${host} 
Connection keep-alive 

回答

0

创建一个文件上传测试场景的最简单方法是使用JMeter的HTTP(S) Test Script Recorder

  1. 副本,你会被上传到JMeter的文件“彬只是记录它“文件夹
  2. 启动HTTP(S)测试脚本记录器
  3. 在浏览器中执行文件上载
  4. 停止HTTP(S)测试脚本记录器
  5. 在脚本中使用生成的HTTP Request采样器。

请参阅Recording File Uploads with JMeter文章的更详细的说明,如果需要的话。


如果上传仍然不工作首先要做的是检查jmeter.log下测试日志文件和应用程序。

如果没有任何可疑的地方 - 请使用嗅探器工具(如WiresharkFiddler)捕获JMeter和真实浏览器发送的请求并进行比较。通过修改JMeter的配置来检测并消除差异,与浏览器完全匹配。