现有Web应用程序的性能测试 - 有用的工具?

时间:2009-08-20 23:14:15

标签: selenium performance

我正在维护一个存在性能问题的网络应用。

我想记录一系列操作,然后在我进行更改并比较页面加载时间后回放这些操作,以便我可以量化性能改进。

Selenium IDE完成了录制和播放动作所需的功能,但我还没有找到一种简单的方法来记录时间。

有没有一种使用Selenium记录和比较页面加载时序的好方法?是否有更好的工具可供使用?

7 个答案:

答案 0 :(得分:5)

您可能需要查看BrowserMob(http://browsermob.com/)。您可以上传Selenium IDE测试脚本并让它们在您的站点上运行。它的创始人是Selenium RC的创建者,Patrick Lightbody。

答案 1 :(得分:2)

根据应用程序的复杂程度,您可以通过ASF使用JMeter

这是一个纯粹的基于Java的负载测试应用程序,带有许多图形插件,协议支持,控制器,报告框架等。您可以选择要记录的数据,如何绘制图表,如何将其输出到文件等。它甚至会把它变成CSV或各种基于XML的格式。

它很丑陋但可行,除非您的应用程序对JavaScript很重...它不包括能够运行它的VM,您将不得不使用hacks(例如正则表达式和手工制作的响应)来执行这些操作.Icky 。)它是开源的,所以如果你需要的话你可以添加额外的控制器。

尽管如此,要做你想做的事(记录动作,重放,图表/存储结果),它应该足够了。

答案 2 :(得分:2)

Firebug中的网络标签可以帮助您衡量并找出影响网站加载时间的确切因素。您甚至无需访问服务器即可使用它。 YSlow为您提供非常酷的提示,以改善指定网站的整体负载和感觉。 我个人使用Net选项卡来识别可能的加载时间,可能是大图像,javascripts css或不良延迟。 我从来没有听说过这样做的自动化工具,AFAIK selenium帮助您构建集成测试,帮助您确保应用程序的某些部分按预期工作,但我不确定它是否也可以用作分析工具。 我希望这有帮助

答案 3 :(得分:0)

为了回答这个问题,我喜欢使用IIS Resource Toolkit来做一些事情。

答案 4 :(得分:0)

我通常使用System.currentTimeMillis测量每个请求所花费的时间,并在开发和测试环境中以调试级别记录它。然后我运行selenium或JMeter,然后处理日志以获得不同的统计数据。我接受较慢的请求并继续钻进它们以查看缓慢和瓶颈的位置。

或者,您可以编写自己的selenium脚本或使用记录器生成的脚本,并在生成的代码中添加一些日志记录,而不是在代码本身中执行此操作。

UI性能是一种完全不同的野兽。我非常依赖YSlow。

答案 5 :(得分:0)

我会看看Faban

易于设置和使用简单的情况,使用“feh”强调单个页面。

对于更复杂的使用模式,您可以构建模式以模拟网站的全部负载。

答案 6 :(得分:0)

这是一个有效的简单工具:test_it。 基本上,

  • 您的测试机器必须具有.net 4.0
  • 你得到了二进制文件
  • 使用fiddler检查执行测试场景时传输的HTTP数据包
  • 使用简单的语法
  • 在文本参数文件中描述这些数据包
  • 指定您想要的请求数/秒
  • 运行二进制文件
  • 不要忘记监控被测机器

此处有一些信息:rextester