我最近一直在想如何测试我们的web应用程序的性能之前,我们把他们住。我知道我们不能复制此测试的实际用户活动,因为它是新功能。我可以通过查看我们的日志来对用户活动进行一些猜测,并相应地创建测试,但我不知道这会实现什么。一个设计如何为网站加载测试?
我渴望知道一个人如何能:
- 确定负载和
- 确定行为
多远将这个让你在真实的场景比较?
我最近一直在想如何测试我们的web应用程序的性能之前,我们把他们住。我知道我们不能复制此测试的实际用户活动,因为它是新功能。我可以通过查看我们的日志来对用户活动进行一些猜测,并相应地创建测试,但我不知道这会实现什么。一个设计如何为网站加载测试?
我渴望知道一个人如何能:
多远将这个让你在真实的场景比较?
问题很大。我们一直在我的公司运行几年的基准测试和负载测试,主要基于HTTP。
在进入复杂场景之前,我们经常从基于的Apache Bench(与Apache捆绑的'ab'命令)的简单基准开始。这不是一个负载测试,而是一个性能测试,因为生成的客户端在继续进行下一个操作之前实际等待HTTP查询完成。基本思想是尝试'ab -c N -t 30',例如N = 1,2,4,8,50,100(例如)。您很快就会了解您应具有的可扩展性和最大吞吐量。
注意:运行测试服务器(最好在同一个LAN)附近的“AB”命令,否则你也替补网络(延迟是这里的主要问题)。但在一些商业案例中,这是整个系统(服务器+网络),这实际上是要测试的。从这里,如果结果看起来不错(即吞吐量扩展到服务器端的处理器数量,低或零错误率),我们继续进行负载测试。否则,我们寻找瓶颈,因为负载测试只会确认可扩展性问题和一旦负载大于支持的吞吐量,最有可能显示可怕的结果(500内部错误,连接中断,大型管理器,服务器抖动的100%等)。
BTW,通过负载测试我的意思是使用可以申请任何负载的给定服务器/应用,尤其是服务器无法处理负载的工具(如:的JMeter,崇)。负载测试中有趣的是观察服务器过载时发生了什么。确定服务器可以处理的最大负载由您决定,当您选择性能不被认为可接受的确切测试点时。
然后,这是一个猜测或观察现有模式的问题。在很多情况下,我们被要求为新网站进行负载测试,显然没有发现真实的行为。否则,您可以使用分析并观察前十页:您的场景至少应该遍历它们。你会想一些导航路径,其中:
其他提示:
总体思路是从简单测试开始逐步完成,否则您将很难解释结果如果他们不符合完美的可伸缩性曲线。你猜怎么着?他们从来不符合完美的可扩展性曲线...