在网页上进行负载测试 Javascript

Load Testing Javascript on a Webpage

我目前正在对我公司的新网页进行负载测试,并使用 JMeter 来完成这项任务。我们有一个评估,可以将 javascript 本地下载到用户机器上,一旦完成的测试被上传回数据库,他们就可以进行测试。

我遇到的问题是,JMeter 不是浏览器并且不与 javascript 交互,这是有据可查的。我们需要一种方法来测试请求浏览到页面评估所花费的时间以及拉取所需的时间。还需要在特定时间段内增加请求量,以便我们可以确定服务器崩溃的时间点。

我也尝试过使用 Gatling,但我 运行 遇到了同样的问题。还有其他人 运行 遇到过这些问题吗?他们是如何解决这个问题的?

提前致谢!

很少有工具 运行 在执行负载测试时在 client/VU 线程中下载 JS 代码,主要是出于性能原因。您可以尝试使用 Selenium Grid 或一些基于它的在线服务,例如 https://www.loadbooster.com/ 或 Blazemeter,但是如果您想 运行 在您自己的环境中进行测试,Selenium Grid 可能是您唯一的选择。

另一种方法是在编写负载测试场景脚本时模拟 JS 客户端代码。在某种程度上,许多工具都可以做到这一点,但为了使现有 JS 代码的翻译更容易,我会选择一个提供真正脚本语言的工具,例如Grinder、Locust、Wrk 或 k6(或可能是 Gatling)。 k6 可能是最简单的,因为您在 Javascript 中编写脚本,因此翻译客户端 JS 代码的工作应该会少一些。

查看每个浏览器中开发人员工具内的内置 JavaScript 探查器。这是一个与 browser/os/machine/running Apps/browser 扩展问题的单一定义相关的问题,而不是多用户性能问题

您需要将测试分为 2 个主要区域:

  1. JavaScript 处理仅在客户端发生,您需要单独对其进行测试,大多数现代网络浏览器都带有开发人员工具,可以测试 JavaScript 执行的性能:

  2. 服务器端影响是下载 JavaScript 和上传结果的事实,您应该能够使用 JMeter 的 HTTP Request sampler, check out Performance Testing: Upload and Download Scenarios with Apache JMeter 文章模拟相应的调用以获取更多详细信息。