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

7

我即将开始测试一个内部网站应用程序。具体而言,我需要确定该应用程序的性能。

请问有人能建议我如何评估该应用程序性能的正式/非正式标准吗?

4个回答

8
使用一些压力和负载测试工具。如果你使用的是Java,请看一下JMeter。它提供了不同的方法来测试应用程序的性能。你应该关注以下几点:
  • 响应时间:正常请求下,你的应用程序运行速度有多快。测试一些读/写用例
  • 负载测试:在高流量时,你的应用程序如何表现。该工具将在一段时间内提交多个请求(你可以适当配置)。
  • 压力测试:你的应用程序能够在长时间内运行吗?这项测试将推动你的应用程序达到极限

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


4
"具体而言,我需要确定应用程序的性能......"
这就回到了需求问题上,即用户社区对于什么是合理和有效的期望的捕捉。需求有许多组成部分:
  1. 一般响应时间,“在负载为……的情况下,网站的一般响应时间应小于x,y%的时间......”
  2. 特定响应时间,“在负载为……的情况下,信用卡处理时间应该少于z秒,a%的时间......”
  3. 系统容量项,“在负载为……的情况下,CPU|网络|RAM|DISK不应超过n%的容量......”
  4. 负载配置文件,即用户数和交易数量的混合,在其中收集特定的客观措施以确定系统性能。
你会注意到响应时间和其他指标并非绝对值。借鉴六西格玛制造原则,从一百万分之一的异常到十亿分之一的异常的成本是巨大的,而要达到零异常的成本通常是一般组织无法承受的。对于你的组织中的独特应用程序来说,被认为是可接受的响应时间可能与高度商品化的面向公众互联网应用程序完全不同。对于高度竞争的解决方案,互联网响应时间的期望值趋向于2-3秒,此时用户放弃率急剧上升。这在过去的十年中已经从8秒降至4秒,现在进入了2-3秒的范围。像Facebook这样的一些应用程序出于竞争原因,追求几乎察觉不到的亚秒级响应时间。如果你正在寻找一个硬性标准,那么它们就不存在。
阅读一些行业基准的风格、形式和功能将有助于你的理解。

建立一个代表你需求的可靠性能测试集是一项不容易的任务。你可能需要请专家来处理QA工作的这个阶段。

在选择工具时,请确保您选择的工具可以:

  • 使用你的接口
  • 报告符合你的要求
  • 你或你的团队有使用它的技能
  • 你可以接受培训并得到管理层的认可

如果以上任何一个元素出现问题,那么你也将购买市场上最昂贵的工具并雇佣最昂贵的公司来部署它。

祝你好运!


3

如果要测试前端,那么YSlow非常适合从用户角度获取页面加载时间的统计数据。它会针对每个特定的HTTP请求进行统计,并给出所需的时间等信息。可以在http://developer.yahoo.com/yslow/下载。

当然,Firebug也是必不可少的。您可以通过点击“profile”按钮来明确或实时地对JS进行分析。根据需要进行优化,并查看所有函数运行所需的时间。这改变了我衡量JS代码性能的方式。http://getfirebug.com/js.html


3
我认为最重要的是响应时间,但我还会关注处理器和内存使用量与并发用户/进程数之间的比较。我还会检查在正常负载和峰值负载下是否一切都表现如预期。你可能会遇到更高的负载导致应用程序错误的情况,因为各种请求会相互干扰。
如果您真的想获取详细信息,您需要运行不同类型的负载/压力测试。您可能需要进行阶段性负载测试(逐渐增加系统上的用户数量)和突发负载测试(大量用户同时访问系统,而之前几乎没有人访问)。我还会在服务器重新启动后立即对其进行测试,以了解其对系统的影响。
您还可能需要了解一个名为HEAT(敌对环境应用程序测试)的概念。这实际上展示了系统某个部分离线时会发生什么。系统是否能够成功降级?这应该是一个关键标准。
我唯一的建议是在进行测试之前先确定系统应该做什么。主要原因是要确保责任制。让人们承认系统应该做某些事情,然后测试看看是否符合要求。这很关键,因为人们会立即看到结果,并将其作为可接受的基准。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接