我有使用JMeter Proxy记录文件上传请求的问题 . 可以使用浏览选项选择文件,按下 SAVE
或 SUBMIT
按钮,页面将刷新并进入初始状态 .
我正在使用以下条件在 On-Premise SharePoint(v2013) Website 上进行负载测试项目,
-
基于表单的身份验证 - 登录和会话cookie与JMeter一起正常运行 .
-
需要传递一些动态变量,如 __EVENTVALIDATION , __VIEWSTATE , __REQUESTDIGEST , __VIEWSTATEGENERATOR ,需要使用 RegEx Extractor in JMeter 从每个请求中提取,并需要作为参数传递给后续的POST请求 .
作为一种解决方法,我使用 BlazeMeter Chrome Extension 来记录文件上传请求,并且可以正确记录所有API调用 . 但是有问题在JMeter中重播它 . 即使所有请求都通过,文件上载也会再次失败 .
- 所有文件上传POST请求都会传递成功响应代码 200 并提供与响应相同的HTML内容,同时在JMeter中重播它,但文件永远不会上传 .
1 回答
如果你是 absolutely 确定你有HTTP Cookie Manager, correlation 工作正常,等等,以便记录文件上传请求,它应该足以将文件放到JMeter的"bin"文件夹,以便HTTP(S) Test Script Recorder找到它 .
确保在重放期间文件存在于JMeter的"bin"文件夹中 . 查看Recording File Uploads with JMeter指南以获得更全面的限制说明 .
如果它没有帮助您的JMeter配置仍然不正确 . 常见的做法是使用嗅探工具(如Fiddler或Wireshark)从真实浏览器和JMeter捕获请求 . 这样,您就可以检查较低级别的请求并识别差异 . 一旦找到原因 - 修改JMeter配置,以便源自JMeter的请求看起来与来自浏览器的请求完全相同 .