将AJAX脚本与JMeter一起使用

时间:2016-12-28 23:16:14

标签: ajax webdriver jmeter

我目前正在使用Jmeter为内部Java网站创建测试样本以进行性能测试。

在创建/记录一些脚本并重新运行它们之后,我发现有些脚本失败了(不是HTTP失败,响应代码是200,所以它是一个成功的HTTP响应,但看起来像服务器端失败)并出现错误“发生意外错误,页面已关闭”。即使在为此应用程序启用高跟踪后,我也无法找出确切的原因。

我发现这个网站对我收集的每个样本(或大部分样本)使用了大量的AJAX请求,并且所有样本都记录了以“.js”结尾的样本。在用Jmeter做了很多关于这个问题的谷歌搜索后,我发现Jmeter没有运行Javascripts,因为这不是浏览器。

很公平,经历了一些更多细节并阅读了许多解决方案,这些解决方案谈论使用Selenium web驱动程序来运行java脚本,并且可以与jmeter一起使用来解决这个问题。但是他们都没有谈到运行javascripts(或Ajax脚本)并让Jmeter运行HTTPS样本的webdriver的确切实现。

我的问题有两个方面:

1)我怎样才能调试我的Jmeter脚本以确认这些错误是由Ajax脚本引起的,没有别的,如果不是Ajax问题,还有什么导致这个“页面关闭错误”

2)如何在相同的测试脚本中运行Java脚本的Web驱动程序和运行http示例的JMeter?

我们非常感谢任何有关相关文件的帮助或指示。目前我完全陷入困境,没有任何解决方案,我可以通过手册阅读。

1 个答案:

答案 0 :(得分:0)

实际上你有两个选择:

  1. 使用WebDriver Sampler执行真正的浏览器测试(这可能是非常耗费资源的,因为真正的浏览器占用了大量的CPU和RAM)。
  2. 使用JMeter执行AJAX调用。 JMeter无法执行JavaScript,但可以使用ie HTTP(S) Test Script Recorder记录JavaScript驱动的HTTP请求,并将其重播为JMeter HTTP Request采样器。您需要应用一些自定义配置才能并行执行AJAX请求,请查看How to Load Test AJAX/XHR Enabled Sites With JMeter文章了解详细信息。