我们如何测试网站的性能?
是否有执行以下工作的特定工具,或者有一组工具可以帮助我执行以下操作:
- 如何查看页面加载时间?
- 如何跟踪占用内存的页面?
- 如何跟踪消耗大量CPU周期的页面?
我只是想从这个论坛的经验中收集并全面了解各种工具。
解决方案
回答
我们需要查看一些负载测试工具。最受欢迎的产品之一是HP的LoadRunner:
http://en.wikipedia.org/wiki/LoadRunner
虽然还有其他可用。
回答
我们可以通过在页面开始时检查(micro)时间,在末尾再次检查并进行比较来进行页面加载时间(例如,在PHP中可以轻松完成)。
当我们要测试客户端网页的性能时,请查看用于firefox的YSlow插件:http://developer.yahoo.com/yslow/
该插件可以检查网站,并为网页加载速度打分。
回答
如果使用的是IIS,则可以指定将响应时间,数据大小等写入日志文件。
查看Web服务器的属性以查看日志记录属性。
性能计数器也是朋友。
回答
Yahoo的YSlow for Firebug是一个非常好的工具,可以测试任何网站的性能。 YSlow为我们提供:
- 绩效报告卡
- HTTP / HTML摘要
- 页面中的组件列表
- 包括JSLint在内的工具
我们应该在firefox中安装firebug才能使用yslow。
查找网站性能的另一个工具是在线测试:网页分析器
它计算页面大小,组成和下载时间。该脚本计算单个元素的大小,并对每种类型的网页组件进行汇总。然后,基于这些页面特征,脚本将提供有关如何缩短页面加载时间的建议。
回答
我强烈建议在工作中使用某种形式的网络降级程序,我们有一款名为The Cloud的产品(来自www.shunra.com,尽管他们已将其重命名为Shunra VE),该产品价格昂贵,但存在许多未显示的问题通过LAN进行测试。
回答
如果我们使用的是Google Chrome浏览器(可能还有一些其他基于WebKit的浏览器),则该视图将分解页面上所有资源的加载时间,其方式类似于Firebug中的Net页面。
右键单击页面上的任意位置,选择"检查元素",然后单击"资源"按钮。
回答
如果我们在寻找免费工具,那么Apache的JMeter还不错。有一些学习曲线,但是我已经在许多Web项目(包括ASP.NET网站和Java Web服务项目)中使用了它,而JMeter很好地应对了这一问题。
回答
使用我们取得了出色的效果
"The Grinder"
测试相当多的站点。
我们用它来严重"泛滥"请求。
HTH。
干杯,
抢
回答
我们在这里使用Selenium,使我们可以脚本访问该网站,因此我们可以多次运行它来创建负载测试。
问候,
克里斯
回答
Jmeter是一个很好的开源工具。
回答
Firebug的"网络面板"将为我们显示页面上每个元素的加载时间。
回答
为了生成HTTP客户端负载,我使用了一些工具:
- Windows客户端上的Microsoft Web应用程序压力工具
*在Linux / Unix客户端上的http_load
两种工具都可以提高所提供的负载以模拟许多客户端,并且可以告诉我们平均加载页面的时间以及有关运行的其他统计信息。两种工具都具有将成本降至0美元的关键能力。
至于内存和CPU利用率,我不得不将其留给其他一些答案。我使用过YSlow,但从未进行过特别严格的调查。
回答
我还使用Red Gate的Ants Profiler来测试Web应用程序内存泄漏和高内存使用率,它工作得很好。
回答
我已经结合使用了Ruby Mechanize和简单的Unix" time"命令来编写大量页面命中和响应时间。如果将其设置为自动运行并记录结果,则可以随时间绘制图表。
但是请注意,如果站点依靠javascript提交表单等内容,则Mechanize不使用javascript,因此最好不要去其他地方。
回答
已经提到了Firebug和YSlow。也可以尝试Apache基准测试工具" ab"和非常灵活但稍微复杂的负载测试工具Tsung。
运送一些在文档的标题中创建新Date()的Javascript,并添加一个onDomReady事件,该事件将当前日期与当前日期进行区分,然后将结果发布回服务器,这也可能很有用。通过考虑Javascript初始化时间,这可以了解可感知的性能。
如果我们财大气粗,可以使用Gomez之类的服务从互联网上的多个位置衡量性能。
高温超导
回答
HttpFox是功能强大的FF插件。将详细显示每个请求的页面加载时间。而且,如果我们正在IE中进行测试,则Fiddler是一个必须具有添加插件的插件。
回答
这取决于服务器软件。通常,我们想要一个工具在服务器上产生大量负载,然后想要一个辅助工具来探究服务器的内部工作情况以了解正在发生的事情,以便我们可以尝试减少与我们一样多的瓶颈需要。
例如,如果我们在tomcat上运行,则需要将http_load与某种JVM结合使用。有时,负载发生在我们最不希望的地方(导致恒定分页的错误虚拟内存设置在网络服务器上可能会令人讨厌)。因此,不要停止检查应用程序/ Web服务器上的内容。如有需要,请尽可能向下走。
回答
我们使用的另一个压力工具Curl Loader,http://curl-loader.sourceforge.net/
回答
难道没有人会提到httperf和Apachebench(又称ab)吗?
回答
我们可以使用selenium创建脚本来自动运行网页。 Selenium将以我们喜欢的语言输出脚本,因此我们可以将脚本转换为程序来存储需要知道的数据。
如果要进行负载测试,则可以使用selenium网格,该网格将允许我们在多台计算机上部署多个selenium测试,从而可以模拟页面上运行的许多用户。
这是一个免费平台,因此不会给我们带来高昂的费用。我们可以在这里找到它http://seleniumhq.org/
回答
性能测试是测试网站最重要的方面之一,当网站吸引了最多的用户群时,性能测试可以避免我们陷入尴尬。
为此,需要进行多个阶段的性能测试和调整。
负载测试工具
负载测试是非常重要的一步,可以针对繁重的工作量评估站点的性能,并进行有效的规模调整以满足需求。我亲自使用了LoadRunner和VSTS,并将为LoadRunner提供最佳的易用性和实用性保证。
- 它的试用版为我们提供了一个许可证,可以同时运行25个Vuser。
- 对于更高的工作负载,我们必须购买其(昂贵的)许可证。
- Microsoft还作为Microsoft VSTS的一部分提供了一个工具,用于负载测试。我们可以获取免费使用的许可证,作为MS BizSpark的一部分
除了这些,我们还可以在OpenSourceTesting网站上访问许多开源负载测试工具。
剖析
除了负载测试外,它还会告诉我们站点的负载能力和响应缓慢的页面。性能测试中的另一个重要方面是对代码进行概要分析,以查看代码的哪些部分是导致显示速度降低的主要原因。
我们可以为每种语言使用不同的探查器,我在其中列出了其中一些:
- Java-Jensor
- .NET-CLR分析器
仿真
我们始终可以通过在开发人员端模拟生产环境来加倍努力,以预览代码在不同情况下的性能。
可以使用各种性质的仿真器,我们可以根据情况使用它们,例如网络仿真器(例如WANem),可在各种延迟和带宽下测试性能。
以上3个工具+测试可以让我们大致了解网站在向下屈服到基础之前可以延伸多远,我们希望这种情况永远不会发生。 :-)
回答
为了模拟网络,我们可以使用开源产品,例如带有DummyNet的FreeBSD或者带有netem模块的Linux。两者都使我们能够完成大部分所需的工作,而唯一的花费就是首次设置它们。如果我们不需要精美的GUI,并且它们与Shunras产品一样好,并且不会花费我们一臂之力。
回答
尝试使用iMacros Firefox添加组件,可以很好地进行深度性能Web测试!