靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/使用powershll和IECapt取得网页浏览速度

使用powershll和IECapt取得网页浏览速度

IE相关 互联网 2010-07-15 阅读(1464)
前阵子在查个问题,我必须要取得浏览网页时所需花费的时间作为搞清问题的参考依据。一个网页的呈现,简单的讲,在浏览器发出request后,逐一由网站取得html、css、javascript、图档等等。接者,浏览器会做解析、处理、执行、呈现。 先撇除使用者端因使用不同的浏览器、版本,造成网页呈现速度不同的这个因素(当然还要排除网路问题)。一般来讲,网站主机端的软硬体效能,以及html、css、javascript也深深影响网页最后需要多少时间才能呈现… 以上详细的过程,和相关技术,讲起来简单,其实又是另一门很深的功夫和学问。建议可以参考下面两份资料: Yahoo - YSlow Google - Page Speed 因此,取得浏览网页时所需花费的时间,必须要能尽量符合人们使用浏览器观看网页时的状况。而不能使用wget这类的方式来测试单独取得html的速度。思考了很久,最后还是使用 powershell 和 IECapt。 简单的说明一下作法…先提 IECapt,他是一个在指令列(command-line)下执行的小工具程式。是透过IE浏览器去截取特定的网页画面,并存成图档。也因此,使用IECapt 同等于使用IE去浏览网页。 接者,就只是很单纯的利用 powershll 去启动IECapt “浏览”网页,并计算每次浏览网页时时间。也就是计算启动起来,直到结束之间的时间差。 不过,在做长期监控时需要考量一点。就是每次测试时,无法确定在测试的当下,被测试的主机状态如何?特别是下列两种状况。因此需要设定 time out 时间,避免测试时因下列状况卡住: •被测试的主机,当下因各种问题,造成反应异常缓慢。 当为此情况时,测试结果为time out 时间。 •被测试的主机,当下已经无法提供服务(如,如法连线)。 当为此情况时,测试结果为0。 以下,就是测试速度的代码: #避免留有之前测试所产生的图档 if (Test-Path webservet_test.jpg){ remove-item $pwd\$testcaptfile -force } #产生shell,准备开始测试 $WshShell = New-Object -ComObject WScript.Shell $timestep_start= $(Get-Date) #避免因测试当下有问题问题导致执行太久,所以设定time out为 150秒 $theprocess= $WshShell.Exec("cmd /c $pwd\IECapt.exe --url=http://host.testing.com.tw/ --max-wait=150000 --out=$pwd\$testcaptfile") $watching= get-process -id $theprocess.ProcessID $watching.waitforexit() $timestep_end= $(Get-Date) #避免被测试的主机当下无法提供服务 #因此,利用判断图档是否存在来确定本次测试的结果为何 if (Test-Path $testcaptfile){ $spendtime=New-TimeSpan $timestep_start $timestep_end $spendtime=$spendtime.TotalSeconds } else{ #表示被测试主机无法提供服务 $spendtime=0 } 附注:IECapt有时会发生不明异常,而中断。这点,目前我还没比较好的解决方案…… 文章来源:http://kingfff.blogspot.com/2010/07/powershlliecapt.html

标签:网页速度浏览器相关IECapt

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17