在构建网站或应用程序时,最佳实践是使用诸如HP LoadRunner、RadView的WebLOAD等工具进行负载测试,以确保其能够处理生产负载。
如果应用程序是托管在外部的,该怎么办?我可以进行负载测试吗?应该吗?如何做?
在构建网站或应用程序时,最佳实践是使用诸如HP LoadRunner、RadView的WebLOAD等工具进行负载测试,以确保其能够处理生产负载。
如果应用程序是托管在外部的,该怎么办?我可以进行负载测试吗?应该吗?如何做?
简短回答:是的,你应该进行负载测试。
较长回答:你应该尝试在测试中复制生产环境。它不需要完全相同,但你应该尽可能接近,特别是在软件环境和物理内存方面。 CPU 速度不重要(只要大致相似),但你可能想保持 CPU 数量正确。尽可能使磁盘速度接近生产环境,因为这可能是一个重要的瓶颈。除非你正在执行大量写入(临时或永久),否则磁盘空间并不那么重要。
然后,你可以在进入生产环境之前在测试环境中进行负载测试。这将让你知道你的应用程序能够承受多少负载。你的测试环境越接近生产环境,你的结果就越有意义。
您是否使用共享主机账户?如果是的话,您需要首先联系您的主机公司,因为您可能会影响其他网站(拒绝服务攻击...)
这是最佳实践吗?是的,绝对是。
如果应用程序托管在外部,我该怎么办?我可以进行负载测试吗?我应该吗?
是的,您可以进行负载测试,而且您应该这样做。
如何进行负载测试?
在过去几年中,随着廉价计算机租赁(即云供应商,如EC2)的出现,这变得更加容易。寻找支持从云端生成负载的工具。如果您有一个内部系统可供测试,则应从那里开始 - 在这种情况下,您将需要选择一种允许内部和外部测试的测试工具(仅云负载测试服务通常不允许内部测试)。
我要反驳其他答案和传统答案,说您应该尽可能地测试生产系统。在理想的情况下,您会有一个完全相同的测试系统,因此只有在测试系统完全满足性能要求后才进行生产测试 - 此时它基本上是一种形式 - 以确保生产环境中的所有内容都已正确配置(您会惊讶于“相同”的测试/生产系统并不总是相同!)。但在现实世界中,完全复制测试系统并不总是可行的或切实际的。我们定期测试客户的生产站点 - 实际上,很少有客户拥有测试系统,除了在开发和功能测试期间使用的单服务器系统。虽然这不是理想的,但相当可行。在模拟测试用例时,尽量不要陷入“完全正确”的细节中,特别是在早期。任何负载测试只是对真实世界使用的近似 - 每天(或每小时)的真实世界使用都与其他任何时间不同。花费时间让一个测试用例“完美无缺”是浪费时间,而这些时间本可以用来测试其他15个测试用例。我们的博客链接上有一些其他文章,可能会帮助您入门。
祝你好运!