-
20-09-2019 - |
题
我想负荷测试一个轨道应用程序使用创建属.一个关键应用程序的一部分涉及一种形式,包括两个文本的投入及文件上传。它的工作现在一浏览器,但是当我尝试后,页面,在创建属、轨道是省的所有部分分段的形式作为临时文件,其原因导致的东西,打破当它在寻找一串,并得到一个临时文件代替。
它出现的差异是,从一浏览器,这块分段的要求,其中包含的文本输入这样的:
-----------------------------7d93b4186074c
Content-Disposition: form-data; name="field_name"
test
-----------------------------7d93b4186074c
虽然从创建属它看起来像这样:
-----------------------------7d159c1302d0y0
Content-Disposition: form-data; name="field_name"
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
test
-----------------------------7d159c1302d0y0
因此很明显轨看到前和将其解释为纯文本价值,并把它作为一个字符串,但认为后者并将其保存到一个临时文件。
我没有能够找到一个设置,以说服创建属不发送附加标题的分段的形式为非文件领域。
是否有办法说服轨忽视这些标题和对待文/纯文本作为串而不是文字的文件吗?或者一个快速的方式把一个过滤器在我的控制,这将带的额外头?
或者,是否有更好的工具装载试验的一个轨道应用程序,包括文件上传?
解决方案 3
可能有一个更好的办法,但是我结束了增加一个快速过滤器转text/plain临时文件进串的内的散列参数:
def change_text_files_to_strings
params.each_pair do |key, value|
params[key] = value.read if (value.class.to_s=='Tempfile' && value.content_type.start_with?('text/plain') )
end
end
通过这种方式,事实证明,创建属于在这里正确的,并且不正确的轨道:根据RFC2388,每个项目的一个分段的要求应该有一个内容类型(不仅仅是文件),所以轨道真的不应该存在使用的一种内容类型的标题,以确定它是否是一个文件。啊好。
其他提示
原来这几天你可以打勾"使用浏览器相容的标题"以在创建属.可能已经保存自己的地狱了大量的时间有:-)
因此,我定制的创建属的分段要求发布的一部分的源代码,把出的请求,轨理解。变化是很容易的,如下所示,但创建汇编Java/创建属环境的需要时间。:(
不管怎么说,现在我可以成功地上传文件,通过多部分后通过创建属.
在src/protocol/http/org/apache/jmeter/protocol/http/sampler/PostWriter.java
writeStartFileMultipart()
//writeln(out, "Content-Transfer-Encoding: binary"); // $NON-NLS-1$
writeFormMultipart()
/*****
writeln(out, "Content-Type: text/plain; charset=" + charSet); // $NON-NLS-1$
writeln(out, "Content-Transfer-Encoding: 8bit"); // $NON-NLS-1$
*****/
P.S.
一个尖尖端创造环境,为2.4是
评论了第3次缔约方图书馆检查build.xml 文件。
复制lib/xstream-1.3.1.jar 从存档的二进制转lib/目录
我还用的上述解决方案作为ColdFusion是发送类似的标题(减的内容传送编码)与每一块的形式的数据。我不知道如果有一个更好的办法。
编辑:任何人都知道,如果这已经被固定在轨3?
什么样的错误,你得到什么?喜欢的东西
NoMethodError (undefined method `rewind' for "1":String):
有一个问题架,这可以解释你的问题。看看 https://github.com/rack/rack/issuesearch?state=open&q=rewind#issue/116
我们也有一个类似的问题,除了上述答案,我们也有关联的 X-CSRF-Token
HTTP Header经理在请求和被
能够成功地上传所需的媒体多次我们想要的。