如何使用JMeter在JSF应用程序中上传文件

时间:2018-11-14 05:44:48

标签: java jsf testing upload jmeter

这一次我被要求还使用JMeter在JSF应用程序中创建用于文件上传的测试脚本。 blazemeter生成的脚本如下:

generated script for input form

围起来的值是文件名。我注意到该参数不是在“文件上传”选项卡下创建的,因此我还尝试了在将参数作为JMeter中的Mime类型上传时,在应用程序日志中使用生成的内容类型将参数移至“文件上传”选项卡:

Jmeter file upload tab

Generated content type

但是当我第一次尝试脚本时文件名参数仍在“参数”选项卡下(根据localhost应用程序日志,文件名为null)时,结果相同:

Application log indicating that file name is null

文件上传的UI是这个。用户单击浏览按钮,选择一个文件,然后在输入字段(导入文件)中显示文件名。然后,用户将单击“导入”按钮来提交表单:

File upload UI

我错过了一步还是做错了什么?

先谢谢您!任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您建立文件上传请求的方式可能是错误的,如果您想继续进行手动实验,我建议您使用Wireshark之类的嗅探工具来比较JMeter和真实浏览器发送的请求。除${VIEWSTATE}外,其他请求应完全相同。

一个更简单的选择是使用HTTP(S) Test Script Recorder重新记录请求(您只能记录一个请求)。

  1. 准备进行记录的JMeter。最简单的方法是使用JMeter Templates功能

    • 从JMeter主菜单中选择File -> Templates -> Recording,然后单击“创建”

      enter image description here

    • 展开HTTP(S)测试脚本记录器,然后单击“开始”

      enter image description here

  2. 准备浏览器进行记录,请参考浏览器文档,以使用localhost作为代理主机并使用8888作为代理端口来设置代理,需要设置代理< strong>适用于所有协议,没有没有排除。 Mozilla Firefox(唯一的免费和开放源代码的流行浏览器,此外,它具有独立的代理配置(并非源自操作系统))的相关配置为:

    enter image description here

  3. 将要记录的文件复制到JMeter安装的“ bin”文件夹中。如果忽略此步骤,JMeter将无法正确记录该请求。如果需要,请参见Recording File Uploads with JMeter文章以获取更多详细信息
  4. 在浏览器中执行请求-相关的HTTP Request采样器将在Recording Controller下生成