具体来说,我有兴趣解决主机名,从服务器获取响应,下载/渲染/执行资源等等.我也想在与应用程序交互时测量这些事情,而不仅仅是在加载页.
我可以手动与我的Web应用程序交互使用Firebug或Chrome Developer Tools,但是我希望这个前端性能测试是我持续集成过程的一部分.我想要有夜间的前端性能测试结果,这样可以很容易地捕捉到性能回归.这就是为什么我的初步结论之一是我想利用我现有的功能性Selenium / WebDriver测试套件(或测试套件的一部分).
所以假设我使用Selenium与我的Web应用程序进行交互,我真正需要的是测量浏览器前端性能的工具.
到目前为止,我已经看过三个选项:
browsermob-proxy是使用HAR格式捕获性能数据的开源代理.除了Java和NodeJS绑定外,它还提供了HTTP REST API.因为它是分析HTTP流量的代理,它不会给我任何关于浏览器中发生的情况(例如渲染等)的信息,这是我最感兴趣的.
WebPagetest也是开源软件,可作为webpagetest.org上的免费云服务提供.设置此服务的私有实例是可能的(而不是太难).我给它一个URL,并且获得该页面加载的性能报告.但是,它不允许我监视应用程序,而我正在与它进行交互 – 这是至关重要的 – 尤其是在一个单一的Web应用程序中,很多东西在客户端 – 像我的一样.
3)Compuware APM AJAX Edition(以前的DynaTrace AJAX版)
Compuware APM AJAX版是免费的(如免费的)专有软件,使用浏览器插件从浏览器中捕获信息,这意味着它可以在Selenium测试套件执行期间自动收集数据.
将其自动化并将其执行集成到一个持续的集成过程中非常容易,但报告仍然需要很多.测试结果分为“会话”,这是从浏览器窗口打开到关闭的时间段.没有用于比较测试结果随时间推移的功能,这使得很难跟踪进度和捕获回归.
Compuware APM AJAX版是迄今为止看到的最好的选择,但是还有更好的选择 – 对吗?