你如何测试网站的性能?

时间:2008-09-10 10:13:41

标签: testing performance

是否有执行以下工作的特定工具,或者有一套工具可以帮助我执行以下操作:

  • 如何查看页面加载时间?
  • 如何追踪该页面 猪的记忆?
  • 如何跟踪消耗大量CPU周期的页面?

我只是想从这个论坛的经验中收集到并找到工具的整体观点。

24 个答案:

答案 0 :(得分:14)

性能测试是测试您网站的最重要方面之一,可以帮助您避免在您的网站吸引最多用户群时尴尬。

为此,性能测试和调优有多个阶段。

负载测试工具

负载测试是一个非常重要的步骤,用于衡量站点在繁重工作负载下的性能,并进行有效的大小调整以满足要求。我亲自使用了LoadRunner和 VSTS ,并且保证 LoadRunner 是易用性和实用性的最佳选择。

  1. 您可以使用 Mercury (now HP) Load Runner ,因为它非常适合您 灵活而详尽的一套 可配置的选项来测试你的 反对给定的网站 负荷。

    • 它配备了Vuser生成器,控制器和报告工具
    • 其试用版为您提供同时运行25个Vuser的许可。
    • 对于更高的工作负载,您必须购买其(昂贵的)许可证。
  2. Microsoft也有一个工具,作为Microsoft VSTS的一部分,用于负载测试目的。您可以在 MS BizSpark

  3. 中获取免费使用许可

    除此之外,您还可以访问 OpenSourceTesting site

    的许多开源负载测试工具

    仿形

    除了负载测试,它将告诉您站点的承载能力和响应缓慢的页面。性能测试的另一个重要方面是分析代码,看看你的代码的哪些部分是减慢你的节目的主要元凶。

    您可以为每种语言使用不同的分析器,我列出了其中一些:

    1. Java - Jensor
    2. .NET - CLR Profiler

    3. 仿真

      您可以在开发人员端通过模拟生产环境来运行额外的一英里,以预览代码在不同场景下的执行情况。

      可以使用各种性质的仿真器,您可以根据场景使用它们,例如:网络仿真器(例如 WANem )用于测试不同延迟和带宽下的性能。


      上述3个工具+测试可以让您了解您的网站在跪到基地之前可以伸展多远,我们希望永远不会发生这种情况。 : - )

答案 1 :(得分:8)

雅虎YSlow for Firebug是测试任何网站性能的非常好的工具。 YSlow给你:

  • 效果报告卡
  • HTTP / HTML摘要
  • 页面中的组件列表
  • 包括JSLint的工具

你应该在firefox中安装firebug来使用yslow。

查找网站效果的另一个工具是在线测试:Web Page Analyzer

它计算页面大小,组成和下载时间。该脚本计算各个元素的大小,并总结每种类型的网页组件。根据这些页面特征,脚本然后提供有关如何改善页面加载时间的建议。

答案 2 :(得分:5)

如果您使用的是免费工具,那么Apache的JMeter也不会太糟糕。有一点学习曲线,但我已经在许多网站项目中使用它,包括ASP.NET网站和Java Web服务项目,而JMeter也很好地应对。

答案 3 :(得分:5)

Jmeter是一个很好的开源工具。

答案 4 :(得分:4)

您可以通过检查页面开头的(微)时间来执行页面加载时间,最后再次检查并比较它(这可以在PHP中轻松完成)。

如果您想为客户端测试网页的性能,请查看firefox的YSlow插件:http://developer.yahoo.com/yslow/ 此插件会检查您的网站,并为您的网页加载速度提供等级。

答案 5 :(得分:3)

您需要查看一些负载测试工具。其中最受欢迎的是HP的LoadRunner:

http://en.wikipedia.org/wiki/LoadRunner

但也有其他人可以使用。

答案 6 :(得分:3)

我们使用

取得了优异的成绩
  

"The Grinder"

测试相当多的网站。

我们用这个来严肃地“打开盒子”,请求洪流。

HTH。

欢呼声,

罗布

答案 7 :(得分:2)

当你有足够的时间学习时,Jmeter是好的。但是,如果您需要快速启动 - 请查看jmeter testing cloud

P.S。目前我作为Jmeter插件开发人员为这家公司工作。

答案 8 :(得分:2)

我还使用Red Gate的Ants Profiler来测试Web应用程序内存泄漏和高内存使用率,它运行良好。

