我想负荷测试一个轨道应用程序使用创建属.一个关键应用程序的一部分涉及一种形式,包括两个文本的投入及文件上传。它的工作现在一浏览器,但是当我尝试后,页面,在创建属、轨道是省的所有部分分段的形式作为临时文件,其原因导致的东西,打破当它在寻找一串,并得到一个临时文件代替。

它出现的差异是,从一浏览器,这块分段的要求,其中包含的文本输入这样的:

-----------------------------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是

  1. 评论了第3次缔约方图书馆检查build.xml 文件。

  2. 复制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经理在请求和被 能够成功地上传所需的媒体多次我们想要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top