对托管在云中的 Web 应用程序进行性能测试的最佳方法是什么?
性能测试云应用程序
哦似曾相识...
我认为拉里·埃利森(Larry Elison)总结得很好,他说云计算只是服务器和互联网。视频在这里 -> http://www.youtube.com/watch?v=UOEFXaWHppE
性能测试“云”应用程序应该像测试任何现有的 Web 应用程序一样进行测试。特别是对于性能,您需要测试单个实例,然后在应用动态扩展时它如何扩展以查看是否获得线性性能改进。
除此之外,将应用相同的性能测试工具、方法和技能,即 Loadrunner 等。
不过,另一个挑战是您将无法访问性能测试和调整时通常使用的性能日志、计数器或配置选项。
我认为您问题的关键是“网络应用程序”。所以我们不应该直接关心你使用哪个云,甚至是延迟。
性能测试对不同的人可能意味着不同的事情。我认为它是:
测试页面速度
负载测试
您需要知道应用程序在用户看来是如何执行的。缓慢的页面会降低您的收入和客户满意度。要查看直接相关性,请查看这些出色的性能测试统计信息。渲染时间或响应时间等指标是您的用户所关心的。这些测量是性能测试工具为您提供的。
我建议您首先分析各个页面的性能。使用 YSlow、webpagetest.org、Yottaa.com 或 Load.in 等工具。这些将向您展示一个页面的速度的许多方面 - 连接时间、页面开始呈现的时间、文档完全加载的时间以及所有辅助文件,例如图像、CSS、Javascript 和 XML。在所有重要的高流量页面上运行性能测试。进行改进,例如缓存、压缩、缩小图像或使用 CDN。这些工具中的大多数将提供加速页面的详细建议。
其次,同样重要的是,您应该对整个站点进行负载测试。创建逼真的测试场景/脚本,像实际用户一样在您的网站上执行操作。尤其要确保以对数据库造成压力的方式与应用程序交互,因为它是最常见的瓶颈。打开慢查询日志并查看它以查找任何昂贵的连接或只是糟糕的 SQL。将负载测试量从少量增加到大量。这使您可以查看应用程序开始减慢或产生错误的负载。在响应时间中寻找表明系统性能“碰壁”的陡峭曲线。这可以指出配置限制,例如数据库连接不足。好的云负载测试工具包括:LoadStorm、Browsermob 和 Soasta。
Web 应用程序的性能测试应该关注用户的角度。对平均响应时间的错误和异常值敏感。
希望有帮助。同一个 performance-testing.org 网站上有很多好的资源。博客、下载、工具列表、文章和行业新闻。
在我看来,动态缩放必须提前测试,以确保一切正常。必须使用基础架构的支持云提供商来进行苹果对苹果的比较。如果您的测试环境与生产环境不同,那么数据的完整性会带来严重的问题。
我不知道最好的方法,但我可以想到一些问题来开始讨论:
- 您对应用程序的后端有多少访问权限?从理论上讲,它的托管位置不应该有任何区别,但是当您处理云托管时,您需要考虑您与 Internet 的连接以及应用程序通信渠道的已知容量等问题。
- 您使用该应用程序支持什么级别的访问?是否可以通过拨号访问?(美国的很多公寓都有电话线,在美好的一天可能会获得 28k 带宽)。它是否需要能够提供流媒体内容或手机?
- 您是否需要将吞吐量与响应时间分开考虑?如果需要将数据实时推送到后端,而不是维持一个在一小时内更新的队列是可以接受的,那么您要查找和测试的东西是不同的。
- 这 - 再次,理论上 - 不应该是一个因素,但它仍然可以咬你。应用程序上的繁重负载是否有可能导致您的云主机停机?如果您要针对托管站点进行测试,您可能需要格外小心,以避免有效地对它们发起拒绝服务攻击:)(别笑——我的团队最后一次尝试加载我们的 Web 应用程序为了失败,我们关闭了公司的内部网络,包括内部DNS和Web服务器......有效地让整个公司离线了一段时间。在我们的辩护中,我们当时没有太多的负载测试经验,并且我们再也没有这样做过。)