使用JMeter上载文件时,无法生成包含WebkitFormBoundaryxxxxxxxxxx的内容类型

hof1towb  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(235)

我正在为一个基于Windows身份验证的应用程序创建性能测试。测试计划设计如下:

Test Plan
   HTTP Cookie Manager
   HTTP Authorization Manager
   Thread Group
       HTTP Request 1
       HTTP Request 2

其中一个HTTP示例是一个文件上传场景。当我使用Chrome开发脚本时,我观察到当文件上传时,一个名为Content-Type的请求头被发送到服务器。请求头类似于以下内容:

Content-Type = Multipart/form-data; boundary=----WebkitFormBoundaryxxxxxxxxxx

当我执行这个脚本时,我发现JMeter生成的Content-Type类似于“multipart/form-data; boundary=RCQkexJjLBScxK26S_Rtp513mi4RFrEK4C'。请注意边界部分。而Chrome生成的内容类型类似于多部分/表单数据;我不确定应该做些什么来使JMeter生成具有WebKitFormBoundary的边界。

6ioyuze2

6ioyuze21#

只要在multipart request entity的多个部分中使用相同的边界,边界内的内容就没有关系
下面是RFC中的一个示例:

From: Nathaniel Borenstein <nsb@bellcore.com> 
 To:  Ned Freed <ned@innosoft.com> 
 Subject: Sample message 
 MIME-Version: 1.0 
 Content-type: multipart/mixed; boundary="simple 
 boundary" 

 This is the preamble.  It is to be ignored, though it 
 is a handy place for mail composers to include an 
 explanatory note to non-MIME compliant readers. 
 --simple boundary 

 This is implicitly typed plain ASCII text. 
 It does NOT end with a linebreak. 
 --simple boundary 
 Content-type: text/plain; charset=us-ascii 

 This is explicitly typed plain ASCII text. 
 It DOES end with a linebreak. 

 --simple boundary-- 
 This is the epilogue.  It is also to be ignored.

Chrome会生成包含WebkitFormBoundary的边界,因为Chrome是基于WebKit引擎构建的,而Google借用了苹果的WebKit引擎,而苹果又借用了KHTML project的WebKit引擎
只要边界长度不超过70个字符、开头有破折号等,边界是什么都无关紧要
您有两个选项:
1.使用HTTP Header Manager设置您自己的自定义边界,其中包含您想要的任何内容。
1.或者,只需在HTTP请求采样器中勾选“Use multipart/form-data”,并在“Files Upload”选项卡中提供您要上传的文件的完整或相对路径-- JMeter将处理其余的工作。

相关问题