我想在 JMeter 中执行 Ajax 请求。我用 JMeter 和 BlazeMeter 记录了我的测试计划,但没有一个可以处理 Ajax 请求。我该如何解决我的问题?
或者是否有任何工具可以发送并发 Ajax 请求?
在此先感谢,马
我想在 JMeter 中执行 Ajax 请求。我用 JMeter 和 BlazeMeter 记录了我的测试计划,但没有一个可以处理 Ajax 请求。我该如何解决我的问题?
或者是否有任何工具可以发送并发 Ajax 请求?
在此先感谢,马
默认情况下,JMeter 不能模拟 Ajax 请求,因为它不处理.js
文件(从 3.1 版本开始)。您必须为 AJAX 请求显式添加请求(HTTP 采样器)。
使用Network
浏览器的选项卡(F12 选项)并按 过滤流量xhr
,仅显示 AJAX 请求。将这些请求作为 HTTP 采样器添加到脚本中您在测试计划中需要的位置。
浏览器可以处理.js
文件,因此 AJAX 请求是从浏览器发送的。当您使用 记录脚本时HTTP Test Script Recorder
,当您使用浏览器进行导航时,即使是 AJAX 请求(源自 js 文件)也将被添加/记录到测试计划中。
由于 JMeter 由于限制无法处理.js
文件,因此如果您正在构建Test Plan
没有HTTP Test Script Recorder
.
注意:如果您使用的是HTTP Test Script Recorder
,则无需手动添加它们,因为它们已经记录在测试计划中。
您可以通过使用 JMeter Proxy 记录 http 流量来做到这一点
http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf
但只能重放相同的流量,会话、cookie 可能会出现问题......更好的解决方案是使用 WebDriver
https://jmeter-plugins.org/wiki/WebDriverTutorial/
https://jmeter-plugins.org/wiki/PluginInstall/
所需的包是https://jmeter-plugins.org/files/packages/jpgc-webdriver-1.4.0.zip
这是不可能的,因为当前不支持启动比线程组中最初定义的更多的线程,该功能被跟踪为Bug 53159。AJAX 请求是“正常”的 HTTP 请求,因此 JMeter 可以记录和重放它们,但是当涉及到异步执行时 - 你现在还不能这样做。解决方法选项位于:
在使用 JMeter 代理记录采样器后,我遇到了同样的问题。答案在这篇博文中:https ://lincolnloop.com/blog/load-testing-jmeter-part-1-getting-started/ - 请参阅 Ajax 请求部分。
为 ajax 请求添加 HTTP 标头管理器并确保您正在发送X-Requested-With:XMLHttpRequest
标头。