JMeter 脚本:未从响应代码中获取动态值

JMeter Scripting: Not getting the dynamic value from response code

我在 HP Loadrunner 方面经验丰富,但在 Jmeter 方面是新手。 我最近在 Jmeter 3.0 中录制了一个脚本,其中一个步骤是上传一个 .pdf 文件。这是一个两步过程:

步骤 1> 在上传时 window 单击浏览从本地驱动器找到 pdf 文件。完成后,服务器将文件放在后端的临时目录中,并为其创建元数据(动态值)

仅供参考:我将 PDF 文件放在本地文件夹中:"Documents\apache-jmeter-3.0\bin\"

步骤 2> 指定本地文件路径(上述步骤)并单击按钮 "Upload File" 后,文件实际上会上传到服务器并永久存储。

在这一步,我需要提供动态值(元数据)才能成功提交请求。

我遇到的问题是 Jmeter 没有在上传过程的第 1 步返回元数据(或动态值)-

Screenshot: Request/Response details from Jmeter (Step-1)

我在 Vugen 12.53 中记录了相同的步骤,它返回了第 1 步的动态值 -

Screenshot: Request/Response details from Vugen (Step-1)

有人可以帮忙吗? 谢谢!

我看到 LoadRunner 和 JMeter 配置在文件上传块时不匹配,我相信你应该修改 Files Upload 部分配置,如:

  • 文件路径: PDF 文件的完整路径。如果您放入 JMeter 的 "bin" 文件夹中,它可能只是 PerfTest_file_1.pdf
  • 参数名称:这个人是最重要的,这就是你似乎有冲突的地方。查看您命名的 LoadRunner 屏幕截图

    "Name=file", "Value=blob\PerfTest_file_1.pdf", "File=Yes", ENDITEM,
    

    并且在 JMeter 中出于某种原因您将此 "Name" 位设置为 "blob"。我想正确的设置是 "file":

其他设置好像没问题。

今后为了避免这种情况,您可以只记录您的测试场景。您需要将要上传的文件放在 JMeter 的 "bin" 文件夹中,以便它可以在捕获文件上传请求时找到它。

参考文献:

以防万一,这就是请求 header 在 JMeter 中的样子-

Screenshot: JMeter Request Header

解决方案:

只需将“实施”选择为“Java”或“HttpClient3.1" 解决了问题。

*注意事项:

  • 在 "File Path" 字段中,您需要提供本地驱动器 ("C:/user/Documents/...PerfTest_file_1.pdf") 中文件位置的完整路径或将 PDF 文件放在 "bin" Jmeter 应用程序文件夹的文件夹,只需提供文件名 (PerfTest_file_1.pdf) 作为路径

  • File”的参数值(在我的例子中 "blob")应该与“Parameter Name" 用于要附加的文件*