我正在维护一个存在性能问题的网络应用。
我想记录一系列操作,然后在我进行更改并比较页面加载时间后回放这些操作,以便我可以量化性能改进。
Selenium IDE完成了录制和播放动作所需的功能,但我还没有找到一种简单的方法来记录时间。
有没有一种使用Selenium记录和比较页面加载时序的好方法?是否有更好的工具可供使用?
答案 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)
答案 6 :(得分:0)