【问题标题】:Alternatives for automated web application front-end performance testing [closed]自动化 Web 应用程序前端性能测试的替代方案 [关闭]
【发布时间】:2013-09-19 16:14:30
【问题描述】:

我正在寻找一种方法来定期测试我的 Web 应用程序的前端性能。

具体来说,我对解析主机名、从服务器获取响应、下载/呈现/执行资源等所需的时间感兴趣。我还想在交互时衡量这些事情 与应用程序一起使用,而不仅仅是在加载页面时。

我可以在手动与我的 Web 应用程序交互时使用 Firebug 或 Chrome 开发者工具,但我希望这个前端性能测试成为我持续集成过程的一部分。我想有每晚的前端性能测试结果,这样就可以很容易地捕捉到性能回归。这就是为什么我的初步结论之一是我想利用我现有的功能 Selenium/WebDriver 测试套件(或测试套件的子集)。

所以假设我使用 Selenium 与我的 Web 应用程序交互,我真正需要的是一个工具来测量浏览器中的前端性能。

到目前为止,我已经研究了三个选项:

1) browsermob-proxy

browsermob-proxy 是一个开源代理,它使用 HAR 格式捕获性能数据。除了 Java 和 NodeJS 绑定之外,它还提供 HTTP REST API。因为它是一个分析 HTTP 流量的代理,所以它不会给我任何关于浏览器中发生的事情(例如渲染等)的信息,这是我最感兴趣的。

2) WebPagetest

WebPagetest 也是开源软件,可在webpagetest.org 上作为免费云服务使用。设置此服务的私有实例是可能的(并且不太难)。我给它一个 URL,然后我得到该页面加载的性能报告。但是,它不允许我在与应用程序交互时监控应用程序——这很重要——尤其是在一个单页 Web 应用程序中,在客户端有很多事情发生——比如我的。

3) Compuware APM AJAX Edition(以前的 DynaTrace AJAX 版)

Compuware APM AJAX 版是免费(免费)专有软件,它使用浏览器插件在浏览时从浏览器中捕获信息,这意味着它可以在 Selenium 测试套件执行期间自动收集数据。

将其自动化并将其执行集成到持续集成过程中非常容易,但是报告还有很多不足之处。测试结果被分组为“会话”,即从浏览器窗口打开到关闭的时间段。没有随时间比较测试结果的功能,这使得跟踪进度和捕捉回归变得很困难。

Compuware APM AJAX 版是迄今为止我见过的最好的替代品 - 但肯定有更好的选择 -

【问题讨论】:

  • 我认为 AgileLoad 是您的完美解决方案...查看我的答案..

标签: asp.net testing selenium performance-testing qa


【解决方案1】:

如何将 YSlow 和/或 Google Page SpeedSelenium 结合使用。

  1. 创建单独的 firefox 配置文件 - 一份用于 Google Page Speed,一份用于 YSlow。
  2. 在各自的配置文件中安装扩展
  3. 在各自的配置文件中为配置文件和 Page Speed 和 YSlow 安装 Firebug(为每个配置文件单独安装和配置扩展程序)。
  4. 使用 Selenium 加载自定义配置文件

阅读更多 herehere

上面的链接给出了一个想法。 希望这会有所帮助。

