【问题标题】:How to properly benchmark / stresstest single-page web application如何正确地对单页 Web 应用程序进行基准测试/压力测试
【发布时间】:2014-04-26 14:47:40
【问题描述】:

我对传统 Web 应用程序的基准测试/压力测试有点熟悉,我发现开始估计它的最大负载相对容易。使用我熟悉的工具(Apache abApache JMeter),我可以粗略估计带有标准应用程序的服务器可以处理的每秒请求数。我可以想出用户故事,创建一个我想检查的页面列表,并分别对它们进行基准测试。网上有很多关于如何从像我这样的新手到高手的信息。

但在我看来,在对单页应用程序进行基准测试时,很多事情都会有所不同。主要入口点是最昂贵的请求,因为用户加载了适当的应用程序体验所需的大部分内容(或者至少在我的应用程序中是这样的)。之后导航到其他地方只是ajax请求,等待json,模板。所以窗口加载的时间不再重要了。

为了增加问题,我无法找到人们如何正确执行此操作的任何资源。

在我的特殊情况下,我有一个用淘汰赛编写的 SPA,并坐在 apache 服务器上(很可能这无关紧要)。我想粗略估计我的应用在特定服务器上可以处理多少用户。我不是在寻找工具推荐(也很好),我在寻找有经验的人来分享他对基准测试过程的见解。

【问题讨论】:

    标签: apache knockout.js benchmarking single-page-application stress-testing


    【解决方案1】:

    我建议您像测试任何其他 Web 应用程序一样测试此应用程序,正如您所说 - 确定常见用例,为它们准备脚本,以适当的组合运行并分析结果。

    由于不同的原因,Web 应用程序可能会以多种不同的方式出现故障。您推测第一页负载很重,其余的只是小 ajax。根据经验,我可以告诉你,这有时会产生误导——例如,你会发现重页来自缓存,而服务器并没有为此努力,但是一个小的 ajax 响应需要大量的计算能力或长时间运行数据库查询或代码中有一些锁定导致它在负载下中断或变慢 - 这就是我们进行负载测试的原因。

    您可以使用任何负载测试工具来执行此操作,最好是能够处理具有许多动态值的那些类型的脚本的工具。我个人的偏好是RadView的WebLOAD

    【讨论】:

      【解决方案2】:

      我正在处理类似的场景,SPA 应用程序加载第一页,然后通过请求其他 html 页面和/或 Web 服务调用来获取数据。

      我的目标是对 Web 服务器和数据库服务器进行压力测试。

      我的解决方案是只为那些 html 页面(性能非常低的问题,IMO,因为它们是静态的,并且可以在浏览器中缓存很长时间)和 Web 服务调用请求创建请求。最大的负载将来自通过网络服务调用请求的数据/处理请求。

      使用 fiddler 等工具捕获对 html 和 Web 服务调用的所有请求,并使用任何负载测试工具(如 JMeter)来运行这些请求,使用尽可能多的虚拟用户来测试您的应用程序。

      【讨论】:

        猜你喜欢
        • 2021-01-18
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 2010-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多