关于测试:Web 应用程序性能基准测试建议

关于测试:Web 应用程序性能基准测试建议

Recommendations for Web application performance benchmarks

我即将开始测试 Intranet Web 应用程序。具体来说,我必须确定应用程序的性能。

请有人就我如何判断应用程序的性能提出正式/非正式标准。


使用一些工具进行压力和负载测试。如果您使用 Java,请查看 JMeter。它提供了不同的方法来测试您的应用程序性能。你应该关注:

  • 响应时间:您的应用程序对于正常请求的运行速度。测试一些读/写用例
  • 负载测试:您的应用程序在高流量时间的行为方式。该工具将在一段时间内提交多个请求(您可以正确配置)。
  • 压力测试:你的应用可以长时间运行吗?此测试会将您的应用程序推向极限

从这个开始,如果你有兴趣,还有其他种类的测试。


"具体来说,我必须确定应用程序的性能......"

这完全涉及需求问题,即用户社区对合理有效的期望。需求有许多组件

  • 一般响应时间,"在...的负载下。站点的一般响应时间应小于 x, y% 的时间..."
  • 特定的响应时间,"在负载下......信用卡处理将花费不到 z 秒,a% 的时间......"
  • 系统容量项,"在负载 .... CPU|网络|RAM|磁盘不得超过容量的 n%...."
  • 负载配置文件,它是用户数量和将发生的事务的组合,在此条件下收集特定的、客观的度量以确定系统性能。
  • 您会注意到响应时间和其他措施并非绝对。从 6 位 sigma 制造负责人那里可以看出,从百万分之一的例外转变为十亿分之一的例外的成本是非同寻常的,而转变为零例外的成本通常是普通组织无法承受的成本。对于您的组织来说,一个独特的应用程序被认为可接受的响应时间可能与高度商品化的产品完全不同,后者是面向公共互联网的应用程序。对于竞争激烈的解决方案,互联网上的响应时间预期趋??向于 2-3 秒范围内,用户放弃率急剧上升。在过去的十年里,这个时间从 8 秒下降到 4 秒,现在下降到 2-3 秒的范围内。出于竞争原因,某些应用程序(例如 Facebook)会在不到一秒的范围内实现几乎难以察觉的响应时间。如果您正在寻找一个硬标准,它们根本不存在。

    通读几个关于风格、形式、功能的行业基准有助于您理解。

    • TPC-C 数据库基准文档
    • SpecWeb2009 基准设计文档

    设置一组能代表您需求的可靠性能测试并非易事。您可能需要聘请专家来处理您的 QA 工作的这一阶段。

    在你的工具选择上,确保你得到一个可以

    • 练习你的界面
    • 根据您的要求报告
    • 您或您的团队有技能可以使用
    • 您可以接受培训并将在管理层的祝福下参加

    上述四个要素中的任何一个都失败了,并且您还购买了市场上最昂贵的工具并聘请了最昂贵的公司来部署它。

    祝你好运!


    我认为真正重要的是响应时间,但我会查看的其他指标是处理器和内存使用率与并发用户/进程的数量。我还将检查在正常负载和峰值负载下一切是否按预期执行。您可能会遇到负载较高导致应用程序错误的情况,因为各种请求相互叠加。

    如果您真的想获得详细信息,您将需要运行不同类型的负载/压力测试。您可能希望查看步进负载测试(系统上的用户随着时间的推移逐渐增加)和峰值测试(大量用户同时访问,而以前几乎没有人访问过)。我还会在服务器重新启动后立即对其进行测试,以查看它对系统的影响。

    您可能还想了解一个名为 HEAT(恶意环境应用程序测试)的概念。这确实显示了当系统的某些部分脱机时会发生什么。系统降级成功了吗?这应该是一个关键标准。

    我的一个非常重要的建议是在进行测试之前确定系统应该做什么。主要原因是问责制。让人们承认系统应该做某事,然后测试它是否成立。这是关键,因为人们会立即看到结果,这将是可接受的基本基准。


    要测试前端,YSlow 非常适合从用户的angular获取页面加载所需时间的统计信息。它分解为每个特定 HTTP 请求的统计信息、花费的时间等。在 http://developer.yahoo.com/yslow/

    获取它

    Firebug 当然也是必不可少的。您可以通过点击配置按钮显式或实时配置您的 JS。在必要时进行优化并查看所有功能需要多长时间才能运行。这改变了我衡量 JS 代码性能的方式。 http://getfirebug.com/js.html


    推荐阅读