2010-12-12 66 views
3

在构建网站或应用程序时,最佳做法是对其进行加载测试,以确保它可以处理生产负载(使用HP LoadRunner,RadView的WebLOAD等工具)。我应该加载测试托管的网站吗?怎么样?

如果应用程序在外部托管,该怎么办?我可以加载 - 测试它吗?我是不是该?怎么样?

回答

1

简答:是的,你应该加载测试。

较长的答案:您应该尝试在测试中复制生产环境。它不需要完全相同,但应该尽可能地接近,特别是在软件环境和物理内存方面。 CPU速度对于复制来说不太重要(只要它合理相似),但您可能想要保持正确的CPU数量。尽量保持磁盘速度尽可能接近生产环境,因为这可能是一个重大瓶颈。除非您正在进行大量写入(临时或永久),否则磁盘空间并不重要。

然后,您可以在投入生产之前对您的测试环境进行负载测试。这会让你知道你的应用程序将处理多少负载。您的测试环境对生产环境越相似,您的结果就越有意义。

+0

这样做,并确保您的网站上有足够的监控。您可以在开发过程中对其进行加载测试,但您希望在活动时保持监视性能。 – GolezTrol 2010-12-12 16:29:46

0

你在共享的托管帐户?那么你需要首先联系你的托管公司,因为你可能会打倒其他网站(拒绝服务攻击...)

+1

请勿在生产环境中加载测试。始终在测试环境中进行所有测试。 – 2010-12-12 17:04:39

0

是最佳实践吗?是的,一点没错。

如果应用程序托管在外部,我该怎么办?我可以加载 - 测试它吗?我是不是该?

是的,你可以,是的,你应该。

怎么样?

在过去几年里,随着廉价小时计算机租赁(即EC2等云供应商)的出现,这变得更加容易。查找支持从云中生成负载的工具。如果您有内部系统进行测试,您应该从那里开始 - 在这种情况下,您需要选择一种允许内部和外部测试的测试工具(仅限于云端负载测试服务通常不会)。

我会与其他答案以及传统答案中的其中一个相冲突,说绝对应该尽可能测试您的生产系统。在理想的世界中,您将拥有一个完全相同的测试系统,因此只有在测试系统完全满足性能要求(此时主要是形式)之后才能进行生产测试,以确保生产环境中的所有内容配置正确(并且您会惊讶于“相同”测试/生产系统的频率不相同!)。但在现实世界中,完全重复的测试系统并不总是可行或实际的。我们定期测试我们的客户生产站点 - 实际上,除开发和功能测试期间使用的单服务器系统外,我们的客户中只有极少数拥有测试系统。这并不理想,但相当可行。

至于一般程序 - 启动与一些最关键的用户场景(测试用例),然后:

  1. 构建和验证测试用例
  2. 运行测试并分析结果
  3. 优化/调整系统,直至达到性能目标
  4. 根据您的计划/预算允许,扩大范围并重复1-3。

尽量避免陷入模拟测试案件的细节“完全正确” - 特别是在初期。任何负载测试只是现实世界使用的近似值 - 每天(或每小时)的现实世界使用情况都是独一无二的。花费在一个测试用例上“恰到好处”的时间是花在测试其他15个应该测试的测试用例上的时间。我们还有一些关于our blog的文章可以帮助您入门。

祝你好运!

相关问题