最佳实践和文献:针对Web应用程序负载测试

15

作为一名网页开发人员,我在我的职业生涯中已经被问过(几次)我们所构建的网站的性能问题。有时候你会得到模糊的问题,比如“即使是在产品发布周,这个网站还可以继续保持良好的表现吗?”、“这个网站可以处理百万用户吗?”甚至是“这个网站的情况怎么样?

当然,这些问题非常合理,我总是尽力回答这些问题,使用以下组合:

  • 历史数据(Google Analytics/IIS日志)
  • Web负载测试工具
  • 服务器性能计数器
  • 经验
  • 直觉
  • 常识
  • 来自系统管理员的一点帮助
  • 我对所涉及软件架构的个人理解

通常我能够对这些问题做出合理的回答。然而,Web应用程序的性能可能会受到许多因素的影响(例如数据库依赖、缓存策略、并发问题等),以及用户行为。

我是一名程序员,而不是统计学家,我对这个问题的方法总是感觉深深地非科学的。所以我做了更多的研究...所有的谷歌搜索结果似乎都集中在工具、功能和指标(和更多的指标)上,而我真正寻找的是一种理解这些问题的方法。

问题:有哪些资源(书籍?)是关于Web负载测试最佳实践的开发人员可以阅读的,这将有助于我回答这些类型的问题?

4个回答

10

首先,您的问题证明了您理解这个问题。创建用于生成负载的工具、脚本等可能有些棘手,但真正的挑战在于评估结果和要监视的内容。

对于您的问题一个非常简单的答案是,在类似于当前或预期使用情况的生产环境中生成负载。如果它没有崩溃或出现缓慢的性能,那通常就足够了。之后,增加负载以查看您的极限所在。

当达到极限时,我的经验是这纯粹是一个项目预算问题。我们是否会投入更多的时间/金钱/资源等来评估原因。

我作为一名测试专业人员,强烈建议将负载测试作为开发过程中至关重要的一部分,但不幸的是,这并不总是符合管理层的意愿。

因此,回答您的问题是几乎每个人都需要参与这个过程:开发人员监测他们的代码;系统管理员需要监测 CPU、内存使用情况等;数据库管理员;网络专家等等。他们所有人可能都需要自己的知识来源,才能记录和分析所有这些信息。

一些书籍推荐:

应用程序性能测试艺术:为程序员和质量保证提供帮助 http://www.amazon.com/exec/obidos/ASIN/0596520662/

容量规划艺术:扩展 Web 资源 http://www.amazon.com/exec/obidos/ASIN/0596518579/

Web 应用程序性能测试指南 http://www.amazon.com/exec/obidos/ASIN/0735625700/


太棒了!我将开始阅读《应用性能测试艺术》。我同意它涉及所有学科,很多都取决于经验。这本书听起来是一个不错的开始。谢谢。 - Stephan

2

谢谢,看起来是一个很好的资源! - Stephan

1
您可以模拟典型的用户行为,使用云服务之一来模拟大量的用户访问网站,并查看您的网站在大量用户情况下的处理能力。我听说亚马逊的服务还不错。

谢谢,基于云的服务确实很有用。然而,它们只是工具,就像任何工具一样,取决于使用者的熟练程度。- 我特别寻找指南最佳实践。虽然亚马逊看起来很有趣,我会去看看的。 - Stephan

1

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