【问题标题】:Load Testing Javascript on a Webpage在网页上负载测试 Javascript
【发布时间】:2018-05-27 04:35:59
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: javascript jmeter performance-testing load-testing gatling


    【解决方案1】:

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

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

    【讨论】:

    • 每个支持 GUI 虚拟用户的工具都可以选择运行完整的浏览器。当 Javascript 在浏览器中运行时,这本质上是一个需要解决的单个用户问题。而且,如果您在每个主机上运行数十或数百个实际浏览器,那么您用于在浏览器实例内执行 JavaScript 的资源将与单个用户的资源池不匹配,因为 JavaScript 在特定主机上的执行看起来会是什么样子
    【解决方案2】:

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

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

    2. 服务器端影响是下载 JavaScript 并上传结果的事实,您应该能够使用 JMeter 的HTTP Request 采样器模拟相应的调用,查看Performance Testing: Upload and Download Scenarios with Apache JMeter 文章了解更多详细信息。

    【讨论】:

      【解决方案3】:

      查看每个浏览器中开发人员工具中内置的 JavaScript 分析器。这是一个与浏览器/操作系统/机器/运行应用程序/浏览器扩展问题的单一定义相关的问题,而不是多用户性能之一

      【讨论】:

        【解决方案4】:

        不确定它是否适合描述的用例,但也有https://github.com/anywhichway/benchtest

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-30
          • 1970-01-01
          相关资源
          最近更新 更多