【讨论】:

    【解决方案2】:

    Compuware AJAX 版本确实允许比较、长期、分析和 CI 集成,以便随着时间的推移查看构建和功能。有一个与该功能相关的许可证,以及将浏览器端 PurePaths 一直链接回 SQL..

    http://apmblog.compuware.com/2012/09/11/top-performance-mistakes-when-moving-from-test-to-production-supersized-content-2/

    【讨论】:

      【解决方案3】:

      我对这个主题的感觉是,最好的方法是将 javascript 注入页面并让该报告返回有关用户体验的指标。有多种方法可以解决此问题,但它们基本上可以解决为滚动您自己的代码(更多工作但最终获得更好的结果)或使用第三方产品。 New Relic 有一个很好的解决方案。

      这种方法的问题是您仍然需要一些东西来锻炼浏览器才能触发 javascript - 这很难自动化。这就是问题所在,但除此之外,您还有一种可靠、一致、免维护的方法来记录和记录用户体验。

      【讨论】:

      • 我将使用 Selenium/WebDriver 来自动化浏览器,所以这应该不是问题。
      • 有趣的是,WebDriver 声称使用浏览器自己的自动化接口,所以如果使用它构建的脚本将运行页面 javascript,那么您实际上会有一个不错的解决方案。我什至可以自己玩这个。作为奖励,您还可以在网站上线时跟踪用户体验(显然,当有人手动测试时)。
      【解决方案4】:

      我一直致力于在后台运行 WebPagetest 并允许您跟踪前端性能随时间推移的服务。

      http://speedcurve.com

      您可以跟踪并深入了解每个测试的瀑布,以了解您所追求的一些内容。为了捕捉交互性能,WebPagetest 最近还添加了用户计时,因此您可以将简单的 JS 事件添加到您的页面并让它们显示在 WebPagetest 和 SpeedCurve 中。

      http://blog.patrickmeenan.com/2013/07/measuring-performance-of-user-experience.html

      如果它是一个单页应用,那么 Caliper 是新的,看起来很有前途。

      http://caliper.io/

      【讨论】:

        【解决方案5】:

        我最近在寻找如何实施前端性能测试。我还没有实现它,但我打算用 yslow 和 phantomjs http://yslow.org/phantomjs/#screenshots

        【讨论】:

        • 我也打算使用它,但这并不能告诉我与页面交互时的任何性能(例如对表格列进行排序)。
        【解决方案6】:

        首先 - 我使用 browsermob 代理来获取响应时间和代码,但实际上它并没有给你任何像 JS 执行时间这样的东西。 你已经提到了 DynaTrace,所以我不会讨论这个。还有什么——我自己没用过,但我听说有人用httpWatch。它与 C# 集成得非常好,据说能够分析 ajax 调用的性能。

        另外,不要忘记,您可以使用 webdriver 注入 javascript,因此您可以尝试使用 boomerang 或类似的东西。

        【讨论】:

          【解决方案7】:

          http://html5testing.co 将 phantom.js 和 casper.js 一起使用。他们自定义构建了一个测试,使用 webkit 在任何浏览器上与您的应用程序交互。您可以获得带有屏幕截图的报告,可以随时运行测试,它会进行延迟监控,并且您可以查看之前运行的所有测试。

          它不是免费的,但它肯定比你可以用拼凑的东西进行测试的所有时间便宜得多。

          【讨论】:

            【解决方案8】:

            Apache JMeter

            说明:开源负载测试工具:它是一个Java平台 应用。它主要被认为是一种性能测试工具和 它也可以与测试计划集成。除了负载 测试计划,您还可以创建功能测试计划。这个工具有 加载到服务器或网络中以便检查的容量 其性能并分析其在不同条件下的工作情况。 最初,它是为了测试 Web 应用程序而引入的,但 后来它的范围扩大了。在测试中很有用 Servlet、Perl 脚本等资源的功能性能 和 JAVA 对象。需要 JVM 1.4 或更高版本才能运行。

            Apache JMeter 系统要求:适用于 Unix 和 Windows 操作系统
            下载链接Apache JMeter download

            NeoLoad

            说明:负载和性能测试软件:这是一个工具 用于衡量和分析网站的性能。这 性能和最终结果可以通过使用此工具进行评估,并且 可以采取任何进一步的步骤。这可以帮助您提高和 优化 Web 应用程序的性能。本工具分析 通过增加流量来提高 Web 应用程序的性能 可以确定网站和重负载下的性能。 您可以了解应用程序的容量和数量 它可以同时处理的用户。这个工具是由一个 法国公司命名为 Netosys,它是用 JAVA 编写的。它是 提供两种不同的语言;英语和法语。

            NeoLoad 系统要求:此工具在操作上兼容 微软 windows、Linux 和 Solaris 等系统。
            下载链接NeoLoad download

            LoadRunner

            说明:这是一款惠普产品,可用作表演 测试工具。这可以作为 HP 产品从其 HP 软件中购买 分配。此外,它对理解和理解非常有用 确定系统的性能和结果,当有 实际负载。该测试工具的主要吸引力之一 也就是说,它可以同时创建和处理数千个用户。 该工具使您能够收集所有必需的信息 尊重性能,也基于基础设施。这 LoadRunner 包含不同的工具;即,虚拟用户 生成器、控制器、负载生成器和分析。

            LoadRunner 系统要求:Microsoft Windows 和 Linux 是 该测量工具的有利操作系统。
            下载链接LoadRunner download

            加载用户界面

            说明:开源压力测试工具:加载 UI 是另一个 用于测量的开源和负载测试软件 Web 应用程序的性能。该工具在以下情况下有效工作 它与功能测试工具soapUI集成。 LoadUI 是 最灵活和交互式的测试工具。这使您可以 在应用程序运行时创建、配置和更新您的测试 测试。它还通过拖放为用户提供视觉帮助 经验。这不是一个静态性能工具。先进的 分析和报告生成功能允许您检查 即使在应用程序运行时,也可以通过注入新数据来获得实际性能 正在测试。您无需费心重新启动 LoadUI,并且 每次修改或更改应用程序时。它会自动获取 在界面中更新。

            系统要求:跨平台。价格:这个工具是开放的 源应用程序,它是免费提供的,每个人都可以拥有 轻松访问其完整源代码。
            下载链接LoadUI download

            网页加载

            描述:Web应用的负载测试和压力测试工具: 要找出网站的瓶颈,有必要检查 利弊。有许多可用的性能测试工具 用于测量特定 Web 应用程序的性能。网页加载 是一种用于负载测试和压力测试的工具。这个工具 可用于负载测试任何互联网应用程序,例如 Ajax, Adobe Flex、Oracle Forms 等等。通过这个工具,你有 衡量工作绩效及其反应的能力 给用户。这是由 Radview 软件为 Web 应用程序的测试。这个工具是一个著名的奖项 Radview 软件的获取软件。该工具广泛用于 对最大负载测试有很高要求的环境。 该工具为您提供有关功能和功能的清晰信息 Web 应用程序的实际容量。

            WebLOAD 系统要求:跨平台。
            下载链接WebLOAD download

            WAPT

            说明:网站和内网的性能测试工具 应用程序:WAPT 是指 Web 应用程序性能工具。 这些是衡量绩效的尺度或分析工具 任何 Web 应用程序或 Web 相关接口的输出。这些工具 帮助我们衡量任何网络服务的性能,网络 应用程序或任何其他 Web 界面。有了这个工具,你有 在各种情况下测试 Web 应用程序性能的优势 不同的环境和不同的负载条件。 WAPT 提供 关于虚拟用户及其输出的详细信息 负载测试期间的用户。这被认为是最好的成本 用于分析 Web 服务性能的有效工具。这 WAPT 工具可以测试 Web 应用程序的兼容性 浏览器和操作系统。它也用于测试 在某些情况下与 Windows 应用程序兼容。

            WAPT 系统要求:此测试工具需要 Windows 操作系统。
            下载链接WAPT download

            加载程序

            说明:Loadster 是一个基于桌面的高级 HTTP 负载测试 工具。可以使用网络浏览器来记录脚本,这很容易 使用和记录。使用 GUI,您可以修改基本脚本 动态变量来验证响应。通过网络控制 带宽,您可以为您的模拟大型虚拟用户群 应用程序压力测试。执行测试后的 HTML 报告是 生成用于分析。此工具最适合识别性能 应用程序中的瓶颈。

            Loadster 系统要求:Windows 7/Vista/XP
            下载链接Loadster download

            LoadImpact

            说明:LoadImpact是一个负载测试工具,主要用于 基于云的服务。这也有助于网站优化和 即兴发挥任何 Web 应用程序的工作。该工具生成 通过模拟用户访问网站,找到压力 和最大负载它可以工作。这个 LoadImpact 包括两个主要的 部分;负载测试工具和页面分析器。负载测试 可分为Fixed、Ramp up和Timeout三种类型。 页面分析器的工作原理类似于浏览器,它提供信息 关于网站的工作和统计。的名声 开发这个负载测试工具属于 Gatorhole AB。这是一个 免费增值服务,这意味着,它可以免费获得,并且 也可用于溢价。但是,你有很多优势 以高价购买的选项和功能。

            系统要求:这适用于 Windows 操作系统和 Linux。
            下载链接LoadImpact download

            Rational 性能测试器

            描述:Rational 性能测试器是一个自动化的 性能测试工具,可用于 Web 应用程序或 基于服务器的应用程序,其中有输入和输出过程 参与。此工具创建原始交易的演示 用户和 Web 服务之间的过程。在这一切结束时 收集统计信息并对其进行分析以增加 效率。网站或服务器中的任何泄漏都可以 在此工具的帮助下立即识别并纠正。这 工具可以是构建有效且无错误的最佳选择 云计算服务。这个 Rational 性能测试器是 由 IBM(Rational 软件部门)开发。他们想出了 这个自动化测试工具的许多版本。

            Rational Performance Tester 系统要求:Microsoft Windows 和 Linux AIX 对于这个性能测试工具来说已经足够好了。
            下载链接Rational Performance Tester download

            随时随地测试

            说明:Test Anywhere 是一款自动化测试工具,可以 用于测试任何网站的性能,网络 应用程序或任何其他对象。许多开发人员和测试人员使 使用 if 这个工具来找出他们的 web 应用程序中的任何瓶颈 并相应地纠正它们。它是一个强大的工具,可以测试任何 自动申请。该测试工具附带一个内置的 在允许用户编辑测试标准的编辑器中 根据他们的需要。随处测试工具涉及 5 个简单的 创建测试的步骤。它们是对象记录器,高级网络 记录器、SMART 测试记录器、图像识别和编辑器,385+ 厘米。最初,这个测试软件是由 San Jose 开发的 基于 Automation Anywhere Inc. 今天,有超过 25000 名用户 对于这个产品。

            Testing Anywhere 系统要求:此工具兼容 所有版本的 Windows 操作系统。
            下载链接Testing Anywhere download

            OpenSTA

            说明:开源HTTP性能测试工具:开放式STA 用于开放系统测试架构。这是基于 GUI 的性能 应用程序开发人员用于负载测试和分析的工具。 这被认为是所有其他性能中的复杂工具 测试工具。它在过去和现在都证明了它的能力 工具集能够执行重负载测试和分析 脚本化的 HTTP 和 HTTPS。在这里,测试是通过使用 录音和简单的脚本。为了顺利进行测试, 结果和其他统计数据是通过各种测试运行获得的。 这些数据和结果可以稍后导出到软件以创建 报告。这是一个免费的测试工具,它在 GNU 下分发 GPL,它将永远免费。该工具最初是 由 Cyrano 开发,后来被 Quotium 接管。

            OpenSTA 系统要求:OpenSTA 只能在 Windows 操作系统上运行。
            下载链接OpenSTA download

            QEngine (ManageEngine)

            说明:QEngine (ManageEngine) 是最常见且易于使用的 帮助性能测试和负载测试的自动化测试工具 您的网络应用程序。许多开发人员发现它是最 简单易用的工具,可用于找出其网络中的任何泄漏 服务或网站。该测试工具的关键重要功能 是它能够从任何地方对 Web 服务进行远程测试吗? 地理位置。除此之外,QEngine (ManageEngine) 也 提供其他测试选项,例如功能测试, 兼容性测试、压力测试、负载测试和回归 测试。这种自动化测试工具能够生成和 如果用户模拟很多,以便可以很好地分析性能 在最大负载期间。这是一个免费软件,可用于 用户在线。

            QEngine 系统要求:此工具适用于 Microsoft Windows 和 Linux。
            下载链接QEngine download

            负载风暴

            说明:Web 应用程序的云负载测试:Loadstorm 是 最便宜的可用性能和负载测试工具。在这里,你有 可以选择创建自己的测试计划、测试标准和 测试场景。您可以通过以下方式生成多达 50000 个并发用户 为您的网站产生流量,然后进行测试。 通过这个工具,你可以结束所有昂贵的 性能测试工具。云基础设施用于此 工具,它使您能够每秒发送大量请求。 全球有数千台服务器可用于此 软件。他们以最低的云负载测试而自豪 工具。使用此工具不需要任何脚本知识。 您将获得许多图表和报告,这些图表和报告可以衡量 各种指标的性能,例如错误率、平均响应 时间和用户数量。这个工具是免费提供的,但是 高级帐户附带附加功能。

            Loadstorm 系统要求:Windows 操作系统。
            下载链接:Loadstorm download

            Soasta 云测试

            说明:SOASTA CloudTest 是一款性能测试工具,适用于 云计算机。用户或开发者可以使用云 平台作为他们的虚拟测试实验室。开发商可以进行 他们在云平台中的性能或负载测试成本 通过此 CloudTest 工具的有效方法。此 CloudTest 具有 允许多个用户同时使用网站的能力 时间。它还增加了网站的访问量以了解实际情况 在压力和重负载下的性能。开发这个的功劳 软件交给了一家美国科技公司 SOASTA Inc. 他们 为测试网站和其他网络提供许多服务 应用程序,现在它们还有助于测试移动设备 应用程序。它们不是免费服务,价格因人而异 到您每小时所需的负载注入器机器的数量。这 具有 100 个并发用户的试用版可用于 免费。

            SOASTA CloudTest 系统要求:可在 Windows、Linux 和 苹果系统。
            下载链接SOASTA CloudTest download

            HTTPerf

            说明:Httperf是一个高性能的测量工具 并分析任何 Web 服务和 Web 的性能 应用程序。这主要用于测试HTTP服务器及其 表现。该测试工具的主要目标是计算 从此特定服务器生成的响应数。这 从服务器生成 HTTP GET 请求,这有助于 总结服务器的整体性能。通过这个工具, 您将能够得出发送响应的速率 从每个服务器,从而可以计算效率。这 能够承受服务器过载,支持HTTP/1.1协议 和与新工作负载的兼容性是此系统的三个关键特征 性能测试工具。这最初是由大卫开发的 Mosberger 和惠普的许多其他人。这是惠普产品。

            Httperf 系统要求:Windows 和 Linux。
            下载链接Httperf

            希望这有帮助..

            【讨论】:

            • 其中一些非常昂贵。数万甚至数万。甚至more!
            • 这些工具不适用于前端性能测试。
            【解决方案9】:

            您是否查看过服务器会根据您的请求为您捕获的内容?每个 Web 服务器都能够以秒为单位(有些以微秒为单位)捕获和记录前端发出的每个请求的时间。您可以在后端提取数据并使用任意数量的工具将其可视化。将它与免费的 GEoIP 数据库相结合,您甚至可以按国家和城市查看数据。为 GEoIP 数据支付更多费用,您可以查看移动网络上的移动设备与家庭或公司网络上的移动设备,以观察网络连接行为的关键差异(您无法控制)。

            至于对前端性能的痴迷,请留给功能测试人员。优化可以在单台 PC 上使用浏览器中的工具与诸如 Charles 代理之类的工具来处理,以改变缓存选项和速度。一旦您的应用程序投入使用,无论如何您将几乎无法控制前端性能。渲染时间因 PC 而异,具体取决于浏览器类型和各个 PC 上的负载。您是否见过只加载了几个工具栏并跟踪所有用户操作的浏览器会发生什么?即使是页面优化程度最高的网站,速度最快的网站也会缓慢爬行。

            做好你的工作并优化页面设计、组件数量、缓存模型等......然后为了性能和可扩展性将你的注意力从客户端转移到服务器上。

            【讨论】:

              【解决方案10】:

              由于您已标记 ASP.Net,您可能需要查看 ANTS 性能分析器-http://www.red-gate.com/products/dotnet-development/

              【讨论】:

                【解决方案11】:

                使用AgileLoad进行前端性能测试

                AgileLoad 脚本编辑器捕获并分析用户和应用程序之间发出的所有请求以构建测试场景。

                重放函数验证通过重放生成的脚本并将每个请求与初始场景进行比较。

                重播选项卡包含测试场景的每个页面的图形条形图,显示主要请求所花费的时间(蓝色)和总体响应时间(橙色)。它还为您提供了所有已加载资源的详细信息、每个资源花费的时间、与每个 HTTP 请求相关的详细 HTTP 响应(正文、客户端 HTTP 标头、服务器 HTTP 标头)。

                Agileload 前端性能

                对于每个页面,您还可以检索 HTML 视图、源视图、结构视图、HTML 树视图、HTML 服务器标题视图

                Http 数据窗格

                网页性能摘要为您提供有关 DNS 时间、tcp 连接时间、SSL 握手时间、发送时间、服务器时间、接收时间、响应 http 状态、以字节为单位的响应大小等详细信息。

                网络性能详情

                此页面速度瀑布突出显示有问题的资源,需要针对测试场景的每个页面进行优化。

                Web 应用程序的设计和内容越来越丰富,同时良好的用户体验已成为最令人向往的属性。存在一种误解,即仅通过优化服务器端就可以实现应用程序所需的响应时间。研究表明,80-90% 的页面加载时间花费在客户端,40-50% 的页面加载时间可以通过只关注应用程序的前端来优化,而服务器端优化的比例为 20%。

                还有前端性能优化和后端优化是不一样的。一个是从单个用户的角度提高性能,另一个是从多个用户的角度在资源同时使用时提高性能。

                这两个任务是互补的,可以使用 Agileload 进行测试。

                参考资料:Agile Load

                【讨论】:

                  【解决方案12】:

                  值得一看 Chrome 遥测 (http://www.chromium.org/developers/telemetry)

                  这显然只是 Chrome,但它是 Adob​​e 用来测试 TopCoat 性能的工具

                  【讨论】:

                    猜你喜欢
                    • 2015-07-16
                    • 2020-08-12
                    • 1970-01-01
                    • 2013-01-14
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-02-06
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多