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

时间:2016-01-22 03:31:25

标签: jmeter

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

有没有人让我知道,如何通过JMeter对Ajax调用进行负载测试!

2 个答案:

答案 0 :(得分:0)

JMeter不是浏览器,因此既不呈现响应也不执行JavaScript。但它能够捕获AJAX请求,并且由您决定如何重放它们。

可能的请求失败有多种原因:如丢失或硬编码参数,缺少标题等,您可以将View Results Tree监听器添加到测试计划中,以便查看搜索请求和响应详细信息。排除这种情况的唯一方法是使用嗅探工具(如Wireshark)捕获源自JMeter和真实浏览器的相同场景,比较请求并相应地配置JMeter。

请参阅How to Load Test AJAX/XHR Enabled Sites With JMeter了解所描述的负载测试AJAX应用程序的一些方法。

答案 1 :(得分:0)

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

  • 从使用AJAX的页面中提取此标记(XPath Extractor是最有效的方法)
  • 使用嗅探器工具或Chrome网络记录器来捕获随请求发送的所有参数(确保您已设置"方法"到POST)
  • 设置" X-Requested-With"标题的值为" XMLHttpRequest"和"内容类型" to" application / x-www-form-urlencoded"在您的AJAX Post Request采样器的HTTP标头管理器中
  • 设置" X-Request-Verification-Token"您已提取的VerificationToken值
相关问题