在没有WebDriver的情况下通过JMeter对AJAX调用进行性能测试

在没有WebDriver的情况下通过JMeter对AJAX调用进行性能测试,jmeter,Jmeter,我已经实现了一个web应用程序。在这个应用程序中,我们有一个起始页。 在这个起始页中,我们有一个搜索功能,它是一个ajax调用,用于呈现特定组件。 对于这个页面,我必须执行负载测试。我尝试使用录制逻辑控制器在浏览器中录制操作。当我运行录制的脚本时,搜索功能不起作用。 我不确定这种方法对Ajax调用执行负载测试是否正确 有谁能告诉我,如何通过JMeter对Ajax调用执行负载测试 JMeter不是浏览器,因此它既不呈现响应也不执行JavaScript。不过,它能够捕获AJAX请求,如何重播这些请求

我已经实现了一个web应用程序。在这个应用程序中,我们有一个起始页。 在这个起始页中,我们有一个搜索功能,它是一个ajax调用,用于呈现特定组件。 对于这个页面,我必须执行负载测试。我尝试使用录制逻辑控制器在浏览器中录制操作。当我运行录制的脚本时,搜索功能不起作用。 我不确定这种方法对Ajax调用执行负载测试是否正确


有谁能告诉我,如何通过JMeter对Ajax调用执行负载测试

JMeter不是浏览器,因此它既不呈现响应也不执行JavaScript。不过,它能够捕获AJAX请求,如何重播这些请求取决于您

可能的请求失败有多种原因:如缺少或硬编码参数、缺少标题等,您可以将侦听器添加到测试计划中,以便查看搜索请求和响应的详细信息。解决这个问题的唯一方法是使用嗅探器工具捕获来自JMeter和真实浏览器的相同场景,例如,比较请求并相应地配置JMeter


有关所描述的AJAX应用程序负载测试的一些方法,请参阅。

AJAX通常以POST请求的形式发送,其中u AjaxRequestVerificationToken作为参数之一。要成功发送AJAX请求,您需要:

  • 从使用AJAX的页面中提取这个令牌(XPath提取器是最有效的方法)
  • 使用嗅探工具或Chrome网络记录器捕获随请求发送的所有参数(确保已将“方法”设置为POST)
  • 在AJAX Post请求采样器的HTTP头管理器中,将“X-Requested-With”头的值设置为“XMLHttpRequest”,将“Content Type”设置为“application/X-www-form-urlencoded”
  • 将“X-Request-Verification-Token”值设置为已提取的VerificationToken