【问题标题】:How to performance test an AngularJS Web Application?如何对 AngularJS Web 应用程序进行性能测试?
【发布时间】:2015-03-28 23:36:00
【问题描述】:

我以前主要使用 JMeter 脚本在网站上进行性能测试。

然而,越来越多的项目是使用前端 MVC 构建的,例如 AngularJS,并且当前项目正在通过角度视图文件、REST 调用等加载其所有内容。 不幸的是,JMeter 不执行任何 javascript,因此我的负载测试仅在(400 毫秒)内返回了主页。 实际上,在浏览器中加载实际上需要几秒钟。当我检查响应数据时,由于 Angular,它还没有包含任何数据。

而不是调查网络流量并单独加载每个组件(例如 profile.html、notification.html、REST 调用等)。市场上是否有类似于执行 JMeter 脚本但考虑到由于 javascript 执行和加载外部资源的产品或我可以遵循的最佳案例?

(我不打算分析 javascript 执行时间。这仍然是为了测试背后的基础设施是否能够为 xyz 并发用户提供服务)

【问题讨论】:

    标签: angularjs jmeter performance-testing


    【解决方案1】:

    虽然 JMeter 无法执行客户端 JavaScript,但它可以通过 HTTP(S) Test Script Recorder 记录相关请求。记录后,您应该能够使用 JMeter 的 Transaction Controller 将所有独立请求合并为一个“聚合”

    如果由于某些原因这种简单的方法对您不起作用,请查看How to Load Test AJAX/XHR Enabled Sites With JMeter 以获取更多选项和线索。

    【讨论】:

      【解决方案2】:

      我使用 Chrome 开发工具在网络应用程序中进行此类性能测试。 我建议您阅读 Chrome 分析文档 (https://developer.chrome.com/devtools/docs/javascript-memory-profiling)。 goolge 文档中 Performance and Profiling 的所有部分都非常好!

      【讨论】:

      • 抱歉,这不是我想要的。这与分析脚本无关。
      【解决方案3】:

      您可以尝试将“用作监视器”选项用于您从测试中触发的请求。

      http://jmeter.apache.org/usermanual/build-monitor-test-plan.html

      不过,它们是性能杀手。另一种选择是使用侦听器“将响应保存到文件”来查看是否传递了最终 HTML。它不应该给你理想的结果,但它可能会有所帮助。

      如果你想跟踪单个用户的 XHR 性能,你可以尝试使用 Selenium 和 BrowserMob Proxy,但它不是在压力测试下,而是在功能测试下。

      【讨论】:

        【解决方案4】:

        您可以尝试https://github.com/kidk/felt 它是为此特定目的而构建的。

        它使用 PhantomJS/SlimerJS 为网站生成负载,因此您可以像在普通浏览器中一样获得所有 API/JS/CSS 和图像调用。它仍然是一个年轻的项目,但它可能是您正在寻找的解决方案。

        (这是我的个人项目)

        【讨论】:

          猜你喜欢
          • 2019-04-23
          • 2013-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-12
          • 1970-01-01
          相关资源
          最近更新 更多