答案 9 :(得分:2)

为了生成HTTP客户端负载,我使用了几个工具:
Windows客户端上的* Microsoft Web Application Stress工具
Linux / Unix客户端上的http_load

这两种工具都可以提升所提供的负载来模拟许多客户端,并会告诉您加载页面的平均时间以及有关运行的其他统计信息。这两种工具都具有成本为0美元的关键能力。

至于内存和CPU利用率,我将不得不将其留给其他一些答案。我使用过YSlow,但从未进行过特别严格的调查。

答案 10 :(得分:2)

我们在这里使用Selenium - 允许您对网站进行脚本访问,因此您可以多次运行它来创建负载测试。

此致 克里斯

答案 11 :(得分:2)

我强烈推荐某种形式的网络降级 - 在工作中我们有一个名为The Cloud的产品(来自www.shunra.com,虽然他们已将其重命名为Shunra VE),这是昂贵的,但已经遇到了很多问题,没有出现在局域网上的测试。

答案 12 :(得分:1)

是否有人会提及httperf和Apachebench(a.k.a. ab)?

答案 13 :(得分:1)

您可以使用selenium创建脚本以自动运行您的网页。 Selenium将以您喜欢的语言输出脚本,以便您可以将脚本转换为程序来存储您需要知道的数据。

如果您想进行负载测试,可以使用 selenium grid ,这样您就可以在多台计算机上部署多个selenium测试,这样您就可以模拟页面上运行的大量用户

这是一个免费的平台,因此不会给您带来高额费用。你可以在http://seleniumhq.org/

找到它

答案 14 :(得分:0)

Firebug的Net Panel将显示页面上每个元素的加载时间。

答案 15 :(得分:0)

如果您使用的是谷歌浏览器(以及可能还有其他一些基于WebKit的浏览器),则可以通过与Firebug中的网页类似的方式分解页面上所有资源的加载时间。

右键单击页面上的任意位置,选择Inspect Element,然后点击Resources按钮。

答案 16 :(得分:0)

我使用了Ruby Mechanize和简单的Unix'time'命令的组合来编写一堆页面命中并为响应计时。如果将其设置为自动运行并记录结果,则可以随时间对其进行绘图。

但请注意,Mechanize不会执行javascript - 如果您的网站依赖于javascript来提交表单等,那么您最好去别处寻找。

答案 17 :(得分:0)

已经提到过Firebug和YSlow。还可以尝试Apache基准测试工具“ab”和Tsung,它是一种非常灵活但稍微复杂的负载测试工具。

在文档的标题中发布一些创建新Date()的Javascript也很有用,并附加一个onDomReady事件,该事件将该日期与当前事件区分开来,然后将结果发回服务器。这有助于您通过考虑Javascript初始化时间来了解感知性能。

如果你有大量资金,像Gomez这样的服务可以衡量互联网上多个地点的表现。

HTH

答案 18 :(得分:0)

HttpFox是一个功能强大的FF插件。将详细显示每个请求的页面加载时间。如果您在IE中进行测试,那么Fiddler必须具有附加插件。

答案 19 :(得分:0)

这取决于您的服务器软件。通常,您需要一个工具在服务器上生成一堆负载,然后您需要一个辅助工具来探测服务器的内部工作以了解正在发生的事情,这样您就可以尝试减少与您一样多的瓶颈需要。

例如,如果您在tomcat上运行,则需要将http_load与某种JVM结合使用。有时负载发生在您最不期望的位置(导致持续分页的错误虚拟内存设置在网络服务器上可能是地狱般的)。所以不要停止检查应用程序/ Web服务器上的内容。如果需要,尽量远离电线。

答案 20 :(得分:0)

我们使用的另一个stresstool,Curl Loader,http://curl-loader.sourceforge.net/

答案 21 :(得分:0)

为了模拟网络,您可以使用开源产品,如FreeBSD及其DummyNet或Linux及其netem模块。两者都可以让您完成所需的大部分工作,而第一次只需要设置它们。如果您不需要花哨的图形用户界面,并且它们与Shunras产品一样好,并且不会花费您的手臂和腿。

答案 22 :(得分:0)

试用iMacros Firefox Addons - 非常适合进行深入的性能网络测试!

答案 23 :(得分:0)

如果您使用的是IIS,则可以指定将响应时间,数据大小等写入日志文件。 查看Web服务器的属性以查看日志记录属性。

性能指标也是你的朋友。